Index: Source/web/WebEmbeddedWorkerImpl.cpp |
diff --git a/Source/web/WebEmbeddedWorkerImpl.cpp b/Source/web/WebEmbeddedWorkerImpl.cpp |
index f9cdbfde727cf76e5b46101e44ee129882f6fdd9..8dc72fbc5e0e1a35535053f97157ce227a1cfde7 100644 |
--- a/Source/web/WebEmbeddedWorkerImpl.cpp |
+++ b/Source/web/WebEmbeddedWorkerImpl.cpp |
@@ -51,6 +51,7 @@ |
#include "platform/network/ContentSecurityPolicyParsers.h" |
#include "public/platform/Platform.h" |
#include "public/platform/WebURLRequest.h" |
+#include "public/platform/WebWaitableEvent.h" |
#include "public/web/WebDevToolsAgent.h" |
#include "public/web/WebServiceWorkerContextClient.h" |
#include "public/web/WebServiceWorkerNetworkProvider.h" |
@@ -171,6 +172,11 @@ WebEmbeddedWorkerImpl::WebEmbeddedWorkerImpl( |
WebEmbeddedWorkerImpl::~WebEmbeddedWorkerImpl() |
{ |
+ if (m_workerThread) { |
+ ASSERT(m_workerThread->terminated()); |
+ m_workerThread->terminationEvent()->wait(); |
+ } |
+ |
ASSERT(runningWorkerInstances().contains(this)); |
runningWorkerInstances().remove(this); |
ASSERT(m_webView); |