about summary refs log tree commit diff
path: root/src/libstd/sync/poison.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2015-01-25 19:03:10 -0800
committerBrian Anderson <banderson@mozilla.com>2015-01-25 22:14:06 -0800
commitd179ba3b8eb65c951b68f6c52da3aba82806a3a1 (patch)
treefa8b3475117a5d145a48f200b44f75eebf9f1b9b /src/libstd/sync/poison.rs
parentde5498650a4702a9552951d28f344229f37e7ae3 (diff)
parentc80e556e159af38f86eea5ee2ba796d7c724c92b (diff)
downloadrust-d179ba3b8eb65c951b68f6c52da3aba82806a3a1.tar.gz
rust-d179ba3b8eb65c951b68f6c52da3aba82806a3a1.zip
Merge remote-tracking branch 'rust-lang/master'
Conflicts:
	src/libcore/cmp.rs
	src/libcore/fmt/mod.rs
	src/libcore/iter.rs
	src/libcore/marker.rs
	src/libcore/num/f32.rs
	src/libcore/num/f64.rs
	src/libcore/result.rs
	src/libcore/str/mod.rs
	src/librustc/lint/builtin.rs
	src/librustc/lint/context.rs
	src/libstd/sync/mpsc/mod.rs
	src/libstd/sync/poison.rs
Diffstat (limited to 'src/libstd/sync/poison.rs')
-rw-r--r--src/libstd/sync/poison.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/libstd/sync/poison.rs b/src/libstd/sync/poison.rs
index b04c2310fc0..18680b96592 100644
--- a/src/libstd/sync/poison.rs
+++ b/src/libstd/sync/poison.rs
@@ -53,7 +53,6 @@ pub struct Guard {
 /// is held. The precise semantics for when a lock is poisoned is documented on
 /// each lock, but once a lock is poisoned then all future acquisitions will
 /// return this error.
-#[derive(Show)]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct PoisonError<T> {
     guard: T,
@@ -61,7 +60,6 @@ pub struct PoisonError<T> {
 
 /// An enumeration of possible errors which can occur while calling the
 /// `try_lock` method.
-#[derive(Show)]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub enum TryLockError<T> {
     /// The lock could not be acquired because another task failed while holding
@@ -93,6 +91,13 @@ pub type LockResult<Guard> = Result<Guard, PoisonError<Guard>>;
 pub type TryLockResult<Guard> = Result<Guard, TryLockError<Guard>>;
 
 #[stable(feature = "rust1", since = "1.0.0")]
+impl<T> fmt::Debug for PoisonError<T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        "PoisonError { inner: .. }".fmt(f)
+    }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
 impl<T> fmt::Display for PoisonError<T> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         self.description().fmt(f)
@@ -135,6 +140,16 @@ impl<T> FromError<PoisonError<T>> for TryLockError<T> {
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]
+impl<T> fmt::Debug for TryLockError<T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        match *self {
+            TryLockError::Poisoned(..) => "Poisoned(..)".fmt(f),
+            TryLockError::WouldBlock => "WouldBlock".fmt(f)
+        }
+    }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
 impl<T> fmt::Display for TryLockError<T> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         self.description().fmt(f)