Articles of pthreads

valgrind errores de pérdida de memoria cuando se utiliza pthread_create

Estoy escribiendo un progtwig usando la biblioteca pthread. Cuando ejecuto mi progtwig con el comando valgrind –leak-check = full, obtengo la siguiente descripción de errores: ==11784== ==11784== **HEAP SUMMARY:** ==11784== in use at exit: 4,952 bytes in 18 blocks ==11784== total heap usage: 1,059 allocs, 1,041 frees, 51,864 bytes allocated ==11784== ==11784== **288 bytes** in […]

¿Los subprocesos pthread funcionan a través de subprocesos si están en la memoria compartida?

Encontré esto: método rápido de sincronización entre procesos Solía ​​creer que un mutex pthread solo se puede compartir entre dos hilos en el mismo espacio de direcciones . La pregunta / respuestas allí parece implicar: Si tengo dos procesos separados A y B. Tienen una región de memoria compartida M. Puedo poner un mutex de […]

Cómo imprimir pthread_t

Búsqueda, pero no encuentras una respuesta satisfactoria. Sé que no hay una forma portátil de imprimir un pthread_t. ¿Cómo lo haces en tu aplicación? Actualizar: En realidad, no necesito pthread_t, sino una pequeña identificación numérica, identificando en el mensaje de depuración diferentes hilos. En mi sistema (RHEL 5.3 de 64 bits) se define como unsigned […]

¿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?