Ignore stdio mutex poison state

Nothing inside of the read/write interface itself can panic, so any
poison must have been the result of user code which the lock isn't
protecting.
This commit is contained in:
Steven Fackler 2015-03-17 23:05:44 -07:00
parent 1ae32decb8
commit 2e8e8ab564

View file

@ -146,7 +146,7 @@ impl Stdin {
/// accessing the underlying data.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn lock(&self) -> StdinLock {
StdinLock { inner: self.inner.lock().unwrap() }
StdinLock { inner: self.inner.lock().unwrap_or_else(|e| e.into_inner()) }
}
/// Locks this handle and reads a line of input into the specified buffer.
@ -249,7 +249,7 @@ impl Stdout {
/// returned guard also implements the `Write` trait for writing data.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn lock(&self) -> StdoutLock {
StdoutLock { inner: self.inner.lock().unwrap() }
StdoutLock { inner: self.inner.lock().unwrap_or_else(|e| e.into_inner()) }
}
}
@ -319,7 +319,7 @@ impl Stderr {
/// returned guard also implements the `Write` trait for writing data.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn lock(&self) -> StderrLock {
StderrLock { inner: self.inner.lock().unwrap() }
StderrLock { inner: self.inner.lock().unwrap_or_else(|e| e.into_inner()) }
}
}