只有在第一次set的时候,才会广播所有的观察者。
不是广播所有观察者。观察者的callback是在这个循环
while (iterator != end)
{
OBSERVER *observer = *iterator++;
observer->update (caller);
}
后面的
return this->value_ready_.broadcast ();
应该是唤醒所有阻塞在this->value_ready_(没看其他部分代码,猜测是个条件变量)上的所有线程(不知道是干什么的线程)。 大概是我修饰词汇使用的问题吧,确实 observer->update (caller);
是在while循环内部依次的被调用的,这个代码已经表述的很明显了。
另this->value_ready_.broadcast ();这个条件变量阻塞了所有调用get函数的线程。
[ 本帖最后由 modern 于 2009-6-29 09:47 编辑 ]
页:
1
[2]