зеркало из https://github.com/electron/electron.git
fix: enable worker threads (#20416)
This commit is contained in:
Родитель
3f72f07a7f
Коммит
9b534e9aab
|
@ -39,3 +39,4 @@ chore_handle_default_configuration_not_being_set_in_the_electron_env.patch
|
|||
revert_crypto_add_outputlength_option_to_crypto_createhash.patch
|
||||
add_openssl_is_boringssl_guard_to_oaep_hash_check.patch
|
||||
fix_microtasks.patch
|
||||
fix_enable_worker_threads.patch
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
||||
Date: Thu, 3 Oct 2019 19:03:30 +0200
|
||||
Subject: fix: enable worker_threads
|
||||
|
||||
Electron sets NODE_USE_V8_PLATFORM to false, because Electron
|
||||
initializes the v8 platform itself and Node.js worker thread
|
||||
initialization relies on the platform it uses having been set inside
|
||||
code guarded by NODE_USE_V8_PLATFORM.
|
||||
|
||||
This commit fixes this problem by changing node_worker to use the three-arg
|
||||
implementation of `NewIsolate` to prevent it trying to use a possibly-null ptr.
|
||||
|
||||
diff --git a/src/node_worker.cc b/src/node_worker.cc
|
||||
index 11e44a92757e41e737087c5d08ce9931f0b0fab3..3dce5e25980ce2c6f17cda02dab9c0f8b4fab813 100644
|
||||
--- a/src/node_worker.cc
|
||||
+++ b/src/node_worker.cc
|
||||
@@ -116,7 +116,10 @@ class WorkerThreadData {
|
||||
: w_(w) {
|
||||
CHECK_EQ(uv_loop_init(&loop_), 0);
|
||||
|
||||
- Isolate* isolate = NewIsolate(w->array_buffer_allocator_.get(), &loop_);
|
||||
+ Isolate* isolate = NewIsolate(
|
||||
+ w->array_buffer_allocator_.get(),
|
||||
+ &loop_,
|
||||
+ w->platform_);
|
||||
CHECK_NOT_NULL(isolate);
|
||||
|
||||
{
|
|
@ -141,7 +141,6 @@
|
|||
"parallel/test-tls-socket-allow-half-open-option",
|
||||
"parallel/test-tls-ticket",
|
||||
"parallel/test-tls-write-error",
|
||||
"parallel/test-trace-events-api-worker-disabled",
|
||||
"parallel/test-tls-ticket-cluster",
|
||||
"parallel/test-trace-events-dynamic-enable",
|
||||
"parallel/test-trace-events-dynamic-enable-workers-disabled",
|
||||
|
@ -170,62 +169,13 @@
|
|||
"parallel/test-vm-syntax-error-message",
|
||||
"parallel/test-warn-sigprof",
|
||||
"parallel/test-whatwg-encoding-custom-textdecoder",
|
||||
"parallel/test-worker",
|
||||
"parallel/test-worker-abort-on-uncaught-exception-terminate",
|
||||
"parallel/test-worker-cleanexit-with-js",
|
||||
"parallel/test-worker-cleanexit-with-moduleload",
|
||||
"parallel/test-worker-cleanup-handles",
|
||||
"parallel/test-worker-console-listeners",
|
||||
"parallel/test-worker-dns-terminate",
|
||||
"parallel/test-worker-error-stack-getter-throws",
|
||||
"parallel/test-worker-esm-missing-main",
|
||||
"parallel/test-worker-debug",
|
||||
"parallel/test-worker-dns-terminate-during-query",
|
||||
"parallel/test-worker-esm-exit",
|
||||
"parallel/test-worker-esmodule",
|
||||
"parallel/test-worker-exit-from-uncaught-exception",
|
||||
"parallel/test-worker-exit-code",
|
||||
"parallel/test-worker-execargv",
|
||||
"parallel/test-worker-fs-stat-watcher",
|
||||
"parallel/test-worker-message-channel",
|
||||
"parallel/test-worker-memory",
|
||||
"parallel/test-worker-http2-generic-streams-terminate",
|
||||
"parallel/test-worker-message-channel-sharedarraybuffer",
|
||||
"parallel/test-worker-message-not-serializable",
|
||||
"parallel/test-worker-message-port-drain",
|
||||
"parallel/test-worker-message-port-message-before-close",
|
||||
"parallel/test-worker-message-port-transfer-duplicate",
|
||||
"parallel/test-worker-message-port-transfer-target",
|
||||
"parallel/test-worker-message-port-transfer-terminate",
|
||||
"parallel/test-worker-message-port-wasm-module",
|
||||
"parallel/test-worker-message-port-wasm-threads",
|
||||
"parallel/test-worker-mjs-workerdata",
|
||||
"parallel/test-worker-process-env-shared",
|
||||
"parallel/test-worker-onmessage",
|
||||
"parallel/test-worker-parent-port-ref",
|
||||
"parallel/test-worker-nexttick-terminate",
|
||||
"parallel/test-worker-no-stdin-stdout-interaction",
|
||||
"parallel/test-worker-onmessage-not-a-function",
|
||||
"parallel/test-worker-process-cwd",
|
||||
"parallel/test-worker-process-env",
|
||||
"parallel/test-worker-ref",
|
||||
"parallel/test-worker-ref-onexit",
|
||||
"parallel/test-worker-relative-path",
|
||||
"parallel/test-worker-relative-path-double-dot",
|
||||
"parallel/test-worker-safe-getters",
|
||||
"parallel/test-worker-message-type-unknown",
|
||||
"parallel/test-worker-stack-overflow",
|
||||
"parallel/test-worker-uncaught-exception",
|
||||
"parallel/test-worker-syntax-error",
|
||||
"parallel/test-worker-terminate-microtask-loop",
|
||||
"parallel/test-worker-vm-context-terminate",
|
||||
"parallel/test-worker-sharedarraybuffer-from-worker-thread",
|
||||
"parallel/test-worker-stdio",
|
||||
"parallel/test-worker-syntax-error-file",
|
||||
"parallel/test-worker-terminate-timers",
|
||||
"parallel/test-worker-terminate-http2-respond-with-file",
|
||||
"parallel/test-worker-unsupported-things",
|
||||
"parallel/test-worker-uncaught-exception-async",
|
||||
"parallel/test-worker-workerdata-sharedarraybuffer",
|
||||
"async-hooks/test-crypto-randomBytes",
|
||||
"async-hooks/test-fseventwrap",
|
||||
"async-hooks/test-fsreqcallback-readFile",
|
||||
|
@ -260,7 +210,6 @@
|
|||
"es-module/test-esm-type-flag",
|
||||
"report/test-report-writereport",
|
||||
"abort/test-abort-backtrace",
|
||||
"abort/test-worker-abort-uncaught-exception",
|
||||
"sequential/test-child-process-execsync",
|
||||
"sequential/test-cli-syntax-bad",
|
||||
"sequential/test-cli-syntax-good",
|
||||
|
|
Загрузка…
Ссылка в новой задаче