aboutsummaryrefslogtreecommitdiffstats
path: root/community/chromium/musl-v8-fix-deadlock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/chromium/musl-v8-fix-deadlock.patch')
-rw-r--r--community/chromium/musl-v8-fix-deadlock.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/community/chromium/musl-v8-fix-deadlock.patch b/community/chromium/musl-v8-fix-deadlock.patch
new file mode 100644
index 0000000000..dff0d88d2c
--- /dev/null
+++ b/community/chromium/musl-v8-fix-deadlock.patch
@@ -0,0 +1,21 @@
+Release the mutex before mess with the stack guard
+
+Upstream report: https://bugs.chromium.org/p/v8/issues/detail?id=8881
+
+diff --git a/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc b/v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc
+index 09226e1..29a1871 100644
+--- ./v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc
++++ ./v8/src/compiler-dispatcher/optimizing-compile-dispatcher.cc
+@@ -132,8 +132,10 @@ void OptimizingCompileDispatcher::CompileNext(OptimizedCompilationJob* job) {
+ // The function may have already been optimized by OSR. Simply continue.
+ // Use a mutex to make sure that functions marked for install
+ // are always also queued.
+- base::MutexGuard access_output_queue_(&output_queue_mutex_);
+- output_queue_.push(job);
++ {
++ base::MutexGuard access_output_queue_(&output_queue_mutex_);
++ output_queue_.push(job);
++ }
+ isolate_->stack_guard()->RequestInstallCode();
+ }
+