Bedeutung von IODisplayWrangler in Power-Management-Zusicherungen

Wenn ich meine Energieverwaltungszusicherungen überprüfe (MacBook Pro mit macOS Sierra), sehe ich die folgende Zeile:

$ sudo pmset -g assertions
...
Idle sleep preventers: IODisplayWrangler

Was ist IODisplayWrangler und was bedeutet es, dass es als „Idle Sleep Preventer“ aufgeführt ist?

Ich habe dieses Problem jetzt. Der Bildschirm bleibt eingeschaltet, der Bildschirmschoner funktioniert nicht, er wird nach Inaktivität nicht gesperrt. Für mich ist die einzige Lösung ein Neustart. Siehe apple.stackexchange.com/questions/126046/…
@SPRBRN Woher weißt du, dass das mit dem IODisplayWrangler zusammenhängt? Es kann völlig harmlos sein, ich war nur neugierig, was es bedeutet.
Ich erhalte das gleiche Ergebnis, wenn ich den Befehl pmset ausführe. Dies passiert nach der Verwendung eines Bluetooth-Kopfhörers - nun, das ist meine bisher beste Vermutung. Ein Neustart löst dies, aber das ist keine gute Lösung. Es scheint mir ein Bug zu sein.
@SPRBRN Ich habe bestätigt, dass diese Nachricht eine völlig normale, gutartige und erwartete Nachricht ist und nicht auf ein Problem hinweist (Einzelheiten finden Sie in meiner Antwort unten). Ihr Bluetooth-Problem klingt völlig unabhängig.

Antworten (1)

Es stellt sich heraus, dass dieser Teil des Betriebssystems Open Source ist . (Link ist für macOS 10.12.6, aber andere Versionen sind verfügbar.)

Das Lesen des Codes zeigt, dass der IODisplayWrangler eine Klasse ist, die mit dem Energieverwaltungssystem verbunden ist, um die Anzeigehelligkeit zu verwalten. Es erkennt Benutzeraktivitäten und verwendet diese, um zu bestimmen, wann Displays gedimmt, ein- oder ausgeschaltet werden sollen. Wenn die Anzeige eingeschaltet ist, setzt die Klasse eine Kernel-Assertion, die den Leerlauf verhindert. Daher ist es normal, IODisplayWrangler als Idle-Sleep-Preventer zu sehen, wenn das Display eingeschaltet ist.

In den eigenen Worten der Entwickler:

/*
    This is the Power Management policy-maker for the displays.  It senses when
    the display is idle and lowers power accordingly.  It raises power back up
    when the display becomes un-idle.

    It senses idleness with a combination of an idle timer and the "activityTickle"
    method call.  "activityTickle" is called by objects which sense keyboard activity,
    mouse activity, or other button activity (display contrast, display brightness,
    PCMCIA eject).  The method sets a "displayInUse" flag.  When the timer expires,
    this flag is checked.  If it is on, the display is judged "in use".  The flag is
    cleared and the timer is restarted.

    If the flag is off when the timer expires, then there has been no user activity
    since the last timer expiration, and the display is judged idle and its power is
    lowered.

    [...]

    This driver calls the drivers for each display and has them move their display
    between various power states. When the display is idle, its power is dropped
    state by state until it is in the lowest state.  When it becomes un-idle it is
    powered back up to the state where it was last being used.

    [...]

    We register with Power Management only so that we can be informed of changes in
    the Power Management aggressiveness factor.  We don't really have a device with
    power states so we implement the absolute minimum. The display drivers themselves
    are part of the Power Management hierarchy under their respective frame buffers.
*/