mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
bbd4ae1bc1
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.
18 lines
422 B
JavaScript
18 lines
422 B
JavaScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
|
|
import { assertEquals, loadTestLibrary } from "./common.js";
|
|
|
|
const uv = loadTestLibrary();
|
|
|
|
Deno.test("napi uv async", async () => {
|
|
let called = false;
|
|
await new Promise((resolve) => {
|
|
uv.test_uv_async((value) => {
|
|
called = true;
|
|
if (value === 5) {
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
assertEquals(called, true);
|
|
});
|