On Tue, Nov 30, 2010 at 09:17:32PM +0100, Karel Miklav wrote:
> I want to slow down a script to a number of cycles per
> second with:
> 
>   (thread-sleep! (/ 1 12))
> 
> That however fails

Fails how?

> so I ended up importing numbers and
> adapting the line to:
> 
>   (thread-sleep! (exact->inexact (/ 1 12)))

If I do (/ 1 12) without numbers I get 0.0833333333333333
and if I do (exact->inexact (/ 1 12)) *with* numbers I
get the same result.

> This call usually blocks within 10 retries. I don't
> have a clue what is going on and know little about
> scheme but it looks like something about numbers.
> These always work:
> 
>   (thread-sleep! 0.083)
> 
>   (thread-sleep! (/ (round (*
>     (exact->inexact (/ 1 12)) 1000)) 1000))
> 
> Anybody knows what is the problem?

The real question is why it blocks at all.  That importing numbers
makes a difference is weird, but you shouldn't need to do that at
all.

Cheers,
Peter
-- 
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
                                                        -- Donald Knuth

_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to