C/Visual C - Progamacion de Hilos en Linux

 
Vista:

Progamacion de Hilos en Linux

Publicado por Eduardo Martins (1 intervención) el 20/11/2001 08:58:09
Hola, pueden ayudar ?
Estoy programando en C y usando hilos, bajo Linux .
Mi programa es transaccional, otro programa le envia mensajes
a travez de una cola. Yo definí que mi hilo seria "detached".
Cuando yo le envio un mensaje aparece otro proceso con el mismo nombre
como si fuese un proceso hijo. Cuando mi hilo termina
(usando la funcion pthread_exit(NULL)) ese proceso duplicado continua
activo.
Porque eso pasa? Eso es normal? Como lo puedo evitar?

Abajo está la forma en que programé:

pthread_t threads[MAX_NRO_THREADS];
pthread_attr_t attr;
errno = 0;
if( pthread_attr_init(&attr) )
perror("p_init");

errno = 0;
if( pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) )
perror("p_setd");

errno = 0;
if( pthread_create(&threads[vchannel_id], NULL
, function, (void *) vchannel_id) )
perror("pcreate");

Y aqui está como aparece con el comando PS:

ps -ef | grep aut_kernel
oracle 2812 1 0 19:24 tty2 00:00:00 ./aut_kernel -id0
oracle 2814 2812 0 19:24 tty2 00:00:00 ./aut_kernel -id0

Los dos procesos solamente terminan cuando el proceso principal termina.
De otro modo ambos permanecen activos.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder