about summary refs log tree commit diff
path: root/src/libstd/comm
AgeCommit message (Collapse)AuthorLines
2014-01-26Fix privacy fallout from previous changeAlex Crichton-1/+1
2014-01-25auto merge of #11808 : huonw/rust/std-visible-types, r=brsonbors-1/+2
These are either returned from public functions, and really should appear in the documentation, but don't since they're private, or are implementation details that are currently public.
2014-01-26std,extra: Make some types public and other private.Huon Wilson-1/+2
These are either returned from public functions, and really should appear in the documentation, but don't since they're private, or are implementation details that are currently public.
2014-01-25auto merge of #11790 : lfairy/rust/rename-num-consts, r=alexcrichtonbors-5/+5
The following are renamed: * `min_value` => `MIN` * `max_value` => `MAX` * `bits` => `BITS` * `bytes` => `BYTES` All tests pass, except for `run-pass/phase-syntax-link-does-resolve.rs`. I doubt that failure is related, though. Fixes #10010.
2014-01-25Uppercase numeric constantsChris Wong-5/+5
The following are renamed: * `min_value` => `MIN` * `max_value` => `MAX` * `bits` => `BITS` * `bytes` => `BYTES` Fixes #10010.
2014-01-24Fix a spuriously tripped assert in select()Alex Crichton-1/+4
The race here happened when a port had its deschedule in select() canceled, but the other chan had already been dropped. This meant that the DISCONNECTED case was hit in abort_selection, but the to_wake cell hadn't been emptied yet (this was done after aborting), causing an assert in abort_selection to trip. To fix this, the to_wake cell is just emptied before abort_selection is called (we know that we're the owner of it already).
2014-01-18Rename iterators for consistencyPalmer Cox-7/+7
Rename existing iterators to get rid of the Iterator suffix and to give them names that better describe the things being iterated over.
2014-01-16Fix test to account for new temporary lifetime rules, which cause the ↵Niko Matsakis-1/+1
channel to be dropped prematurely.
2014-01-15Allow more "error" values in try_recv()Alex Crichton-19/+94
This should allow callers to know whether the channel was empty or disconnected without having to block. Closes #11087
2014-01-07std: Fill in all missing importsAlex Crichton-1/+1
Fallout from the previous commits
2013-12-29Actually block in a windows cvarAlex Crichton-3/+0
Turns out with an argument of 0 the function always returns immediately! Closes #11003
2013-12-29auto merge of #11134 : lucab/rust/lucab/libstd-doc, r=cmrbors-1/+1
Uniform the short title of modules provided by libstd, in order to make their roles more explicit when glancing at the index.
2013-12-28Guard a maybe_yield in Chan with can_reschedAlex Crichton-1/+1
I forgot to add this back in after I removed can_resched and then realized I had to add it back.
2013-12-27std: uniform modules titles for docLuca Bruno-1/+1
This commit uniforms the short title of modules provided by libstd, in order to make their roles more explicit when glancing at the index. Signed-off-by: Luca Bruno <lucab@debian.org>
2013-12-24std: Remove must deferred sending functionsAlex Crichton-34/+5
These functions are all unnecessary now, and they only have meaning in the M:N context. Removing these functions uncovered a bug in the librustuv timer bindings, but it was fairly easy to cover (and the test is already committed). These cannot be completely removed just yet due to their usage in the WaitQueue of extra::sync, and until the mutex in libextra is rewritten it will not be possible to remove the deferred sends for channels.
2013-12-24native: Protect against spurious wakeups on cvarsAlex Crichton-1/+1
This is a very real problem with cvars on normal systems, and all of channels will not work if spurious wakeups are accepted. This problem is just solved with a synchronized flag (accessed in the cvar's lock) to see whether a signal() actually happened or whether it's spurious.
2013-12-24std: Implement yields on receives for channelsAlex Crichton-5/+20
This will prevent a deadlock when a task spins in a try_recv when using channel communication routines is a clear location for a M:N scheduling to happen.
2013-12-24std: Get stdtest all passing againAlex Crichton-311/+195
This commit brings the library up-to-date in order to get all tests passing again
2013-12-24std: Reimplement std::comm without the schedulerAlex Crichton-362/+40
Like the librustuv refactoring, this refactors std::comm to sever all ties with the scheduler. This means that the entire `comm::imp` module can be deleted in favor of implementations outside of libstd.
2013-12-23Fixing more doc testsAlex Crichton-1/+1
2013-12-23std: Fix all code examplesAlex Crichton-3/+4
2013-12-21Guarantee comm primitives are not FreezeAlex Crichton-0/+4
None of these primitives should be Freeze because sharing them in an Arc is a very bad idea. Closes #11039
2013-12-16Test fallout from std::comm rewriteAlex Crichton-6/+14
2013-12-16Fallout of rewriting std::commAlex Crichton-0/+2
2013-12-16Rewrite std::commAlex Crichton-0/+2206
* 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