Tabla de contenidos
Fichero test.c que debes descargar en tu directorio actual.
Conteste a las siguientes cuestiones:
Lee la documentación de Helgrind. ¿Qué tipo de errores se pueden detectar con helgrind?
Genere un ejecutable a partir de test.c
(compilando con la opción -lpthread
del gcc) y ejecútelo usando helgrind. ¿Qué información sobre errores se obtiene?
Diga en la línea en qué se produce el error
Ficheros helloThreads.c y race.c que debes descargar en tu directorio actual.
Compile helloThreads.c
, ejecútelo varias veces y entienda cómo funciona.
Basándose en el ejemplo anterior de creación de hilos, race.c
introduce un contador que es compartido entre los hilos e incrementado por ellos. Compile race.c
y ejecútelo varias veces. ¿Cuál es el valor final del contador? ¿Por qué sucede ésto? Arregle el código usando mútex. Puede utilizar helgrind para detectar errores.
De forma opcional: modifique race.c
para añadir un nuevo hilo que espere hasta que el contador alcance un valor especificado (COUNT_LIMIT
(Recomendación: usad helgrind para detectar errores).