[C con Clase] Ayuda con programación POSIX (mutex y variables condición)

Javier Cancio del Busto sepholin en gmail.com
Vie Mayo 22 15:18:02 CEST 2009


Buenas!

Estoy con un programa en el que necesito que un cierto hilo se suspenda
durante un tiempo X. Para ello tenemos que utilizar la función nt
pthread_cond_timedwait(pthread_cond_t *restrict *cond*, pthread_mutex_t
*restrict *mutex*, const struct timespec *restrict *abstime*);

La cual devuelve el error ETIMEDOUT si se supera el tiempo indicado por
abstime y no se ha despertado el hilo. Mis dudas son:

1) ¿Cómo puedo especificar, mediante el tercer argumento, que espere por
ejemplo 0.5 s? Creo la estructura, la cual tiene dos atributos, tv_sec y
tv_nsec, pero si pongo tv_sec=0.5 no parece funcionar bien.

2) ¿Cómo puedo capturar el error ETIMEDOUT? Lo hago con un if
(pthread_cond_timedwait(&variable, &mutex, &tiempo)==ETIMEDOUT) { codigo }
pero al compilar me dice que ETIMEDOUT no está definida (he incluido las
cabeceras pthread.h y time.h sin embargo sigue saliendo ese error... ¿Debo
añadir la cabecera errno.h?.

Muchas gracias!

-- 
======================
 Javier Cancio del Busto
======================
 http://tuxete.wordpress.com
======================
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090522/1f58b49f/attachment.html>


Más información sobre la lista de distribución Cconclase