vibe.d - asynchronously wait() for process to exit

Vladimir Panteleev via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 17 06:53:15 PDT 2016


std.process.wait() will wait for a child process to exit and 
return its exit code. How can this be done in Vibe.d, without 
blocking other fibers and without creating a new thread?

In my library I did it like this: 
https://github.com/CyberShadow/ae/blob/master/sys/process.d
(register a SIGCHLD signal handler, which pings the main thread 
via a socket).

Geod24 on IRC suggested signalfd + createFileDescriptorEvent. I 
think this would work, but isn't it possible to wrap the fd 
returned by signalfd into a Vibe.d stream and read it directly? 
I'm just not sure how.

I noticed libasync also provides notification for POSIX signals, 
but I've no idea where to start with using that in a Vibe.d 
program.



More information about the Digitalmars-d-learn mailing list