[eside-ghost] Pthreads

Jon Valdés juanval en gmail.com
Mar Sep 15 15:50:09 CEST 2009


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
>


Más información sobre la lista de distribución eside-ghost