Found while writing net gap witnesses (#12267 fix-forward). On main: (1) a Worker that has handled parentPort.once('message') never delivers exit to the parent after its work ends; (2) parentPort.close is not a function; (3) a Worker with no top-level await ends right after its module body, so async work in it doesn't run. Node keeps a Worker alive while it has ref'd handles or pending work, and delivers exit.
Found while writing net gap witnesses (#12267 fix-forward). On main: (1) a Worker that has handled
parentPort.once('message')never deliversexitto the parent after its work ends; (2)parentPort.closeis not a function; (3) a Worker with no top-level await ends right after its module body, so async work in it doesn't run. Node keeps a Worker alive while it has ref'd handles or pending work, and deliversexit.