summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--buffered-reader/src/generic.rs2
-rw-r--r--buffered-reader/src/lib.rs3
2 files changed, 5 insertions, 0 deletions
diff --git a/buffered-reader/src/generic.rs b/buffered-reader/src/generic.rs
index 61dd8da6..a2a5321b 100644
--- a/buffered-reader/src/generic.rs
+++ b/buffered-reader/src/generic.rs
@@ -121,6 +121,8 @@ impl<T: io::Read, C> BufferedReaderGeneric<T, C> {
continue;
}
},
+ Err(ref err) if err.kind() == ErrorKind::Interrupted =>
+ continue,
Err(err) => {
// Don't return yet, because we may have
// actually read something.
diff --git a/buffered-reader/src/lib.rs b/buffered-reader/src/lib.rs
index c8e30866..506c8222 100644
--- a/buffered-reader/src/lib.rs
+++ b/buffered-reader/src/lib.rs
@@ -324,6 +324,9 @@ pub trait BufferedReader<C> : io::Read + fmt::Debug {
/// returned, it will always be returned until it is consumed.
/// As such, the following must hold:
///
+ /// If `BufferedReader` receives `EINTR` when `read`ing, it will
+ /// automatically retry reading.
+ ///
/// ```
/// # f(); fn f() -> Result<(), std::io::Error> {
/// use buffered_reader::*;