about summary refs log tree commit diff
path: root/src/libstore/build.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-12-03T03·03+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-12-03T03·03+0000
commit3ed9e4ad9b72dfbe59d47823beec829fe550351e (patch)
treefc8a5086d483033f0a9d51a59de88b3f436fd531 /src/libstore/build.cc
parent4251f94b32daed2abb0324439466876a97acdb77 (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