From bbd4ae1bc12dc6b34d4a455015096b7113a5cec5 Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Wed, 2 Oct 2024 10:43:42 -0700 Subject: fix(node): implement libuv APIs needed to support `npm:sqlite3` (#25893) Fixes #24740. Implements the `uv_mutex_*` and `uv_async_*` APIs. The mutex API is implemented exactly as libuv, a thin wrapper over the OS's native mutex. The async API is implemented in terms of napi_async_work. As documented in the napi docs, you really shouldn't call `napi_queue_async_work` multiple times (it is documented as undefined behavior). However, our implementation doesn't have any issue with this, so I believe it suits our purpose here. --- cli/napi/sym/symbol_exports.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'cli/napi/sym') diff --git a/cli/napi/sym/symbol_exports.json b/cli/napi/sym/symbol_exports.json index 64b548d49..00946b8ed 100644 --- a/cli/napi/sym/symbol_exports.json +++ b/cli/napi/sym/symbol_exports.json @@ -152,6 +152,13 @@ "napi_check_object_type_tag", "node_api_post_finalizer", "napi_add_async_cleanup_hook", - "napi_remove_async_cleanup_hook" + "napi_remove_async_cleanup_hook", + "uv_mutex_init", + "uv_mutex_lock", + "uv_mutex_unlock", + "uv_mutex_destroy", + "uv_async_init", + "uv_async_send", + "uv_close" ] } -- cgit v1.2.3