Strange behaviour with sleep() in a thread...

  • Thread starter Just Another Victim of the Ambient Morality
  • Start date
J

Just Another Victim of the Ambient Morality

I have a thread created with Thread.new that does some polling. I don't
want it to busy wait so I call the sleep method like so:

sleep(60)

...this should allow me to poll every minute which is good enough for my
application. However, I'm finding that calling sleep from a thread in this
manner often sleeps for a good deal longer than a minute. So far, I find it
sleeping for about 8 or so minutes. The main thread is blocked in a gets
call.
What I'm actually trying to do is implement a simple timer. I'm trying
to do something at a certain point in time, like a cron job, without busy
waiting.
Why is sleep behaving so strangely? Is there a simple way of doing what
I'm trying to do?
Thank you...
 
R

Roger Pack

Why is sleep behaving so strangely? Is there a simple way of doing
what
If you're on 1.8.x then your two threads are actually one "real thread"
running two green threads. One of the green threads [the gets] might be
blocking and not allowing control to return to the other.
Fix (should this be the case): make the one not block, or use 1.9
Cheers!
-=r
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
473,767
Messages
2,569,571
Members
45,045
Latest member
DRCM

Latest Threads

Top