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