
Hello, I have to change win32 events with something portable so I decided to use boost.signals2. Right now I have something like: ret = WaitForMultipleObjets{ switch(ret) { case Timeout: something; break; case Event1: something; break; case Event2: something; break; }} and I think that the good idea is to replace this with something like that: for(;;){ Execute code from timeout, if event occurs interrupt and execute code which is responsible for event handling} but for test I write this: boost::signals2::signal<void()> signal; void SendSignal() { std::cout << "Send signal"; boost::this_thread::sleep_for(boost::chrono::milliseconds(200)); signal(); boost::this_thread::sleep_for(boost::chrono::milliseconds(2000)); } int main() { boost::thread t1(SendSignal); for (;;) { std::cout << "."; boost::this_thread::sleep_for(boost::chrono::milliseconds(100)); } auto c = signal.connect([]() { std::cout << "Signal receive" << std::endl; boost::this_thread::sleep_for(boost::chrono::milliseconds(1000)); }); return 0; } unfortunately this example is not working, what I've done wrong ? Best regards