diff options
| author | Eric Reed <ereed@mozilla.com> | 2013-06-17 12:45:40 -0700 |
|---|---|---|
| committer | Eric Reed <ereed@mozilla.com> | 2013-06-17 12:45:40 -0700 |
| commit | 35f3fa6383b5ed278879bfe5c74a913b885a2d4f (patch) | |
| tree | be8ca61c0beccd0b4c5d1e486c5322c1181c49f5 /src/libstd/rt/message_queue.rs | |
| parent | 33ae193a3c1a156e73bf6880366c9785dd4b7393 (diff) | |
| parent | 319cf6e465f203c794d71800808c2bd60a1e7613 (diff) | |
| download | rust-35f3fa6383b5ed278879bfe5c74a913b885a2d4f.tar.gz rust-35f3fa6383b5ed278879bfe5c74a913b885a2d4f.zip | |
Merge remote-tracking branch 'upstream/io' into io
Conflicts: src/libstd/rt/uvio.rs
Diffstat (limited to 'src/libstd/rt/message_queue.rs')
| -rw-r--r-- | src/libstd/rt/message_queue.rs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/libstd/rt/message_queue.rs b/src/libstd/rt/message_queue.rs index 21711bbe84c..734be808797 100644 --- a/src/libstd/rt/message_queue.rs +++ b/src/libstd/rt/message_queue.rs @@ -32,16 +32,20 @@ impl<T: Owned> MessageQueue<T> { } pub fn push(&mut self, value: T) { - let value = Cell(value); - self.queue.with(|q| q.push(value.take()) ); + unsafe { + let value = Cell::new(value); + self.queue.with(|q| q.push(value.take()) ); + } } pub fn pop(&mut self) -> Option<T> { - do self.queue.with |q| { - if !q.is_empty() { - Some(q.shift()) - } else { - None + unsafe { + do self.queue.with |q| { + if !q.is_empty() { + Some(q.shift()) + } else { + None + } } } } |
