void slowDisconnect(qi::Promise<void> ready, qi::Promise<void> done, qi::Future<void> wait, qi::AnyObject obj, boost::shared_ptr<qi::SignalLink> link) { ready.setValue(0); wait.wait(); try { obj.disconnect(*link); } catch (...) {} done.setValue(0); }
void consumer(qi::atomic<long> &gSuccess, qi::Future<int> fut) { //wont block thread on error ASSERT_TRUE(fut.wait(1000)); EXPECT_EQ(42, fut.value()); ++gSuccess; }