Skip to content

Commit fa18a86

Browse files
committed
core::rt: Queues MessageQueue and WorkQueue are cloneable
1 parent d2a1378 commit fa18a86

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/libcore/rt/message_queue.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use vec::OwnedVector;
1414
use cell::Cell;
1515
use option::*;
1616
use unstable::sync::{Exclusive, exclusive};
17+
use clone::Clone;
1718

1819
pub struct MessageQueue<T> {
1920
// XXX: Another mystery bug fixed by boxing this lock
@@ -41,4 +42,12 @@ impl<T: Owned> MessageQueue<T> {
4142
}
4243
}
4344
}
44-
}
45+
}
46+
47+
impl<T> Clone for MessageQueue<T> {
48+
fn clone(&self) -> MessageQueue<T> {
49+
MessageQueue {
50+
queue: self.queue.clone()
51+
}
52+
}
53+
}

src/libcore/rt/work_queue.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use vec::OwnedVector;
1414
use unstable::sync::{Exclusive, exclusive};
1515
use cell::Cell;
1616
use kinds::Owned;
17+
use clone::Clone;
1718

1819
pub struct WorkQueue<T> {
1920
// XXX: Another mystery bug fixed by boxing this lock
@@ -56,3 +57,11 @@ pub impl<T: Owned> WorkQueue<T> {
5657
self.queue.with_imm(|q| q.is_empty() )
5758
}
5859
}
60+
61+
impl<T> Clone for WorkQueue<T> {
62+
fn clone(&self) -> WorkQueue<T> {
63+
WorkQueue {
64+
queue: self.queue.clone()
65+
}
66+
}
67+
}

0 commit comments

Comments
 (0)