He creado un hilo de refuerzo usando: boost :: thread thrd (& connectionThread); donde connectionThread es una función vacía simple. Esto funciona bien, sin embargo, cuando trato de hacerlo esperar algunos segundos, por ejemplo usando:C++ Dejar que un hilo de refuerzo espere 1 segundo
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += 1;
boost::thread::sleep(xt); // Sleep for 1 second
El programa se bloquea en la línea de xtime_get. Incluso cuando intentas configurar xt.sec manualmente, no funciona. He intentado varios otros métodos, pero parece que no puedo hacer que funcione. ¿Hay algo que estoy haciendo mal? ¿Hay alguna manera más fácil de lograr mi objetivo?
Más inf ¿Necesito ion? ¿Esto se bloquea en la línea xtime_get? Si es así, ¿cómo se bloquea cuando configura manualmente el xt (o simplemente no se comporta como lo desea)? –
¿De qué manera no funciona al intentar establecer xt.sec manualmente? xt.sec = 1 es probablemente una cantidad de tiempo increíblemente corta, ya que creo que sec es al menos en milisegundos. Si es así, dormirías durante un milisegundo. – Skurmedel
http://www.boost.org/doc/libs/1_38_0/doc/html/thread/time.html#thread.time.system_time, también parece que la versión más reciente de la biblioteca ahora usa componentes de boost :: date_time para especificar la duración. – Skurmedel