On Tue, 2009-09-01 at 14:50 -0400, Alvaro Herrera wrote: > Aldrin Martoq escribió: > > Hmmm... No encuentro la seccion RATIONALE... algun HINT ? > > $ dpkg --listfiles manpages-posix manpages-posix-dev | grep -i rationa > > $ > man pthread_getspecific > NAME > pthread_getspecific, pthread_setspecific - thread-specific data manage‐ > ment > ... > RATIONALE > Performance and ease-of-use of pthread_getspecific() are critical for
Bah'... que estupidez de mi parte... gracias! Volviendo a la pregunta original: Entiendo Eduardo que usas TSD por temas de rendimiento. Me late que quieres compartir informacion "estadistica" (contadores y ese tipo de cosas). Te sugiero que en vez de cada thread actualice un area compartida cada vez que aumenta un contador; que cada thread haga esta pega solo cuando sea necesario. Una forma de hacerlo es con signals y pthread_kill() a cada thread. Luego, cuando quieres obtener la informacion de todos los threads, el thread "monitor" envia el evento a cada thread "trabajolico", el cual es interrumpido solo para entrega dicha informacion (en un area compartida!), y finalmente el thread "monitor" realiza los calculos de resumen o lo que corresponda. Ganas respecto a una variable global: - el area TSD sigue siendo performante la mayor parte del tiempo. Pierdes respecto a una variable global en: - si obtener la informacion privada es muy seguido, no creo que sea buena idea. - no tendras la informacion al dia o exacta, pero una buena aproximacion. -- Aldrin Martoq <[email protected]> http://aldrin.martoq.cl/

