librf
|
用于协程的事件。 更多...
Public 成员函数 | |
event_t (bool initially=false) | |
构造一个事件。 更多... | |
event_t (std::adopt_lock_t) | |
构造一个无效的事件。 更多... | |
~event_t () | |
采用shared_ptr<>来保存内部的事件实现。故不必担心正在被等待的协程,因为事件提前销毁而出现异常。 | |
void | signal_all () const noexcept |
向所有正在等待的协程触发一次信号。 更多... | |
void | signal () const noexcept |
触发一次信号。 更多... | |
void | reset () const noexcept |
重置信号。 更多... | |
awaiter | operator co_await () const noexcept |
在协程中等待信号触发。 更多... | |
awaiter | wait () const noexcept |
在协程中等待信号触发。 更多... | |
template<class _Rep , class _Period > | |
timeout_awaiter | wait_for (const std::chrono::duration< _Rep, _Period > &dt) const noexcept |
在协程中等待信号触发,直到超时。 更多... | |
template<class _Clock , class _Duration > | |
timeout_awaiter | wait_until (const std::chrono::time_point< _Clock, _Duration > &tp) const noexcept |
在协程中等待信号触发,直到超时。 更多... | |
用于协程的事件。
用于同步不同线程里运行的协程。
resumef::event_t::event_t | ( | bool | initially = false | ) |
构造一个事件。
initially | 初始是否触发一次信号。 |
resumef::event_t::event_t | ( | std::adopt_lock_t | ) |
构造一个无效的事件。
如果用于后续保存另外一个事件,则应当使用此构造函数,便于节省一次不必要的内部初始化。
|
noexcept |
|
noexcept |
重置信号。
|
noexcept |
触发一次信号。
如果有正在等待的协程,则最先等待的协程会被唤醒。
如果没有正在等待的协程,则信号触发次数加一。之后有协程调用wait(),则会直接返回。
|
noexcept |
向所有正在等待的协程触发一次信号。
|
noexcept |
在协程中等待信号触发。
如果信号已经触发,则立即返回true。
否则,当前协程被阻塞,直到信号被触发后唤醒。 消耗一次信号触发次数。
bool | [co_await] 返回是否等到了信号 |
|
noexcept |
在协程中等待信号触发,直到超时。
如果信号已经触发,则立即返回true。
否则,当前协程被阻塞,直到信号被触发后,或者超时后唤醒。 如果等到了信号,则消耗一次信号触发次数。
dt | 超时时长 |
bool | [co_await] 等到了信号返回true,超时了返回false。 |
|
noexcept |
在协程中等待信号触发,直到超时。
如果信号已经触发,则立即返回true。
否则,当前协程被阻塞,直到信号被触发后,或者超时后唤醒。 如果等到了信号,则消耗一次信号触发次数。
tp | 超时时刻 |
bool | [co_await] 等到了信号返回true,超时了返回false。 |