diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-03T03·03+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-03T03·03+0000 |
commit | 3ed9e4ad9b72dfbe59d47823beec829fe550351e (patch) | |
tree | fc8a5086d483033f0a9d51a59de88b3f436fd531 /src/libstore/build.cc | |
parent | 4251f94b32daed2abb0324439466876a97acdb77 (diff) |
* Some hardcore magic to handle asynchronous client disconnects.
The problem is that when we kill the client while the worker is building, and the builder is not writing anything to stderr, then the worker never notice that the socket is closed on the other side, so it just continues indefinitely. The solution is to catch SIGIO, which is sent when the far side of the socket closes, and simulate an normal interruption. Of course, SIGIO is also sent every time the client sends data over the socket, so we only enable the signal handler when we're not expecting any data...
Diffstat (limited to 'src/libstore/build.cc')
0 files changed, 0 insertions, 0 deletions