Importancia de IODisplayWrangler en las afirmaciones de administración de energía

Cuando reviso mis aserciones de administración de energía (MacBook Pro con macOS Sierra), veo la siguiente línea:

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

¿Qué es IODisplayWrangler y qué significa que aparece como un "prevenir el sueño inactivo"?

Tengo este problema ahora. La pantalla permanece encendida, el protector de pantalla no funciona, no se bloquea después de la inactividad. Para mí la única solución es reiniciar. Consulte apple.stackexchange.com/questions/126046/…
@SPRBRN ¿Cómo sabe que está relacionado con IODisplayWrangler? Puede ser totalmente benigno, solo tenía curiosidad por saber qué significaba.
Obtengo el mismo resultado al ejecutar el comando pmset. Esto sucede después de usar un auricular bluetooth; bueno, esa es mi mejor suposición hasta ahora. Reiniciar resuelve esto, pero esa no es una buena solución. Me parece un error.
@SPRBRN He confirmado que este mensaje es completamente normal, benigno y esperado y no indica ningún problema (consulte mi respuesta a continuación para obtener más detalles). Su problema de bluetooth suena completamente ajeno.

Respuestas (1)

Resulta que esta parte del sistema operativo es de código abierto . (El enlace es para macOS 10.12.6, pero hay otras versiones disponibles).

La lectura del código revela que IODisplayWrangler es una clase que interactúa con el sistema de administración de energía para administrar el brillo de la pantalla. Detecta la actividad del usuario y la usa para determinar cuándo atenuar, encender o apagar las pantallas. Cuando la pantalla está encendida, la clase establece una aserción del kernel que evita la suspensión inactiva. Por lo tanto, es normal ver IODisplayWrangler como un impedimento del sueño inactivo cuando la pantalla está encendida.

En las propias palabras de los desarrolladores:

/*
    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.
*/