acl  3.5.3.0
fiber_cond.hpp
浏览该文件的文档.
1 #pragma once
2 #include "fiber_cpp_define.hpp"
3 
4 struct ACL_FIBER_COND;
5 
6 namespace acl {
7 
8 class fiber_event;
9 
10 /**
11  * 可用在协程之间,线程之间,协程与线程之间的条件变量
12  */
14 {
15 public:
16  fiber_cond(void);
17  ~fiber_cond(void);
18 
19  /**
20  * 等待条件变量事件被触发
21  * @param event {fiber_event&}
22  * @param timeout {int} 超时等待时间(毫秒)
23  * @return {bool} 成功时返回 true,否则返回 false 表示超时
24  */
25  bool wait(fiber_event& event, int timeout = -1);
26 
27  /**
28  * 唤醒在条件变量上的等待者,如果没有等待者则直接返回,运行行为和
29  * 线程条件变量类似
30  * @return {bool} 成功返回 true,否则返回 false 表示失败
31  */
32  bool notify(void);
33 
34 public:
35  /**
36  * 返回 C 版本的条件变量对象
37  * @return {ACL_FIBER_COND*}
38  */
39  ACL_FIBER_COND* get_cond(void) const
40  {
41  return cond_;
42  }
43 
44 private:
45  ACL_FIBER_COND* cond_;
46 
47  fiber_cond(const fiber_cond&);
48  void operator=(const fiber_cond&);
49 };
50 
51 }
52 
#define FIBER_CPP_API
struct ACL_FIBER_COND ACL_FIBER_COND
Definition: fiber_cond.h:17
ACL_FIBER_COND * get_cond(void) const
Definition: fiber_cond.hpp:39