Lisp HUG Maillist Archive

(sleep 0)

While debugging a program, I noticed that (sleep 0) in LW 5 
(LW 5.0.2 on linux) seems to sleep 4 milliseconds, whereas in
LW 4, it did not sleep a measurable amount of time.

Bug or feature?
-- 
  (espen)


Re: (sleep 0)

Espen Vestre wrote:
> While debugging a program, I noticed that (sleep 0) in LW 5 
> (LW 5.0.2 on linux) seems to sleep 4 milliseconds, whereas in
> LW 4, it did not sleep a measurable amount of time.
>
> Bug or feature?
>   
Don't know, but seems a function call needs a little time to do this.
Simple test:

SBCL:

CL-USER(1): (time (sleep 0))

Evaluation took:
  0.005 seconds of real time
  0.0 seconds of user run time
  0.0 seconds of system run time
  2 calls to %EVAL
  0 page faults and
  0 bytes consed.
NIL

CMUCL:

* (time (sleep 0))
; Compiling LAMBDA NIL:
; Compiling Top-Level Form:

; Evaluation took:
;   0.0 seconds of real time
;   0.0 seconds of user run time
;   0.0 seconds of system run time
;   41,592 CPU cycles
;   0 page faults and
;   0 bytes consed.
;
NIL

OpenMCL (x86_64 on linux):

? (time (sleep 0))
(SLEEP 0) took 0 milliseconds (0.000 seconds) to run
                    with 8 available CPU cores.
During that period, 0 milliseconds (0.000 seconds) were spent in user mode
                    0 milliseconds (0.000 seconds) were spent in system mode
NIL

GCL:

>(time (sleep 0))

real time       :      0.010 secs
run-gbc time    :      0.000 secs
child run time  :      0.000 secs
gbc time        :      0.000 secs
NIL

ECL:

> (time (sleep 0))
real time : 0.000 secs
run time  : 0.000 secs
NIL

Allegro CL:

CL-USER(1): (time (sleep 0))
; cpu time (non-gc) 0 msec user, 0 msec system
; cpu time (gc)     0 msec user, 0 msec system
; cpu time (total)  0 msec user, 0 msec system
; real time  0 msec
; space allocation:
;  12 cons cells, 200 other bytes, 24 static bytes
NIL

LispWorks (64bit on Linux):

CL-USER 2 > (time (sleep 0))
Timing the evaluation of (SLEEP 0)

User time    =        0.000
System time  =        0.000
Elapsed time =        0.004
Allocation   = 4424 bytes
0 Page faults
NIL

LispWorks (32bit on Windows, Personal):

CL-USER 2 > (time (sleep 0))
Timing the evaluation of (SLEEP 0)

User time    =        0.000
System time  =        0.000
Elapsed time =        0.000
Allocation   = 6216 bytes
0 Page faults
NIL


Updated at: 2020-12-10 08:45 UTC