Hi,

(also posted on news.gmane.org, but does not seem to appear there)

New to this group and to D, but getting "into" it fast.

Came across a problem.

2.050 / Linux

1) On windows we can get any (std.concurrency, which is what I use in my project) thread to sleep using Sleep() from core.sys.windows.windows. I cannot find the alternative under Linux...

Is there one?

2) So I wrote one myself using receiveTimeout( time, (something unused){} );

Now begins the fun. For values of time >= 500 this workaround is fine.
For values < 500 it does not work.

Where does this magic number sit?

Cheers,
Joost.

$ cat time.d
import std.concurrency;
import std.conv;

void run( long tim )
{
    foreach( dum; 0 .. 100 )
    {
        receiveTimeout( tim, (int x){} );
    }
}

void main( string[] args )
{
    run( to!long( args[1] ) );
}
$ time ./time 500

real    0m49.673s
user    0m0.000s
sys    0m0.000s
$ time ./time 499

real    0m0.972s
user    0m0.000s
sys    0m0.000s
$

Reply via email to