Commit Graph

9 Commits

Author SHA1 Message Date
Tom
9af897fa3b v0.2
* Preserve interface of std::condition_variable through "perfect
  forwarding"
* Decouple SignalHandler and AtomicCondition
* Callback function for signals
* Improve readme
* Bump version to v0.2
2019-10-13 15:00:20 +02:00
Tom
52dca2ac50 use typename for template parameters 2019-10-02 16:59:22 +02:00
Tom
2a04dd5cc1 AtomicCondition: fix race condition, remove notify_{one,all}
* Fix race condition in wait_for between calling atomic load
  and condition_variable::wait_for, by protecting atomic store
  with same mutex as AtomicCondition::wait_for.
* Subsequently, simplify the interface by removing notify_{one,all}.
  condition_varaiable::notify_all is now automatically called in
  `AtomicCondition::set(val)`.
2019-09-23 12:04:28 +02:00
Tom
5708d49a1a AtomicCondition: add wait_for with predicate, add notify_one 2019-09-16 18:07:58 +02:00
Tom
1146362559 AtomicCondition::wait_for: use std::chrono::duration 2019-09-16 18:07:20 +02:00
Tom
7dd4a1a075 AtomicCondition::{get,set} noexcept 2019-09-16 18:05:13 +02:00
Tom
88a7849c2c ValueType of AtomicCondition does not have to be lock-free 2019-09-15 21:52:55 +02:00
Tom
544614b637 mark AtomicCondition::notify_all noexcept
std::condition_variable::notify_all is noexcept
2019-09-15 21:51:49 +02:00
Tom
076e77ff53 initial import 2019-09-14 22:41:56 +02:00