diff options
author | Mathias Lafeldt <mathias.lafeldt@gmail.com> | 2023-06-05 11:22:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 09:22:32 +0000 |
commit | 77a950aac417ba5e9bf1a48b0ec8934291376a8c (patch) | |
tree | 38e1dfcea2d1c77dd95a67a7e793ad8c38e50c3b | |
parent | 21c2c01ebed902c70763bb9319c3ec48c4cb5284 (diff) |
feat(runtime): support creating workers using custom v8 params (#19339)
In order to limit the memory usage of isolates via heap_limits.
-rw-r--r-- | cli/worker.rs | 1 | ||||
-rw-r--r-- | runtime/worker.rs | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/cli/worker.rs b/cli/worker.rs index 6edf427ea..b8bb6e941 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -449,6 +449,7 @@ impl CliMainWorkerFactory { }, extensions, startup_snapshot: Some(crate::js::deno_isolate_init()), + create_params: None, unsafely_ignore_certificate_errors: shared .options .unsafely_ignore_certificate_errors diff --git a/runtime/worker.rs b/runtime/worker.rs index 0e62decb4..10375818d 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -95,6 +95,10 @@ pub struct WorkerOptions { /// V8 snapshot that should be loaded on startup. pub startup_snapshot: Option<Snapshot>, + + /// Optional isolate creation parameters, such as heap limits. + pub create_params: Option<v8::CreateParams>, + pub unsafely_ignore_certificate_errors: Option<Vec<String>>, pub root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>, pub seed: Option<u64>, @@ -181,6 +185,7 @@ impl Default for WorkerOptions { blob_store: Default::default(), extensions: Default::default(), startup_snapshot: Default::default(), + create_params: Default::default(), bootstrap: Default::default(), stdio: Default::default(), } @@ -321,6 +326,7 @@ impl MainWorker { let mut js_runtime = JsRuntime::new(RuntimeOptions { module_loader: Some(options.module_loader.clone()), startup_snapshot: Some(startup_snapshot), + create_params: options.create_params, source_map_getter: options.source_map_getter, get_error_class_fn: options.get_error_class_fn, shared_array_buffer_store: options.shared_array_buffer_store.clone(), |