本文整理汇总了C++中WorkerContext::postTask方法的典型用法代码示例。如果您正苦于以下问题:C++ WorkerContext::postTask方法的具体用法?C++ WorkerContext::postTask怎么用?C++ WorkerContext::postTask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorkerContext
的用法示例。
在下文中一共展示了WorkerContext::postTask方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: performTask
virtual void performTask(ScriptExecutionContext *context)
{
ASSERT(context->isWorkerContext());
WorkerContext* workerContext = static_cast<WorkerContext*>(context);
#if ENABLE(DATABASE)
// We currently ignore any DatabasePolicy used for the document's
// databases; if it's actually used anywhere, this should be revisited.
DatabaseTaskSynchronizer cleanupSync;
workerContext->stopDatabases(&cleanupSync);
#endif
workerContext->stopActiveDOMObjects();
// Event listeners would keep DOMWrapperWorld objects alive for too long. Also, they have references to JS objects,
// which become dangling once Heap is destroyed.
workerContext->removeAllEventListeners();
#if ENABLE(DATABASE)
// We wait for the database thread to clean up all its stuff so that we
// can do more stringent leak checks as we exit.
cleanupSync.waitForTaskCompletion();
#endif
// Stick a shutdown command at the end of the queue, so that we deal
// with all the cleanup tasks the databases post first.
workerContext->postTask(WorkerThreadShutdownFinishTask::create());
}
示例2: performTask
virtual void performTask(ScriptExecutionContext *context)
{
ASSERT(context->isWorkerContext());
WorkerContext* workerContext = static_cast<WorkerContext*>(context);
#if ENABLE(SQL_DATABASE)
// FIXME: Should we stop the databases as part of stopActiveDOMObjects() below?
DatabaseTaskSynchronizer cleanupSync;
DatabaseManager::manager().stopDatabases(workerContext, &cleanupSync);
#endif
workerContext->stopActiveDOMObjects();
workerContext->notifyObserversOfStop();
// Event listeners would keep DOMWrapperWorld objects alive for too long. Also, they have references to JS objects,
// which become dangling once Heap is destroyed.
workerContext->removeAllEventListeners();
#if ENABLE(SQL_DATABASE)
// We wait for the database thread to clean up all its stuff so that we
// can do more stringent leak checks as we exit.
cleanupSync.waitForTaskCompletion();
#endif
// Stick a shutdown command at the end of the queue, so that we deal
// with all the cleanup tasks the databases post first.
workerContext->postTask(WorkerThreadShutdownFinishTask::create());
}
示例3: performTask
virtual void performTask(ScriptExecutionContext *context)
{
ASSERT(context->isWorkerContext());
WorkerContext* workerContext = static_cast<WorkerContext*>(context);
// We currently ignore any DatabasePolicy used for the document's
// databases; if it's actually used anywhere, this should be revisited.
DatabaseTaskSynchronizer cleanupSync;
workerContext->stopDatabases(&cleanupSync);
workerContext->stopActiveDOMObjects();
workerContext->clearScript();
// We wait for the database thread to clean up all its stuff so that we
// can do more stringent leak checks as we exit.
cleanupSync.waitForTaskCompletion();
// Stick a shutdown command at the end of the queue, so that we deal
// with all the cleanup tasks the databases post first.
workerContext->postTask(WorkerThreadShutdownFinishTask::create());
}