Forum: Rails-ES Ayuda Threads

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
unknown (Guest)
on 2007-05-29 12:22
(Received via mailing list)
Hola a todos,
Voy a intentar explicar mi problema.
Dentro de un thread, modifico un atributo de un objeto, duermo el thread
durante 30 minutos y vuelvo a dejar el atributo tal y cómo estaba.
Hasta ahí, ningún problema.
Durante ese tiempo, el usuario, puede querer modificar manualmente ese
campo.
El problema es qeu no sé cómo identificar el thread para poder hacer el
stop, ya que si me modifican el atributo manualmente, quiero parar el
thread.  Alguna idea???
Gracias por adelantado
Ana
Emilio T. (Guest)
on 2007-05-30 02:49
(Received via mailing list)
On 5/29/07, removed_email_address@domain.invalid 
<removed_email_address@domain.invalid> wrote:
> Hola a todos,
> Voy a intentar explicar mi problema.
> Dentro de un thread, modifico un atributo de un objeto, duermo el thread
> durante 30 minutos y vuelvo a dejar el atributo tal y cómo estaba.
> Hasta ahí, ningún problema.
> Durante ese tiempo, el usuario, puede querer modificar manualmente ese campo.
> El problema es qeu no sé cómo identificar el thread para poder hacer el
> stop, ya que si me modifican el atributo manualmente, quiero parar el
> thread.  Alguna idea???
> Gracias por adelantado

Lo que queres es que si en esos 30 segundos lo modifico el usuario vos
no vuelvas al punto de partida sino que lo dejes como el usuario lo
dejo?

Si es eso, mantene el valor de inicio, si es diferente despues que se
despierte el hilo podes hacer un Thread.pass para que lo saque del
schedule. O directamente un condicional.

Seria mas facil si pones un poco de codigo de lo que has echo para
entender mejor.

Suerte!
unknown (Guest)
on 2007-05-30 10:58
(Received via mailing list)
>> thread.  Alguna idea???
>> Gracias por adelantado
>
> Lo que queres es que si en esos 30 segundos lo modifico el usuario vos
> no vuelvas al punto de partida sino que lo dejes como el usuario lo
> dejo?
Hola Emilio. Al final lo he solucionado con la propiedad keys de los
threads.
   me = Thread.current
   me[:oliver] = "a"
   me.key?(:oliver)    #=> true
   me.key?(:stanley)   #=> false

Lo de la variable de inicio no me valía, porque podían llamar varias veces
al método que lanza el thread, y si no lo mato, no sé realmente en que
estado debería estar el objeto. De todas formas, muchísimas gracias por tu
interés.
Saludos
Ana
This topic is locked and can not be replied to.