[gambit-list] Problem in thread-sleep! may be a poor implementation of the select system call

Marc Feeley feeley at iro.umontreal.ca
Wed Jan 28 12:05:51 EST 2009


On 28-Jan-09, at 2:13 AM, vasil wrote:

> I consider linux RT kernel is somewhat unusual.
>
> Here is result of select-test.c on my Linux machine:
>
> $ time ./a.out
>
> real    0m10.015s
> user    0m0.000s
> sys     0m0.002s
>
> $ uname -a
> Linux cassiopea 2.6.22-16-rt #1 SMP PREEMPT RT Mon Nov 24 19:03:10 GMT
> 2008 x86_64 GNU/Linux
>
> Linux distro is Ubuntu 7.10 with RT linux kernel on laptop with Core 2
> Duo in AMD64 mode.
>
> When I run scheme code, I've got a value of n 1001 or 1002.
>
> Vasil

Please try it again, this time after a "make update".

I have changed the implementation of the "select" logic so that if  
"select" is being called purely to sleep (i.e. there is no I/O to wait  
for), then the "nanosleep" function will be called.  I would appear  
that nanosleep has a much better resolution.  I also fixed a bug which  
gave a segfault when thread-sleep! was interrupted.

Marc




More information about the Gambit-list mailing list