about summary refs log tree commit diff
path: root/src/libstd/rt/mpmc_bounded_queue.rs
AgeCommit message (Collapse)AuthorLines
2013-12-24std: Introduce std::syncAlex Crichton-209/+0
For now, this moves the following modules to std::sync * UnsafeArc (also removed unwrap method) * mpsc_queue * spsc_queue * atomics * mpmc_bounded_queue * deque We may want to remove some of the queues, but for now this moves things out of std::rt into std::sync
2013-12-17Don't allow impls to force public typesAlex Crichton-1/+1
This code in resolve accidentally forced all types with an impl to become public. This fixes it by default inheriting the privacy of what was previously there and then becoming `true` if nothing else exits. Closes #10545
2013-12-16Rewrite std::commAlex Crichton-11/+7
* Streams are now ~3x faster than before (fewer allocations and more optimized) * Based on a single-producer single-consumer lock-free queue that doesn't always have to allocate on every send. * Blocking via mutexes/cond vars outside the runtime * Streams work in/out of the runtime seamlessly * Select now works in/out of the runtime seamlessly * Streams will now fail!() on send() if the other end has hung up * try_send() will not fail * PortOne/ChanOne removed * SharedPort removed * MegaPipe removed * Generic select removed (only one kind of port now) * API redesign * try_recv == never block * recv_opt == block, don't fail * iter() == Iterator<T> for Port<T> * removed peek * Type::new * Removed rt::comm
2013-11-26libstd: Remove all non-`proc` uses of `do` from libstdPatrick Walton-2/+2
2013-10-25Add links to original mpmc and mpsc implementationsBrian Anderson-0/+2
2013-10-25TidyBrian Anderson-3/+3
2013-10-25minorJason Toffaletti-2/+6
2013-10-25add padding to prevent false sharingJason Toffaletti-0/+8
2013-10-25add multi-producer multi-consumer bounded queue to use for sleeper listJason Toffaletti-0/+199