Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Side by Side Diff: Source/core/workers/WorkerThread.cpp

Issue 1303153005: Introduce WebTaskRunner Patch 3/5 (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add missing #include Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/workers/WorkerThread.h ('k') | Source/core/workers/WorkerThreadTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ()); 103 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ());
104 return threads; 104 return threads;
105 } 105 }
106 106
107 unsigned WorkerThread::workerThreadCount() 107 unsigned WorkerThread::workerThreadCount()
108 { 108 {
109 MutexLocker lock(threadSetMutex()); 109 MutexLocker lock(threadSetMutex());
110 return workerThreads().size(); 110 return workerThreads().size();
111 } 111 }
112 112
113 class WorkerThreadTask : public WebThread::Task { 113 class WorkerThreadTask : public WebTaskRunner::Task {
114 WTF_MAKE_NONCOPYABLE(WorkerThreadTask); WTF_MAKE_FAST_ALLOCATED(WorkerThread Task); 114 WTF_MAKE_NONCOPYABLE(WorkerThreadTask); WTF_MAKE_FAST_ALLOCATED(WorkerThread Task);
115 public: 115 public:
116 static PassOwnPtr<WorkerThreadTask> create(WorkerThread& workerThread, PassO wnPtr<ExecutionContextTask> task, bool isInstrumented) 116 static PassOwnPtr<WorkerThreadTask> create(WorkerThread& workerThread, PassO wnPtr<ExecutionContextTask> task, bool isInstrumented)
117 { 117 {
118 return adoptPtr(new WorkerThreadTask(workerThread, task, isInstrumented) ); 118 return adoptPtr(new WorkerThreadTask(workerThread, task, isInstrumented) );
119 } 119 }
120 120
121 ~WorkerThreadTask() override { } 121 ~WorkerThreadTask() override { }
122 122
123 void run() override 123 void run() override
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 ASSERT(isCurrentThread()); 468 ASSERT(isCurrentThread());
469 V8PerIsolateData::destroy(m_isolate); 469 V8PerIsolateData::destroy(m_isolate);
470 } 470 }
471 471
472 void WorkerThread::terminateV8Execution() 472 void WorkerThread::terminateV8Execution()
473 { 473 {
474 ASSERT(isMainThread()); 474 ASSERT(isMainThread());
475 v8::V8::TerminateExecution(m_isolate); 475 v8::V8::TerminateExecution(m_isolate);
476 } 476 }
477 477
478 void WorkerThread::appendDebuggerTask(PassOwnPtr<WebThread::Task> task) 478 void WorkerThread::appendDebuggerTask(PassOwnPtr<WebTaskRunner::Task> task)
479 { 479 {
480 { 480 {
481 MutexLocker lock(m_threadStateMutex); 481 MutexLocker lock(m_threadStateMutex);
482 if (m_shutdown) 482 if (m_shutdown)
483 return; 483 return;
484 } 484 }
485 m_debuggerMessageQueue.append(task); 485 m_debuggerMessageQueue.append(task);
486 } 486 }
487 487
488 MessageQueueWaitResult WorkerThread::runDebuggerTask(WaitMode waitMode) 488 MessageQueueWaitResult WorkerThread::runDebuggerTask(WaitMode waitMode)
489 { 489 {
490 ASSERT(isCurrentThread()); 490 ASSERT(isCurrentThread());
491 MessageQueueWaitResult result; 491 MessageQueueWaitResult result;
492 double absoluteTime = MessageQueue<WebThread::Task>::infiniteTime(); 492 double absoluteTime = MessageQueue<WebTaskRunner::Task>::infiniteTime();
493 OwnPtr<WebThread::Task> task; 493 OwnPtr<WebTaskRunner::Task> task;
494 { 494 {
495 if (waitMode == DontWaitForMessage) 495 if (waitMode == DontWaitForMessage)
496 absoluteTime = 0.0; 496 absoluteTime = 0.0;
497 SafePointScope safePointScope(ThreadState::NoHeapPointersOnStack); 497 SafePointScope safePointScope(ThreadState::NoHeapPointersOnStack);
498 task = m_debuggerMessageQueue.waitForMessageWithTimeout(result, absolute Time); 498 task = m_debuggerMessageQueue.waitForMessageWithTimeout(result, absolute Time);
499 } 499 }
500 500
501 if (result == MessageQueueMessageReceived) { 501 if (result == MessageQueueMessageReceived) {
502 InspectorInstrumentation::willProcessTask(workerGlobalScope()); 502 InspectorInstrumentation::willProcessTask(workerGlobalScope());
503 task->run(); 503 task->run();
(...skipping 13 matching lines...) Expand all
517 InspectorInstrumentation::didLeaveNestedRunLoop(m_workerGlobalScope.get()); 517 InspectorInstrumentation::didLeaveNestedRunLoop(m_workerGlobalScope.get());
518 } 518 }
519 519
520 void WorkerThread::setWorkerInspectorController(WorkerInspectorController* worke rInspectorController) 520 void WorkerThread::setWorkerInspectorController(WorkerInspectorController* worke rInspectorController)
521 { 521 {
522 MutexLocker locker(m_workerInspectorControllerMutex); 522 MutexLocker locker(m_workerInspectorControllerMutex);
523 m_workerInspectorController = workerInspectorController; 523 m_workerInspectorController = workerInspectorController;
524 } 524 }
525 525
526 } // namespace blink 526 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/workers/WorkerThread.h ('k') | Source/core/workers/WorkerThreadTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698