This gist is working through the issue of getting the dbus npm package to work with Node.js worker threads, specifically on node v12.13.0.
To run:
npm install
npm run demo
# run the same demo
# using cluster instead
# of worker threads
npm run demo:cluster
# npm run demo result
> @1.0.0 demo <path>
> node index.js
[worker online]
[worker error] Error: Module did not self-register.
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1003:18)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (<path>/node_modules/dbus/lib/dbus.js:3:13)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
[worker exit] 1
# -----
# npm run demo expected result
> @1.0.0 demo /tmp/dbus
> node index.js
[worker online]
[worker received payload] test message
[master received payload] test message
[worker exit] 1