about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-12-22 18:21:34 -0800
committerbors <bors@rust-lang.org>2013-12-22 18:21:34 -0800
commit57724012ff4bc48e362102b30113359c2f45c28d (patch)
treebd2d901f389ad4d9cb0d30c1d5a92f45761386a0 /src/libstd
parent1b4bbc89b3ce40dc95abec688c322fef798292f1 (diff)
parent67c02222526d46875ddabfda1b7a936564f916ff (diff)
downloadrust-57724012ff4bc48e362102b30113359c2f45c28d.tar.gz
rust-57724012ff4bc48e362102b30113359c2f45c28d.zip
auto merge of #11111 : alexcrichton/rust/issue-11039, r=brson
None of these primitives should be Freeze because sharing them in an Arc is a
very bad idea.

Closes #11039
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/comm/mod.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libstd/comm/mod.rs b/src/libstd/comm/mod.rs
index 4cbc6c7cbb7..30324d9bc60 100644
--- a/src/libstd/comm/mod.rs
+++ b/src/libstd/comm/mod.rs
@@ -292,6 +292,7 @@ impl<T: Send> Consumer<T>{
 
 /// The receiving-half of Rust's channel type. This half can only be owned by
 /// one task
+#[no_freeze] // can't share ports in an arc
 pub struct Port<T> {
     priv queue: Consumer<T>,
 }
@@ -305,12 +306,15 @@ pub struct PortIterator<'a, T> {
 
 /// The sending-half of Rust's channel type. This half can only be owned by one
 /// task
+#[no_freeze] // can't share chans in an arc
 pub struct Chan<T> {
     priv queue: spsc::Producer<T, Packet>,
 }
 
 /// The sending-half of Rust's channel type. This half can be shared among many
 /// tasks by creating copies of itself through the `clone` method.
+#[no_freeze] // technically this implementation is shareable, but it shouldn't
+             // be required to be shareable in an arc
 pub struct SharedChan<T> {
     priv queue: mpsc::Producer<T, Packet>,
 }