Commit graph

8 commits

Author SHA1 Message Date
Thayne McCombs
db438abb8f
Implement async_std::sync::Condvar (#369)
* Implement async_std::sync::Condvar

Part of #217

* More rigourous detection of notification for condvar

* Use state of Waker instead of AtomicUsize to keep track of if task was
notified.

* Add test for notify_all

* Implement wait_timeout_until

And add warnings about spurious wakeups to wait and wait_timeout

* Use WakerSet for Condvar

This should also address concerns about spurious wakeups.

* Add test for wait_timeout with no lock held

* Add comments describing AwaitNotify struct

And remove an unnneded comment in a Debug implementation
2020-04-12 13:35:18 +02:00
Stjepan Glavina
0c2282ffdc
Optimization: a slot for the next task to run (#529)
* Optimization: a slot for the next task to run

* Only notify workers when a task is pushed into a queue
2019-11-13 20:32:37 +01:00
Yoshua Wuyts
335bd34470 Add "std" feature flag (#476)
* core feature

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* introduce std + default features

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* test std features on ci

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* finish up all features

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* Fix task_local macro

* Remove crossbeam-channel and futures-timer from std

* Move future::timeout() behind cfg_default
2019-11-07 23:56:58 +00:00
Stjepan Glavina
6d421de992 Fix another clippy warning 2019-11-05 10:16:00 +00:00
Stjepan Glavina
5874392397 Fix a clippy warning 2019-11-04 18:48:49 +01:00
Stjepan Glavina
e9edadffc7 Fix a deadlock in channel 2019-11-04 18:15:12 +01:00
Stjepan Glavina
20cdf73bb0
Simplify RwLock using WakerSet (#440) 2019-11-04 02:40:55 +01:00
Stjepan Glavina
87de4e1598
Add utility type WakerSet to the sync module (#390)
* Add utility type Registry to the sync module

* Remove unused import

* Split unregister into complete and cancel

* Refactoring and renaming

* Split remove() into complete() and cancel()

* Rename to WakerSet

* Ignore clippy warning

* Ignore another clippy warning

* Use stronger SeqCst ordering
2019-11-01 02:45:50 +01:00