boost::signals
スロットが同期的または非同期的に呼び出されていることを誰かに教えてもらえますか?
たとえば、次のコードがあります。
struct Hello
{
void operator()() const
{
std::cout << "Hello ";
}
};
struct World
{
void operator()() const
{
std::cout << " world!" << std::endl;
}
};
boost::signal<void ()> sig;
sig.connect(Hello());
sig.connect(World());
sig();
cout << "Foo";
実行スレッドはどのように機能しますか?実行は実行を待機しHello()
てWorld()
実行し、その直後に出力されます"Foo"
か、それとも非同期で呼び出しますか(「Foo」を出力し、未定義の順序で呼び出しHello()
て実行します)?World()