找回密码
 用户注册

QQ登录

只需一步,快速开始

楼主: kleavings

关于期货和观察者的关系,请指教

[复制链接]
发表于 2009-6-28 15:05:51 | 显示全部楼层
原帖由 modern 于 2009-4-23 13:58 发表
只有在第一次set的时候,才会广播所有的观察者。

不是广播所有观察者。观察者的callback是在这个循环
          while (iterator != end)
            {
              OBSERVER *observer = *iterator++;
              observer->update (caller);
            }

后面的
return this->value_ready_.broadcast ();
应该是唤醒所有阻塞在this->value_ready_(没看其他部分代码,猜测是个条件变量)上的所有线程(不知道是干什么的线程)。
发表于 2009-6-28 23:16:52 | 显示全部楼层
大概是我修饰词汇使用的问题吧,确实 observer->update (caller);
是在while循环内部依次的被调用的,这个代码已经表述的很明显了。
另this->value_ready_.broadcast ();这个条件变量阻塞了所有调用get函数的线程。

[ 本帖最后由 modern 于 2009-6-29 09:47 编辑 ]
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 04:05 , Processed in 0.014803 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表