deno.land / x / deno@v1.28.2 / test_ffi / tests / thread_safe_test_worker.js

thread_safe_test_worker.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.// deno-lint-ignore-file
const targetDir = Deno.execPath().replace(/[^\/\\]+$/, "");const [libPrefix, libSuffix] = { darwin: ["lib", "dylib"], linux: ["lib", "so"], windows: ["", "dll"],}[Deno.build.os];const libPath = `${targetDir}/${libPrefix}test_ffi.${libSuffix}`;
const dylib = Deno.dlopen(libPath, { store_function: { parameters: ["function"], result: "void", }, call_stored_function: { parameters: [], result: "void", },});
const callback = new Deno.UnsafeCallback( { parameters: [], result: "void" }, () => { console.log("Callback on worker thread"); },);
callback.ref();
self.addEventListener("message", ({ data }) => { if (data === "register") { dylib.symbols.store_function(callback.pointer); } else if (data === "call") { dylib.symbols.call_stored_function(); } else if (data === "unref") { callback.unref(); } self.postMessage("done");});
deno

Version Info

Tagged at
a year ago