[C con Clase] Ayuda con programación POSIX (mutex y variables condición)
Steven Davidson
srd4121 en njit.edu
Vie Mayo 22 21:06:47 CEST 2009
Hola Javier,
Javier Cancio del Busto wrote:
> Gracias a ambos por las respuestas :)
>
> Respecto a obtener la hora absoluta y almacenarla en la estructura,
> ¿Cómo debo hacerlo? Yo había pensado en establecer los 0.5 segundos de
> forma similar a como me dijo Programante.
>
Según la documentación, la hora y fecha que pases deben ser absolutas.
Una forma de conseguir esta información es invocando 'clock_gettime()'.
Sin embargo, para esta función necesitas conseguir un identificador del
reloj/cronómetro/temporizador. Para conseguir esta información, invoca
'clock_getcpuclockid()'. Esto sería,
timespec ts;
clock_id idReloj;
clock_getcpuclockid( 0, &idReloj );
clock_gettime( idReloj, &ts );
// Ahora agregamos 0,5 s
ts.tv_nsec = 500000000;
pthread_cond_timedwait(...);
Según un ejemplo que he visto por ahí, es posible usar algunas
constantes para el identificador del reloj sin necesidad de obtener uno.
Por ejemplo,
clock_gettime( CLOCK_REALTIME, &ts );
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase