about summary refs log tree commit diff
path: root/src/rt/rust_uv.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-11-07 15:13:06 -0800
committerAlex Crichton <alex@alexcrichton.com>2013-11-10 01:37:11 -0800
commitdf4c0b8e4349d50f317553de5a47d0cd56cdc227 (patch)
tree470f0312c30becfa07aca3284a200c6d912e876b /src/rt/rust_uv.cpp
parent5e6bbc6bfa82f3ad0a014df24b40cbc042f24035 (diff)
downloadrust-df4c0b8e4349d50f317553de5a47d0cd56cdc227.tar.gz
rust-df4c0b8e4349d50f317553de5a47d0cd56cdc227.zip
Make the uv bindings resilient to linked failure
In the ideal world, uv I/O could be canceled safely at any time. In reality,
however, we are unable to do this. Right now linked failure is fairly flaky as
implemented in the runtime, making it very difficult to test whether the linked
failure mechanisms inside of the uv bindings are ready for this kind of
interaction.

Right now, all constructors will execute in a task::unkillable block, and all
homing I/O operations will prevent linked failure in the duration of the homing
operation. What this means is that tasks which perform I/O are still susceptible
to linked failure, but the I/O operations themselves will never get interrupted.
Instead, the linked failure will be received at the edge of the I/O operation.
Diffstat (limited to 'src/rt/rust_uv.cpp')
0 files changed, 0 insertions, 0 deletions