| Age | Commit message (Collapse) | Author | Lines |
|
**The implementation is a direct adaptation of libcxx's condition_variable implementation.**
I also added a wait_timeout_with method, which matches the second overload in C++'s condition_variable. The implementation right now is kind of dumb but it works. There is an outstanding issue with it: as is it doesn't support the use case where a user doesn't care about poisoning and wants to continue through poison.
r? @alexcrichton @aturon
|
|
**The implementation is a direct adaptation of libcxx's
condition_variable implementation.**
pthread_cond_timedwait uses the non-monotonic system clock. It's
possible to change the clock to a monotonic via pthread_cond_attr, but
this is incompatible with static initialization. To deal with this, we
calculate the timeout using the system clock, and maintain a separate
record of the start and end times with a monotonic clock to be used for
calculation of the return value.
|
|
This PR adds rules for negative implementations. It follows pretty much what the [RFC](https://github.com/rust-lang/rfcs/blob/master/text/0019-opt-in-builtin-traits.md) says with 1 main difference:
Instead of positive implementations override negative implementations, this have been implemented in a way that a negative implementation of `Trait` for `T` will overlap with a positive implementation, causing a coherence error.
@nikomatsakis r?
cc #13231
[breaking-change]
|
|
|
|
Fix std::sync::condvar::Condvar::notify_one docs
Reviewed-by: alexcrichton
|
|
|
|
|
|
expansion now uses `::std::hash::Hash::hash(&*__self_0_0, __arg_0)` instead of
`(*__self_0_0).hash(__arg_0)`
closes #21160
r? @alexcrichton
|
|
Fixes #16072
r? @huonw
|
|
Originally, this was going to be discussed and revisted, however I've been working on this for months, and a rebase on top of master was about 1 flight's worth of work so I just went ahead and did it.
This gets you as far as being able to target powerpc with, eg:
LD_LIBRARY_PATH=./x86_64-unknown-linux-gnu/stage2/lib/ x86_64-unknown-linux-gnu/stage2/bin/rustc -C linker=powerpc-linux-gnu-gcc --target powerpc-unknown-linux-gnu hello.rs
Would really love to get this out before 1.0. r? @alexcrichton
|
|
expansion now uses `::std::hash::Hash::hash(&*__self_0_0, __arg_0)` instead of
`(*__self_0_0).hash(__arg_0)`
closes #21160
|
|
It's passed to the underlying reader, so uninitialized memory == sad
times.
We might want to shrink the default buffer size as well. 64k is pretty
huge. Java uses 8k by default, and Go uses 4k for reference.
r? @alexcrichton
|
|
|
|
Also adjusted some of the FFI definitions because apparently they don't use the long pointer prefix.
Gives a free performance boost because `SRWLock` is several times faster than `CriticalRegion` on every Windows system tested.
Fixes #19962
|
|
It's passed to the underlying reader, so uninitialized memory == sad
times.
We might want to shrink the default buffer size as well. 64k is pretty
huge. Java uses 8k by default, and Go uses 4k for reference.
|
|
Signed-off-by: Peter Atashian <retep998@gmail.com>
|
|
r=brson
Closes #13871
|
|
|
|
Fixes #16072
|
|
Change any use of AtomicInt to AtomicIsize and AtomicUint to AtomicUsize
Closes #20893
[breaking-change]
|
|
|
|
|
|
This borrowed entirely from the mips definitions, and should be
revisited after it lands while testing.
|
|
|
|
|
|
|
|
Give mmap a page-aligned stack start address
Reviewed-by: Aatch
|
|
Add ExactSizeIterator impls for Hash{Map, Set, Table}
Reviewed-by: Gankro
|
|
Fix dead link in documentation (s/task/thread/)
Reviewed-by: Aatch
|
|
Change any use of AtomicInt to AtomicIsize and AtomicUint to AtomicUsize
Closes #20893
[breaking-change]
|
|
Closes #13871
|
|
|
|
This commit also changes the return types of all `size_hint()` impls
in these files from (uint, Option<uint>) to (usize, Option<usize>).
|
|
A derived implementation would not be appropriate for the Buffered types
since the buffer is both huge (64k by default) and full of uninitialized
memory. Instead of printing the whole thing, we display how full it is.
I also altered MultiWriter to make it generic over Writers instead of
taking Box<Writer> trait objects. Box<Writer> implements Writer so
existing use cases should continue to work, and this enables a more
useful Show implementation in applicable cases.
The change to MultiWriter may break code that uses it, but any fixes
should be easy.
[breaking-change]
|
|
|
|
r? @alexcrichton. This passes tests for me.
|
|
The libstd definitions move to libcore, which causes some minor updates there.
|
|
Better iOS support
Reviewed-by: alexcrichton
|
|
|
|
Now it is possible to run tests on a jailbroken device
|
|
Fix assertion in Mutex::destroy() on DragonFly (#20698)
Reviewed-by: alexcrichton
|
|
Spelling fix compatibel -> compatible
Reviewed-by: Gankro
|
|
On DragonFly pthread_{mutex,rwlock,condvar}_destroy() returns EINVAL
when called on a pthread_{mutex,rwlock,condvar}_t that was just
initialized via PTHREAD_{MUTEX,RWLOCK,CONDVAR}_INITIALIZER and not used
in the meantime or initialized via pthread_{mutex,rwlock,condvar}_init().
Change the code to treat a return value of EINVAL on DragonFly as success.
|
|
Conflicts:
src/test/compile-fail/borrowck-move-out-of-overloaded-auto-deref.rs
src/test/compile-fail/issue-2590.rs
src/test/compile-fail/lint-stability.rs
src/test/compile-fail/slice-mut-2.rs
src/test/compile-fail/std-uncopyable-atomics.rs
|
|
This adds the int_uint feature to *every* library, whether or not it
needs it.
|
|
This gets rid of the 'experimental' level, removes the non-staged_api
case (i.e. stability levels for out-of-tree crates), and lets the
staged_api attributes use 'unstable' and 'deprecated' lints.
This makes the transition period to the full feature staging design
a bit nicer.
|
|
|
|
|
|
|
|
Conflicts:
src/compiletest/compiletest.rs
src/libcollections/lib.rs
src/libserialize/lib.rs
src/libsyntax/feature_gate.rs
|