Subj : Re: SpiderMonkey crashes on invalid JSAtom* To : itaj sherman From : Brendan Eich Date : Mon Feb 24 2003 02:27 pm > > >so at first thought i expected the GC thread to have to wait till the other >threads got out of the JS_Begin/EndRequest scope, that wraps the evaluation >of the scripts. >i looked more into the code, and am i right to say that the only other >option for the GC to run while the other threads evaluate scripts is because >they suspend the request while they're in ClaimScope() ? > Yes, or in any other place that suspends a request. Once all requests are ended or suspended, a pending GC will start; no new requests can begin, and no suspended requests can resume, until that GC completes. >if so, could i somehow force the GC to be posponed till after the end of the >evaluation? even just for the purpose of checking if it would stop the >crash. > It might treat the symptom, but if you really need a last-ditch GC, you're not going to like this workaround -- it will leave object allocation attempts failing with uncatchable OOM errors. If you can't reproduce a crash at will, I suggest you turn on GC_MARK_DEBUG and log all atom marking paths. If you then crash on a dead atom, look at the (synchronously written) log and see whether that atom was marked. If it was not, then consider why its script (the containing data structure by which it would have been marked) was not scanned by the GC. /be > >thanks >itaj > > > > > .