I tried the following, with sockets being the
best so far but it appeared to hang sometimes when running in the
background.
the system call seems to hinder Ctrl-C.
Quotes from http://lua-users.org/wiki/SleepFunction:
Solution: Busy Wait
-
local clock = os.clock
function sleep(n)
local t0 = clock()
while clock() - t0 <= n do end
end
Solution: sleep command
-
function sleep(n)
os.execute("sleep " .. tonumber(n))
end
Solution: select()
-
require "socket"
function sleep(sec)
socket.select(nil, nil, sec)
end
sleep(0.2)
On 10/13/10 7:42 PM, Del Buono, Matthew Paul wrote:
I think you missed the "non busy" part.
There's no built in sleep but it should be trivial to make a
binding for it. I've also seen people use select() from luasocket
for this purpose.
Sent from my Verizon Wireless BlackBerry
Date: Wed, 13 Oct 2010 14:26:26 -0300
Subject: Re: Sleep
Try out
function sleep(length)
local start = os.clock()
while os.clock() - start < length do end
end
On Wed, Oct 13, 2010 at 2:20 PM, Henning
Diedrich <hd2010@eonblast.com>
wrote:
Hi
list,
is there a sleep function that is
- non-busy
- allows for ctrl-C
- doesn't get stuck
- does not require a C extension
I tried busy, system call and sockets from http://lua-users.org/wiki/SleepFunction
for the above reasons they don't work for me.
Is there a rock offering a simple C-programmed sleep?
It's for a very simple game world tick with the focus on
demonstrating (other) principles, and ease of getting to
run oneself.
Thanks,
Henning
--
Gabriel Duarte
Linux User #471185
Rio de Janeiro - RJ
http://w3.impa.br/~gabrield
Phones:
(55) (21) 9463-7760 -> Mobile
(55) (21) 2464-9302 -> Home
(55) (21) 2529-5080 -> Work
|