Significato di IODisplayWrangler nelle asserzioni di gestione dell'alimentazione


6

Quando controllo le mie affermazioni sulla gestione del risparmio di energia (MacBook Pro con macOS Sierra), vedo la seguente riga:

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

Che cos'è IODisplayWrangler e cosa significa che è elencato come "dispositivo di prevenzione del sonno inattivo"?


Ho questo problema ora. Lo schermo rimane acceso, lo screensaver non funziona, non si blocca dopo l'inattività. Per me l'unica soluzione è riavviare. Vedi apple.stackexchange.com/questions/126046/…
SPRBRN

@SPRBRN Come fai a sapere che è correlato a IODisplayWrangler? Potrebbe essere del tutto benigno, ero solo curioso di cosa significasse.
Augurar

Ottengo lo stesso risultato quando eseguo il comando pmset. Questo succede dopo aver usato una cuffia bluetooth - beh, questa è la mia ipotesi migliore fino ad ora. Il riavvio risolve questo problema, ma non è una buona soluzione. Mi sembra un insetto.
SPRBRN,

@SPRBRN Ho confermato che questo messaggio è completamente normale, benigno e atteso e non indicativo di alcun problema (vedere la mia risposta di seguito per i dettagli). Il tuo problema bluetooth sembra completamente indipendente.
Augurar

Risposte:


5

Si scopre che questa parte del sistema operativo è open source . (Il collegamento è per macOS 10.12.6, ma sono disponibili altre versioni.)

La lettura del codice rivela che IODisplayWrangler è una classe che si interfaccia con il sistema di gestione dell'alimentazione per gestire la luminosità del display. Rileva l'attività dell'utente e lo utilizza per determinare quando oscurare, accendere o spegnere i display. Quando il display è acceso, la classe imposta un'asserzione del kernel che impedisce la sospensione inattiva. Quindi vedere IODisplayWrangler come dispositivo di prevenzione del sonno inattivo è normale quando il display è acceso.

Nelle parole degli sviluppatori:

/*
    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.
*/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.