Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06-10-2004, 23:29:00
Seba Ferro
 
Mensajes: n/a
Predeterminado Re: error al crear hilos

> Tengo desarrollado un "driver" en lenguaje C que corre sobre Linux (RHAS
> 2.1). La función es bastante básica: el hilo principal está siempre
> escuchando en un socket, al llegar una conexion crea un hilo que atienda la
> misma y queda nuevamente esperando conexiones.
> El problema es que llega un momento en que el hilo padre ya no puede seguir
> creando hilos, es decir, la función pthread_create(&thread_id, &funcion,
> NULL) me devuelve un valor distinto a cero.
> Buscando en Google, encontré que alguno recomendaba poner el hilo "hijo" en
> modalidad "detach" antes del pthread_exit(). Es decir:
>
> pthread_detach(thread_id);
> pthread_exit(NULL);
>
> pero esto no ha solucionado el problema. Igualmente llega un momento en que
> ya no pueden seguir creándose hilos.
>
> Es esto un BUG o solamente una mala práctica de programación de mi parte ?
>

Tengo un programa muy similar al tuyo, escucha en un socket y crea hilos
para que atiendan la conexión. La máxima cantidad de hilos que tuve en paralelo
son aprox 50 y nunca tuve problemas. Corre sobre un SUN pero el fuente esta
compilado con gcc 2.95.
Me da la sensación que no es un BUG tu problema.
Buscá una variable que se llama MAX_THREAD_PER_PROC en donde se setéa
el número máximo de hilos por proceso.
Me parece que esa variabla puede estar seteada en /etc/system

Saludos
SF.-
Responder Con Cita