Articles of pthreads

¿Está accept () thread-safe?

Actualmente estoy escribiendo un servidor web simple en C para un curso que estoy haciendo. Un requisito es que implementemos un grupo de subprocesos para manejar las conexiones que usan pthreads. Sé cómo iba a hacer esto más o menos (llamando aceptar en un hilo principal y pasando el descriptor de archivo a un hilo […]

Cómo establecer el nombre de un hilo en Linux pthreads?

¿Hay alguna forma de configurar el nombre de un hilo en Linux? Mi objective principal es que sería útil durante la depuración, y también es bueno si ese nombre se expuso a través de, por ejemplo, /proc/$PID/task/$TID/…

Pase el valor entero a través de pthread_create

Simplemente quiero pasar el valor de un entero a un hilo. ¿Cómo puedo hacer eso? Lo intenté: int i; pthread_t thread_tid[10]; for(i=0; i<10; i++) { pthread_create(&thread_tid[i], NULL, collector, i); } El método de subproceso se ve así: void *collector( void *arg) { int a = (int) arg; … Recibo la siguiente advertencia: warning: cast from […]

¿Está bien llamar a pthread_exit desde main?

Cuando llamo pthread_exit desde main , el progtwig nunca llega a terminar. Esperaba que el progtwig terminara, ya que estaba saliendo del único hilo del progtwig, pero no funciona. Parece colgado. #include #include #include int main(int argc, char *argv[]) { printf(“-one-\n”); pthread_exit(NULL); printf(“-two-\n”); } Process Explorer muestra que el subproceso (único) está en el estado […]

¿Puedo obtener pthread.h de Unix para comstackr en Windows?

Si trato de comstackr un progtwig con #include en él, me sale el error: pthread.h: No such file or directory ¿Es posible comstackr esto en un entorno Windows? Estoy usando Vista con la última MinGW. No quiero usar los servicios de Microsoft Windows para UNIX versión 3.5 ya que tendré que mover esto a un […]

Variable de condición de compartir & mutex entre procesos: ¿el mutex tiene que bloquearse antes?

Necesito un poco de ayuda para entender cómo usar las variables de condición en C para resolver un ejercicio. Aquí hay un pequeño ejemplo: #include #include #include #include #include #include #include #include #include #include #define OKTOWRITE “/oktowrite” #define MESSAGE “/message” #define MUTEX “/lock” int main(int argc, char** argv) { pthread_cond_t* condition; pthread_mutex_t *mutex; char* message; […]

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 […]