pthreads + tsd

Eduardo Silva edsiper en gmail.com
Lun Ago 31 23:04:27 CLT 2009


Hola Alvaro,

creo que utilizando una variable/array global seria la solucion, pero me
gustaria que existiese una funcion tipo

 pthread_getspecific(tid, key);

donde tid es el de la hebra que deseas accesar y el key su dato
especifico...

gracias!

Ed.-

2009/8/31 Alvaro Herrera <alvherre en alvh.no-ip.org>

> Eduardo Silva escribió:
> > Estimados,
> >
> > tengo varias hebras las cuales tienen su propio Thread-Specific-Data
> (TSD) y
> > sus llaves funcionan sin problemas. El problema radica en que necesito
> > accesar el TSD de cada una de las hebras desde una nueva hebra, por lo
> cual
> > mi pregunta es: ¿ alguien conoce alguna forma de accesar las TSD de otras
> > hebras ?, hago esta pregunta ya que no puedo dejar de usar TSD por temas
> de
> > rendimiento.
>
> Se supone que no deberías usar datos de otra hebra.  De hecho en el man
> de pthread_getspecific no veo nada que diga que puedes leer datos de
> otra hebra de ninguna forma.  Quizás deberías usar un área compartida de
> datos (es decir una variable global normal, posiblemente un array
> dándole un elemento a cada hebra), y sincronizar acceso con
> pthread_mutex* (un mutex para cada elemento de array?) o posiblemente
> pthread_cond*.
>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "Para tener más hay que desear menos"
>



-- 
Eduardo Silva
http://edsiper.linuxchile.cl


Más información sobre la lista de distribución Linux