File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -56,12 +56,13 @@ class WFTaskFactory
5656public:
5757 static WFConditional * create_conditional(const std::string& cond_name, SubTask * task);
5858 static WFConditional * create_conditional(const std::string& cond_name, SubTask * task, void ** msgbuf);
59- static void signal_by_name(const std::string& cond_name, void * msg);
60- static void signal_by_name(const std::string& cond_name, void * msg, size_t max);
59+ static int signal_by_name(const std::string& cond_name, void * msg);
60+ static int signal_by_name(const std::string& cond_name, void * msg, size_t max);
6161};
6262~~~
6363我们看到,与普通条件任务唯一区别是,命名条件任务创建时,需要传入一个cond_name。
64- 而signal_by_name()接口,将msg发送到所有在这个名称上等待的条件任务,可以将它们全部唤醒,或者指定唤醒的最大任务数。
64+ 而signal_by_name()接口,默认将msg发送到所有在这个名称上等待的条件任务,将它们全部唤醒。
65+ 也可以通过max参数指定唤醒的最大任务数。函数的返回值表示实际唤醒的个数。
6566这就相当于实现了观察者模式。
6667
6768# 示例
You can’t perform that action at this time.
0 commit comments