Thread.sleep (DMD 2.020)

Sean Kelly sean at invisibleduck.org
Sun Nov 2 09:52:18 PST 2008


torhu wrote:
> Sean Kelly wrote:
>> John C wrote:
> ...
>>> Win32's Sleep(50) seems to be the same as Thread.sleep(500_000). Is 
>>> that right?
>>
>> Yup.  There should probably be some sort of TimeSpan struct to help 
>> prevent these mistakes.
> 
> I assume people won't need a higher resolution than milliseconds that 
> often.  Could Thread.sleep be changed into something like this?
> 
> Thread.sleep(long millis, long hundredsOfNanos=0);

While Windows uses milliseconds, *nix uses either micrososeconds 
(usleep) or a combination of seconds and nanoseconds (nanosleep), so 
while using milliseconds may be more natural for Windows users it's 
liable to confuse others.  I suppose what I'm getting at is that there's 
no resolution that's natural for everyone, and accepting a raw integer 
as a timespan is going to cause problems no matter what resolution is 
chosen--it's just too easy to get the number of zeros wrong.  So I'd 
rather aim for establishing a structured form of time representation 
than to try and tweak the current setup.  In the interim, Tango users 
will be happy to note that Thread.sleep() uses the same resolution as 
TimeSpan uses internally, so calling this routine from Tango using a 
TimeSpan should be pretty straightforward.


Sean



More information about the Digitalmars-d mailing list