diff options
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/rtio.rs | 9 | ||||
| -rw-r--r-- | src/libstd/rt/task.rs | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/libstd/rt/rtio.rs b/src/libstd/rt/rtio.rs index c5afe7887ad..16882624ab7 100644 --- a/src/libstd/rt/rtio.rs +++ b/src/libstd/rt/rtio.rs @@ -222,6 +222,9 @@ pub trait RtioTcpStream : RtioSocket { fn clone(&self) -> Box<RtioTcpStream:Send>; fn close_write(&mut self) -> IoResult<()>; fn close_read(&mut self) -> IoResult<()>; + fn set_timeout(&mut self, timeout_ms: Option<u64>); + fn set_read_timeout(&mut self, timeout_ms: Option<u64>); + fn set_write_timeout(&mut self, timeout_ms: Option<u64>); } pub trait RtioSocket { @@ -245,6 +248,9 @@ pub trait RtioUdpSocket : RtioSocket { fn ignore_broadcasts(&mut self) -> IoResult<()>; fn clone(&self) -> Box<RtioUdpSocket:Send>; + fn set_timeout(&mut self, timeout_ms: Option<u64>); + fn set_read_timeout(&mut self, timeout_ms: Option<u64>); + fn set_write_timeout(&mut self, timeout_ms: Option<u64>); } pub trait RtioTimer { @@ -278,6 +284,9 @@ pub trait RtioPipe { fn close_write(&mut self) -> IoResult<()>; fn close_read(&mut self) -> IoResult<()>; + fn set_timeout(&mut self, timeout_ms: Option<u64>); + fn set_read_timeout(&mut self, timeout_ms: Option<u64>); + fn set_write_timeout(&mut self, timeout_ms: Option<u64>); } pub trait RtioUnixListener { diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs index 909df5618aa..8924ed7cfd2 100644 --- a/src/libstd/rt/task.rs +++ b/src/libstd/rt/task.rs @@ -323,6 +323,12 @@ impl BlockedTask { } } + /// Reawakens this task if ownership is acquired. If finer-grained control + /// is desired, use `wake` instead. + pub fn reawaken(self) { + self.wake().map(|t| t.reawaken()); + } + // This assertion has two flavours because the wake involves an atomic op. // In the faster version, destructors will fail dramatically instead. #[cfg(not(test))] pub fn trash(self) { } |
