Linux - Progamacion de Hilos en Linux

 
Vista:

Progamacion de Hilos en Linux

Publicado por Eduardo Martins (1 intervención) el 20/11/2001 11:13:54
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

RE:Progamacion de Hilos en Linux

Publicado por Alekusu (6 intervenciones) el 05/12/2001 18:37:41
Vamos a ver, no se si es un error que has cometido al copiarlo, pero cuando creas el hilo no lo haces con los atributos que has definido, vamos que no se los pasas como argumentos a la funcion pthread_create()

pthread_create(&threads[vchannel_id], &attr, function, (void *) vchannel_id)

Si Asi te deberia funcionar sin ningun problema.

Un saludo

Alex.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar