On 10.9 and later, `racket/gui` now disables App Nap. Otherwise, a
program like
#lang racket/base
(require racket/class
racket/gui/base)
(define T 0.05)
(let loop ([prev (current-inexact-milliseconds)])
(sleep T)
(define now (current-inexact-milliseconds))
(define delta (- now prev))
(when (delta . > . (* 2000 T))
(printf "long wait ~a at ~a\n" delta now))
(loop now))
will start to report a wait of more than 10 seconds, as App Nap
puts the process to sleep.
Relatedly, when `racket/gui` is started via plain `racket` (as opposed
to GRacket), then it starts in "accessory" mode instead of "regular"
mode, which means that the application does not appear in the dock
or have a menu bar. As soon as a frame is shown or a root menu bar
is created, the application is promoted to "regular" mode. This works
in 10.7 and later.
original commit: b336194cf420e8b978f0f63cffc0f69e59fcda9a