[eside-ghost] Pthreads
Iker Perez de Albeniz - Txupete -
txupete en gmail.com
Mar Sep 15 18:37:24 CEST 2009
eso ya habia probado y me da unos segmentation faults del copon...
2009/9/15 Jon Ander Ortiz <jonbaine en gmail.com>
> perdón, que me ha derrapado el tabulador:
>
>
> //////////////////////////////////////////////////////////////////////////////////////
> pthread_t t;
> pthread_attr_t attr;
>
> if (pthread_attr_init(&attr)
> ||
> pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)
> ||
> pthread_create (&t, &attr,handleNewConnection, (void *) connData)) {
> //ERROR
> }
>
> //////////////////////////////////////////////////
>
> 2009/9/15, Jon Ander Ortiz <jonbaine en gmail.com>:
> > if (pthread_attr_init(&attr)
> > ||
> > pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)
> > 210 ||
> > 211 pthread_create (&t, &attr,
> > handleNewConnection, (void *) connData)) {
> >
> > 2009/9/15, Jon Valdés <juanval en gmail.com>:
> >> si no recuerdo mal, era en la función de creación del thread, que en
> >> los parámetros le puedes especificar que lo quieres detached.
> >>
> >> Lo que pasa es que tampoco recuerdo mucho del asunto. Casi que mejor
> >> tira de valgrind como decía Jonan, y a ver si encuentras el leak :-\
> >>
> >> Hasta luegoo
> >>
> >> 2009/9/15 Iker Perez de Albeniz - Txupete - <txupete en gmail.com>:
> >>>
> >>>
> >>> 2009/9/15 Jon Valdés <juanval en gmail.com>
> >>>>
> >>>> Si no recuerdo mal, los threads se pueden crear en modo detached, que
> >>>> hace que no haga falta hacer el join al final, y el thread se destruye
> >>>> automáticamente.
> >>>
> >>> eso he estado intentando... con un atributo.. como se podria hacer de
> >>> otra
> >>> forma ??
> >>>
> >>> pthread_create(......);
> >>> pthread_detached(pthread_id);
> >>>
> >>>
> >>> ¿asi?
> >>>
> >>>>
> >>>> Y lo que dice jonan: la variable data mas vale que la borres desde
> >>>> dentro de la rutina del thread, porque si no ahi tienes un buen leak.
> >>>>
> >>>
> >>> si, al final del threar la borro. ese no es el problema.
> >>>
> >>>>
> >>>> Un saludoooo
> >>>>
> >>>> 2009/9/15 Iker Perez de Albeniz - Txupete - <txupete en gmail.com>:
> >>>> > He probado con pthread_join() y que espere q ue se termine el thread
> >>>> > y
> >>>> > parece que el leak desaparece... pero al final es como si tubiera un
> >>>> > solo
> >>>> > thread...
> >>>> >
> >>>> > 2009/9/15 Jon Ander Ortiz <jonbaine en gmail.com>
> >>>> >>
> >>>> >> Buenas Iker!!
> >>>> >>
> >>>> >> Ante todo, comentar que los threads son una buena manera de
> >>>> >> dispararse
> >>>> >> a
> >>>> >> un pie [1,2] :D
> >>>> >>
> >>>> >> Sobre el error de pthread_detach, el lugar donde deberías llamarla
> >>>> >> (una
> >>>> >> sola vez), debería de ser
> >>>> >> tras el pthread_create. ¿Como la estás llamanado para que te pete?
> >>>> >>
> >>>> >> Sobre el crecimiento de la memoria:
> >>>> >>
> >>>> >> * LO PRIMERO DE TODO: No destruyes "data". A primera vista tienes
> un
> >>>> >> leak.
> >>>> >> En un for infinito.
> >>>> >> Pasale el valgrind que te va pegar un chillido de los buenos en
> cada
> >>>> >> bucle
> >>>> >> si tienes un leak ahí.
> >>>> >>
> >>>> >> * Cuando la función llamada en pthread_create, termina, se produce
> >>>> >> un
> >>>> >> pthread_exit implícito, y
> >>>> >> la memoria asociada a dicho thread (stack y las variables TLS [3] )
> >>>> >> se
> >>>> >> liberan. Si estás llamando explicitamente
> >>>> >> a esta función desde algún destructor, o alguna cosa rara puede ser
> >>>> >> el
> >>>> >> origen de tus problemas.
> >>>> >>
> >>>> >> Un saludete:
> >>>> >> Jonan
> >>>> >>
> >>>> >>
> >>>> >> [1]http://badtux.org/home/eric/editorial/threads.php
> >>>> >> [2]http://www.kuro5hin.org/story/2002/11/18/22112/860
> >>>> >> [3]http://en.wikipedia.org/wiki/Thread-local_storage
> >>>> >>>
> >>>> >>> _______________________________________________
> >>>> >>> eside-ghost mailing list
> >>>> >>> eside-ghost en listas.deusto.es
> >>>> >>> https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>>> >>
> >>>> >>
> >>>> >> _______________________________________________
> >>>> >> eside-ghost mailing list
> >>>> >> eside-ghost en listas.deusto.es
> >>>> >> https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>>> >
> >>>> >
> >>>> > _______________________________________________
> >>>> > eside-ghost mailing list
> >>>> > eside-ghost en listas.deusto.es
> >>>> > https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>>> >
> >>>> _______________________________________________
> >>>> eside-ghost mailing list
> >>>> eside-ghost en listas.deusto.es
> >>>> https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>>
> >>>
> >>> _______________________________________________
> >>> eside-ghost mailing list
> >>> eside-ghost en listas.deusto.es
> >>> https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>>
> >> _______________________________________________
> >> eside-ghost mailing list
> >> eside-ghost en listas.deusto.es
> >> https://listas.deusto.es/mailman/listinfo/eside-ghost
> >>
> >
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20090915/f76f70d4/attachment-0001.htm
Más información sobre la lista de distribución eside-ghost