WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-158073-20160825055131.patch (text/plain), 2.61 KB, created by
Per Arne Vollan
on 2016-08-25 05:53:33 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Per Arne Vollan
Created:
2016-08-25 05:53:33 PDT
Size:
2.61 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 204960) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,20 @@ >+2016-08-25 Per Arne Vollan <pvollan@apple.com> >+ >+ [Win] jsc.exe sometimes never exits. >+ https://bugs.webkit.org/show_bug.cgi?id=158073 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ On Windows the thread specific destructor is also called when the main thread is exiting. >+ This may lead to the main thread waiting forever for the machine thread lock when exiting, >+ if the sampling profiler thread was terminated by the system while holding the machine >+ thread lock. >+ >+ * heap/MachineStackMarker.cpp: >+ (JSC::MachineThreads::removeThread): >+ * jsc.cpp: >+ (jscmain): >+ > 2016-08-25 Caio Lima <ticaiolima@gmail.com> > > NewRegexp should not prevent inlining >Index: Source/JavaScriptCore/jsc.cpp >=================================================================== >--- Source/JavaScriptCore/jsc.cpp (revision 204959) >+++ Source/JavaScriptCore/jsc.cpp (working copy) >@@ -2432,9 +2432,7 @@ int jscmain(int argc, char** argv) > CommandLine options(argc, argv); > > // Initialize JSC before getting VM. >-#if ENABLE(SAMPLING_REGIONS) > WTF::initializeMainThread(); >-#endif > JSC::initializeThreading(); > > VM* vm = &VM::create(LargeHeap).leakRef(); >Index: Source/JavaScriptCore/heap/MachineStackMarker.cpp >=================================================================== >--- Source/JavaScriptCore/heap/MachineStackMarker.cpp (revision 204959) >+++ Source/JavaScriptCore/heap/MachineStackMarker.cpp (working copy) >@@ -32,6 +32,7 @@ > #include "VM.h" > #include <setjmp.h> > #include <stdlib.h> >+#include <wtf/MainThread.h> > #include <wtf/StdLibExtras.h> > > #if OS(DARWIN) >@@ -276,6 +277,17 @@ void THREAD_SPECIFIC_CALL MachineThreads > // to be instantiated at the same address. Hence, this thread may or > // may not be found in this MachineThreads registry. We only need to > // do a removal if this thread is found in it. >+ >+#if PLATFORM(WIN) >+ // On Windows the thread specific destructor is also called when the >+ // main thread is exiting. This may lead to the main thread waiting >+ // forever for the machine thread lock when exiting, if the sampling >+ // profiler thread was terminated by the system while holding the >+ // machine thread lock. >+ if (WTF::isMainThread()) >+ return; >+#endif >+ > machineThreads->removeThreadIfFound(getCurrentPlatformThread()); > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 158073
:
279771
|
284328
|
284367
|
286962
|
297012