Ruby Sleep

R

Ricardo Giorni

Hi all

Ruby sleep is based on the system time, and it doesn't work well for me,
since my system time can fluctuate.

I need a sleep based on cpu ticks, or something like this, does ruby has
a way to do this? Anyone has an alternative for it, or a ruby sleep
implementation based on ticks?

Thanks!
 
D

Dave Thomas

I need a sleep based on cpu ticks, or something like this, does ruby
has
a way to do this? Anyone has an alternative for it, or a ruby sleep
implementation based on ticks?

Does your system support select()?
 
J

Joel VanderWerf

Joel said:
Doesn't #sleep use select() anyway, via rb_thread_wait_for()?

Apparently so:

$ strace ruby -e '3.times {sleep 1}' 2>&1 | tail
time(NULL) = 1223660042
time(NULL) = 1223660042
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
time(NULL) = 1223660043
time(NULL) = 1223660043
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
time(NULL) = 1223660044
rt_sigaction(SIGINT, {SIG_DFL}, {0x80b5320, [], 0}, 8) = 0
exit_group(0) = ?
Process 6665 detached
 
R

Robert Klemme

Ruby sleep is based on the system time, and it doesn't work well for me,
since my system time can fluctuate.

What exactly is this supposed to mean? Does your system clock change
arbitrarily? That sounds like a very bad thing to have and I would try
to fix it.

Cheers

robert
 
C

Charles Oliver Nutter

Robert said:
What exactly is this supposed to mean? Does your system clock change
arbitrarily? That sounds like a very bad thing to have and I would try
to fix it.

System clocks are not generally guaranteed to be accurate to the same
level that processor ticks guarantee. So you can run into cases where
short sleeps never happen or run arbitrarily too long.

Of course in Ruby (MRI) thread scheduling is largely cooperative, so the
OP is probably expecting a lot out of it anyway.

- Charlie
 

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

Members online

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top