acl/lib_fiber/cpp/include/fiber/fiber_event.hpp
2017-11-24 11:25:05 +08:00

40 lines
800 B
C++

#pragma once
struct ACL_FIBER_EVENT;
namespace acl {
/**
* 可用于协程之间、线程之间以及协程与线程之间,通过事件等待/通知方式进行同步的
* 的事件混合锁
*/
class fiber_event
{
public:
fiber_event(void);
~fiber_event(void);
/**
* 等待事件锁
* @return {bool} 返回 true 表示加锁成功,否则表示内部出错
*/
bool wait(void);
/**
* 尝试等待事件锁
* @return {bool} 返回 true 表示加锁成功,否则表示锁正在被占用
*/
bool trywait(void);
/**
* 事件锁拥有者释放事件锁并通知等待者
* @return {bool} 返回 true 表示通知成功,否则表示内部出错
*/
bool notify(void);
private:
ACL_FIBER_EVENT* event_;
};
} // namespace acl