Articles of pthreads

Kill Thread in Pthread Library

Yo uso pthread_create(&thread1, &attrs, //… , //…); y necesita si alguna condición ocurrió necesita matar este hilo cómo matar esto?

Cómo devolver un valor desde el hilo en C

Soy nuevo en C y me gustaría jugar un poco con los hilos. Me gustaría devolver algún valor de un hilo usando pthread_exit() Mi código es el siguiente: #include #include void *myThread() { int ret = 42; pthread_exit(&ret); } int main() { pthread_t tid; void *status; pthread_create(&tid, NULL, myThread, NULL); pthread_join(tid, &status); printf(“%d\n”,*(int*)status); return 0; […]

¿Es posible determinar el hilo que contiene un mutex?

En primer lugar, uso la biblioteca pthread para escribir el progtwig C de subprocesos múltiples. Los hilos siempre cuelgan por sus mutexs esperadas. Cuando uso la utilidad strace para encontrar un hilo en estado FUTEX_WAIT , quiero saber qué hilo contiene ese mutex en ese momento. Pero no sé cómo podría hacerlo. ¿Hay alguna utilidad […]

¿Cómo obtengo un ID de hilo de un arbitrario pthread_t?

Tengo un pthread_t y me gustaría cambiar su afinidad con la CPU. El problema es que estoy usando glibc 2.3.2, que no tiene pthread_setaffinity_np () . Sin embargo, eso está bien, porque pthread_setaffinity_np () es en sí mismo un contenedor de sched_setaffinity () , que se puede invocar al pasar un ID de hilo en […]

variable de condición: ¿por qué llamar a pthread_cond_signal () antes de llamar a pthread_cond_wait () es un error lógico?

Está escrito en el tutorial de hilos POSIX https://computing.llnl.gov/tutorials/pthreads/ que es un error lógico. ¿Mi pregunta es por qué es un error lógico? En mi progtwig, necesito usar estas señales, sin embargo, no puedo garantizar que haya un hilo que estará en el estado _cond_wait. Traté de probarlo y no pasó nada. ¿Esto puede causar […]

Cancelar un hilo usando pthread_cancel: buenas prácticas o malas

Tengo un progtwig C ++ en Linux (CentOS 5.3) generando múltiples hilos que están en un ciclo infinito para realizar un trabajo y dormir durante ciertos minutos. Ahora tengo que cancelar los hilos en ejecución en caso de que aparezca una nueva notificación de configuración y comenzar nuevamente un nuevo conjunto de hilos, para lo […]

¿Cómo se consulta un pthread para ver si aún se está ejecutando?

En mi destructor quiero destruir un hilo limpiamente. Mi objective es esperar a que un hilo termine de ejecutarse y LUEGO destruir el hilo. Lo único que encontré sobre la consulta del estado de un pthread es pthread_attr_setdetachstate, pero esto solo te dice si tu hilo es: PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE Ambas cosas no tienen nada que […]

Referencia indefinida a ‘pthread_create’: orden de las opciones del comando del enlazador (¿bibliotecas antes / después de los archivos del objeto?)

Cuando bash comstackr eso, recibo un error en particular. Pero no es posible porque utilizo la bandera correcta. En server.c está la biblioteca pthread.h . Entonces, ¿cómo puedo resolver mi problema de vinculación? Estoy usando Linux (Ubuntu). make gcc -c -Wall -Wunused -ansi -pedantic -ggdb -o Server1.o Server.c gcc -c -Wall -Wunused -ansi -pedantic -ggdb […]

sem_init en OS X

Estoy trabajando en algún código que use las bibliotecas pthread y semáforo. La función sem_init funciona bien en mi máquina Ubuntu, pero en OS X la función sem_init no tiene ningún efecto. ¿Hay algún problema con la biblioteca o hay una forma diferente de hacerlo? Este es el código que estoy usando para probar. sem_t […]

¿Protege una variable con un pthread mutex garantiza que tampoco está en caché?

Considere una variable simple (global en mi caso): int i; En alguna parte se accede a esta variable pthread_mutex_lock(i_mutex); if(i == other value) { do_something(); } pthread_mutex_unlock(i_mutex); Otro subproceso actualiza i mientras contiene i_mutex . ¿Podría el comstackdor almacenar en caché el valor de i para que no obtenga el valor reciente? ¿Debo ser volátil?