diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-05-18 01:53:40 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-05-20 15:20:49 -0700 |
| commit | fa18a861fbd934c295990e59b20c7a0498b88f08 (patch) | |
| tree | b78555dfbd493a48d91c9c50dbc238829b5c2222 | |
| parent | d2a1378ed8dd3693511836fdee656d8f79089a73 (diff) | |
| download | rust-fa18a861fbd934c295990e59b20c7a0498b88f08.tar.gz rust-fa18a861fbd934c295990e59b20c7a0498b88f08.zip | |
core::rt: Queues MessageQueue and WorkQueue are cloneable
| -rw-r--r-- | src/libcore/rt/message_queue.rs | 11 | ||||
| -rw-r--r-- | src/libcore/rt/work_queue.rs | 9 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/libcore/rt/message_queue.rs b/src/libcore/rt/message_queue.rs index 014e71d3de6..eaab9288ac8 100644 --- a/src/libcore/rt/message_queue.rs +++ b/src/libcore/rt/message_queue.rs @@ -14,6 +14,7 @@ use vec::OwnedVector; use cell::Cell; use option::*; use unstable::sync::{Exclusive, exclusive}; +use clone::Clone; pub struct MessageQueue<T> { // XXX: Another mystery bug fixed by boxing this lock @@ -41,4 +42,12 @@ impl<T: Owned> MessageQueue<T> { } } } -} \ No newline at end of file +} + +impl<T> Clone for MessageQueue<T> { + fn clone(&self) -> MessageQueue<T> { + MessageQueue { + queue: self.queue.clone() + } + } +} diff --git a/src/libcore/rt/work_queue.rs b/src/libcore/rt/work_queue.rs index 31f73cd09b5..e9eb663392b 100644 --- a/src/libcore/rt/work_queue.rs +++ b/src/libcore/rt/work_queue.rs @@ -14,6 +14,7 @@ use vec::OwnedVector; use unstable::sync::{Exclusive, exclusive}; use cell::Cell; use kinds::Owned; +use clone::Clone; pub struct WorkQueue<T> { // XXX: Another mystery bug fixed by boxing this lock @@ -56,3 +57,11 @@ pub impl<T: Owned> WorkQueue<T> { self.queue.with_imm(|q| q.is_empty() ) } } + +impl<T> Clone for WorkQueue<T> { + fn clone(&self) -> WorkQueue<T> { + WorkQueue { + queue: self.queue.clone() + } + } +} |
