bool ThreadPoolWorker::submit(TaskExecutor *task) { AutoLockMonitor lock(*this); JS_ASSERT(state_ == ACTIVE); if (!worklist_.append(task)) return false; lock.notify(); return true; }
static void GatherRooters(js::Vector<Rooter, 0, SystemAllocPolicy> &rooters, Rooted<void*> **thingGCRooters, unsigned thingRootKind) { Rooted<void*> *rooter = thingGCRooters[thingRootKind]; while (rooter) { Rooter r = { rooter, ThingRootKind(thingRootKind) }; JS_ALWAYS_TRUE(rooters.append(r)); rooter = rooter->previous(); } }