From a7eed6c298997f7b3c92accd285dab9bc0f336eb Mon Sep 17 00:00:00 2001 From: Caio Casimiro Date: Tue, 28 Nov 2023 16:54:54 +0000 Subject: [PATCH] c-api: support disabling mach ports use on macos --- crates/c-api/include/wasmtime/config.h | 11 +++++++++++ crates/c-api/src/config.rs | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/crates/c-api/include/wasmtime/config.h b/crates/c-api/include/wasmtime/config.h index b299d048ea8a..eb17b5e25c13 100644 --- a/crates/c-api/include/wasmtime/config.h +++ b/crates/c-api/include/wasmtime/config.h @@ -367,6 +367,17 @@ WASM_API_EXTERN void wasmtime_config_cranelift_flag_enable(wasm_config_t*, const */ WASM_API_EXTERN void wasmtime_config_cranelift_flag_set(wasm_config_t*, const char *key, const char *value); +/** + * \brief Configures whether, when on macOS, Mach ports are used for exception handling + * instead of traditional Unix-based signal handling. + * + * This option defaults to true, using Mach ports by default. + * + * For more information see the Rust documentation at + * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.macos_use_mach_ports + */ +WASMTIME_CONFIG_PROP(void, macos_use_mach_ports, bool) + /** * Return the data from a LinearMemory instance. diff --git a/crates/c-api/src/config.rs b/crates/c-api/src/config.rs index 201e0519665e..a2c40481069f 100644 --- a/crates/c-api/src/config.rs +++ b/crates/c-api/src/config.rs @@ -240,6 +240,11 @@ pub unsafe extern "C" fn wasmtime_config_target_set( handle_result(c.config.target(target), |_cfg| {}) } +#[no_mangle] +pub extern "C" fn wasmtime_config_macos_use_mach_ports_set(c: &mut wasm_config_t, enabled: bool) { + c.config.macos_use_mach_ports(enabled); +} + #[no_mangle] pub unsafe extern "C" fn wasmtime_config_cranelift_flag_enable( c: &mut wasm_config_t,