preveen-stack / nodejs

0 stars 0 forks source link

Synchronization barriers with nodejs/javascript #30

Open preveen-stack opened 1 month ago

preveen-stack commented 1 month ago
// main.js
const { Worker, MessageChannel } = require('worker_threads');

const channel = new MessageChannel();

const worker = new Worker('./worker.js');

worker.postMessage({ port: channel.port1 }, [channel.port1]);

channel.port2.on('message', (msg) => {
  console.log('Received message from worker:', msg);
});

// worker.js
const { parentPort } = require('worker_threads');

parentPort.on('message', (port) => {
  const channel = new MessageChannel();
  const workerPort = port;

  workerPort.postMessage('Ready', [channel.port1]);

  channel.port2.on('message', (msg) => {
    console.log('Received message from main:', msg);
  });

  // Send a message back to the main thread
  channel.port2.postMessage('Hello from worker!');
});