kill.rs |
|
276 |
mod.rs |
|
54838 |
unix |
|
|
windows.rs |
Windows asynchronous process handling.
Like with Unix we don't actually have a way of registering a process with an
IOCP object. As a result we similarly need another mechanism for getting a
signal when a process has exited. For now this is implemented with the
`RegisterWaitForSingleObject` function in the kernel32.dll.
This strategy is the same that libuv takes and essentially just queues up a
wait for the process in a kernel32-specific thread pool. Once the object is
notified (e.g. the process exits) then we have a callback that basically
just completes a `Oneshot`.
The `poll_exit` implementation will attempt to wait for the process in a
nonblocking fashion, but failing that it'll fire off a
`RegisterWaitForSingleObject` and then wait on the other end of the oneshot
from then on out. |
8176 |