acl
3.5.3.0
|
#include <fiber_event.hpp>
Public 成员函数 | |
fiber_event (bool use_mutex=true, bool fatal_on_error=true) | |
~fiber_event (void) | |
bool | wait (void) |
bool | trywait (void) |
bool | notify (void) |
ACL_FIBER_EVENT * | get_event (void) const |
可用于协程之间、线程之间以及协程与线程之间,通过事件等待/通知方式进行同步的 的事件混合锁
在文件 fiber_event.hpp 第 12 行定义.
acl::fiber_event::fiber_event | ( | bool | use_mutex = true , |
bool | fatal_on_error = true |
||
) |
构造方法
use_mutex | {bool} 在用在多线程之间进行事件同步时,如果启动的 的线程数较多(成百上千个线程),则此标志应设为 true 以便于内部在 同步内部对象时使用线程互斥锁进行保护,以避免形成惊群现象,如果启动 的线程数较多但该标志为 false,则内部使用原子数进行同步保护,很容易 造成惊群问题;当启动的线程数较(几十个左右),则此参数可以设为 false 以告之内部使用原子数进行同步保护 |
fatal_on_error | {bool} 内部发生错误时是否直接崩溃,以便于开发 人员进行错误调试 |
acl::fiber_event::~fiber_event | ( | void | ) |
|
inline |
bool acl::fiber_event::notify | ( | void | ) |
事件锁拥有者释放事件锁并通知等待者
被这些函数引用 acl::fiber_tbox< T >::pop(), acl::fiber_tbox< T >::push() , 以及 acl::fiber_tbox< T >::unlock().
bool acl::fiber_event::trywait | ( | void | ) |
尝试等待事件锁
bool acl::fiber_event::wait | ( | void | ) |
等待事件锁
被这些函数引用 acl::fiber_tbox< T >::lock(), acl::fiber_tbox< T >::pop() , 以及 acl::fiber_tbox< T >::push().