-
-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Description
runner:
import { createSyncFn } from "synckit";
const { port1, port2 } = new MessageChannel();
port2.on("message", (message) => {
console.log("main got:", message);
})
port1.on("message", (message) => {
console.log("main got:", message);
})
const syncFn = createSyncFn(require.resolve("./worker/synckit-worker.ts"), {
transferList: [port1, port2],
});
const result = syncFn();
console.log(result);
worker:
import { runAsWorker } from "synckit";
import {
parentPort,
workerData,
} from 'node:worker_threads';
runAsWorker(async (...args) => {
console.log("synckit worker started", args)
setInterval(() => {
workerData.workerPort.postMessage("Test")
console.log("sent message", parentPort?.postMessage)
}, 1000)
await new Promise(resolve => setTimeout(resolve, 10000))
return { Hello: true }
})
This does nothing on the runner side, no message is received. I thought I needed to pass port2 and listen on port1 and vice versa. But it just does not work, I don't know how to access my transfered list in my worker.
Metadata
Metadata
Assignees
Labels
No labels