about summary refs log tree commit diff
path: root/src/libstd/io/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/io/error.rs')
-rw-r--r--src/libstd/io/error.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libstd/io/error.rs b/src/libstd/io/error.rs
index a49039b1ec4..959c15fcfd6 100644
--- a/src/libstd/io/error.rs
+++ b/src/libstd/io/error.rs
@@ -12,7 +12,7 @@ use boxed::Box;
 use convert::Into;
 use error;
 use fmt;
-use marker::Send;
+use marker::{Send, Sync};
 use option::Option::{self, Some, None};
 use result;
 use sys;
@@ -46,7 +46,7 @@ enum Repr {
 #[derive(Debug)]
 struct Custom {
     kind: ErrorKind,
-    error: Box<error::Error+Send>,
+    error: Box<error::Error+Send+Sync>,
 }
 
 /// A list specifying general categories of I/O error.
@@ -146,7 +146,7 @@ impl Error {
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     pub fn new<E>(kind: ErrorKind, error: E) -> Error
-        where E: Into<Box<error::Error+Send>>
+        where E: Into<Box<error::Error+Send+Sync>>
     {
         Error {
             repr: Repr::Custom(Box::new(Custom {
@@ -223,3 +223,8 @@ impl error::Error for Error {
         }
     }
 }
+
+fn _assert_error_is_sync_send() {
+    fn _is_sync_send<T: Sync+Send>() {}
+    _is_sync_send::<Error>();
+}