[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