www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Buglet] sleep() method is seriously large-grained

reply "Kris" <someidiot earthlink.dot.dot.dot.net> writes:
the std.c.time.sleep(x) method argument is actually in *seconds*; this is
really not very useful <g>

Can we get it changed to represent ms instead? That is; use SleepEx() rather
than Sleep() on Win32 ...

(I know many of these functions don't guarantee granularity below around
20ms, but that's much better than a granularity of 1000ms :-)

- Kris
May 03 2004
parent reply Stewart Gordon <smjg_1998 yahoo.com> writes:
Kris wrote:

 the std.c.time.sleep(x) method argument is actually in *seconds*; this is
 really not very useful <g>
 
 Can we get it changed to represent ms instead? That is; use SleepEx() rather
 than Sleep() on Win32 ...

Better for backward and forward compatibility would be to keep it representing seconds, and have it take a float rather than an int. That way: - there'd be no need to change every existing program so that it doesn't run 1000 times too fast - when an API function comes along that takes microseconds, it'll fit in neatly with Phobos as it stands. At that point, the millisecond'll be a rather arbitrary choice of unit. The second, OTOH, is the basic SI unit of time, as well as being a unit in which most people are likely to think, and so remains a reasonable choice. Stewart. -- My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment. Please keep replies on the 'group where everyone may benefit.
May 04 2004
next sibling parent Stewart Gordon <smjg_1998 yahoo.com> writes:
Stewart Gordon wrote:

 Kris wrote:
 
 the std.c.time.sleep(x) method argument is actually in *seconds*; this is
 really not very useful <g>


Oops, I overlooked a rather basic aspect! It is in std.c. This means that it is an interface to the C RTL. So unless the RTL changes, std.c.time.sleep isn't going to change. Still, we can always invent a new function with the semantics I've suggested.... Stewart. -- My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment. Please keep replies on the 'group where everyone may benefit.
May 04 2004
prev sibling parent reply "Kris" <someidiot earthlink.dot.dot.dot.net> writes:
Wait! I take it all back. If I'd bothered to read a bit further I'd have
seen the unix-style msleep() and usleep().

Sorry :-(


I marked it as a buglet since I imagine it was actually *meant* to be ms ...
I've never seen a runtime library sleep() function that doesn't get any
finer than 1000ms intervals. It's almost worthless as it is <g>  Naturally,
there's a first time for everything.

The fact that it's still that way may indicate that no-one has really used
it yet? It's certainly not used in any of the phobos code.

The windows.d has this instead: export void Sleep(DWORD dwMilliseconds);
But that's not portable.

- Kris


"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message
news:c78hoc$kmg$1 digitaldaemon.com...
 Kris wrote:

 the std.c.time.sleep(x) method argument is actually in *seconds*; this


 really not very useful <g>

 Can we get it changed to represent ms instead? That is; use SleepEx()


 than Sleep() on Win32 ...

Better for backward and forward compatibility would be to keep it representing seconds, and have it take a float rather than an int. That way: - there'd be no need to change every existing program so that it doesn't run 1000 times too fast - when an API function comes along that takes microseconds, it'll fit in neatly with Phobos as it stands. At that point, the millisecond'll be a rather arbitrary choice of unit. The second, OTOH, is the basic SI unit of time, as well as being a unit in which most people are likely to think, and so remains a reasonable choice. Stewart. -- My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment. Please keep replies on the 'group where everyone may benefit.

May 04 2004
parent reply "Phill" <phill pacific.net.au> writes:
"Kris" <someidiot earthlink.dot.dot.dot.net> wrote in message
news:c78mhk$so4$1 digitaldaemon.com...
 Wait! I take it all back. If I'd bothered to read a bit further I'd have
 seen the unix-style msleep() and usleep().

 Sorry :-(


 I marked it as a buglet since I imagine it was actually *meant* to be ms

 I've never seen a runtime library sleep() function that doesn't get any
 finer than 1000ms intervals. It's almost worthless as it is <g>

 there's a first time for everything.

 The fact that it's still that way may indicate that no-one has really used
 it yet? It's certainly not used in any of the phobos code.

Ive used msleep. I think these functions taken from C arent they? Phill
May 06 2004
next sibling parent reply "Walter" <newshound digitalmars.com> writes:
"Phill" <phill pacific.net.au> wrote in message
news:c7d44c$1kl0$1 digitaldaemon.com...
 Ive used msleep.

 I think these functions taken from C arent they?

They're not taken from C, they hook up directly to the C versions in the C runtime library.
May 06 2004
parent "Phill" <phill pacific.net.au> writes:
"Walter" <newshound digitalmars.com> wrote in message
news:c7fb0q$25cg$1 digitaldaemon.com...
 "Phill" <phill pacific.net.au> wrote in message
 news:c7d44c$1kl0$1 digitaldaemon.com...
 Ive used msleep.

 I think these functions taken from C arent they?

They're not taken from C, they hook up directly to the C versions in the C runtime library.

words on my part :o(
May 07 2004
prev sibling parent reply Sean Kelly <sean f4.ca> writes:
Phill wrote:
 
 Ive used msleep.
 
 I think these functions taken from C arent they?

They're optional portions of POSIX. Sean
Nov 12 2005
parent Sean Kelly <sean f4.ca> writes:
Sean Kelly wrote:
 Phill wrote:
 Ive used msleep.

 I think these functions taken from C arent they?

They're optional portions of POSIX.

Oops... and I thought I was replying to a recent post :-) Sean
Nov 12 2005