std: Add I/O timeouts to networking objects
These timeouts all follow the same pattern as established by the timeouts on acceptors. There are three methods: set_timeout, set_read_timeout, and set_write_timeout. Each of these sets a point in the future after which operations will time out. Timeouts with cloned objects are a little trickier. Each object is viewed as having its own timeout, unaffected by other objects' timeouts. Additionally, timeouts do not propagate when a stream is cloned or when a cloned stream has its timeouts modified. This commit is just the public interface which will be exposed for timeouts, the implementation will come in later commits.
This commit is contained in:
parent
e0fcb4eb3d
commit
e27f27c858
6 changed files with 419 additions and 15 deletions
|
@ -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) { }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue