Here is a simple test written with pyuv:
loop = pyuv.Loop.default_loop()
proc = pyuv.Process(loop)
proc.spawn('some_existing_binary', lambda *a: None)
This test hangs forever on Unix but works just fine on Windows. Apparently the cause for this is that Windows will stop the handle after the child is done, while in Unix we need to call uv_close or it will remain active. I personally find the Windows approach to be the good one. Is this a known bug?
If it isn't, I can try to fix it, by stopping the handle right here: https://github.com/joyent/libuv/blob/master/src/unix/process.c#L91 and take care of removing the handle from the process handle queue properly.
Is there something obvious that would break with the above change?
unix: auto-unref spawn handle on process exit
Consistent, for better or worse, with uv-win.