条件が満たされるまでスレッドを待機させる方法を探しています。boost::condition_variable に似たもの。しかし、別のスレッドが現在のスレッドに通知する代わりに、条件が満たされたときに現在のスレッドをウェイクアップさせたいと考えています。
私が今持っているもの:これを行うためのより良い方法はありますか?
int i = 100;//keep connection alive for 500*100 ms (roughly 1 minute)
while (!tcp_socket.available() && (i != 0))
{
if(!tcp_socket.isOpen())
{
break;
}
i--;
boost::this_thread::sleep(boost::posix_time::milliseconds(500));
}
if (tcp_socket.available())//data available to read?
{
//read data do stuff
}