Index: third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp |
diff --git a/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp b/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp |
index 0c7ae4efb3310091956e20fad3e1a35a59b29ed2..5f047754968455dde26cdd81309861c94377b751 100644 |
--- a/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp |
+++ b/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp |
@@ -61,6 +61,30 @@ |
WorkerBackingThread::~WorkerBackingThread() |
{ |
+#if DCHECK_IS_ON() |
+ MutexLocker locker(m_mutex); |
+ DCHECK_EQ(0u, m_workerScriptCount); |
+#endif |
+} |
+ |
+void WorkerBackingThread::attach() |
+{ |
+ { |
+ MutexLocker locker(m_mutex); |
+ if (++m_workerScriptCount > 1) |
+ return; |
+ } |
+ initialize(); |
+} |
+ |
+void WorkerBackingThread::detach() |
+{ |
+ { |
+ MutexLocker locker(m_mutex); |
+ if (--m_workerScriptCount > 0) |
+ return; |
+ } |
+ shutdown(); |
} |
void WorkerBackingThread::initialize() |