Implements an Advanced Configuration and Power Interface (ACPI) based battery manager kernel extension (kext/driver) for non-Apple laptops running OS X.
Evidently, on some machines this is not called on the workloop thread. When the target code calls back into check if there are any batteries discharging (from another thread), it results in deadlock (locking battery tracker IORecursiveLock) and battery status updates stop.
Will need to push this through a command gate, such that the code is executed on the workloop thread.
Note: I already have a fix for this sitting on the machine that I discovered it with, but that machine doesn't have network access, so it will be a bit...
Evidently, on some machines this is not called on the workloop thread. When the target code calls back into check if there are any batteries discharging (from another thread), it results in deadlock (locking battery tracker IORecursiveLock) and battery status updates stop.
Will need to push this through a command gate, such that the code is executed on the workloop thread.
Note: I already have a fix for this sitting on the machine that I discovered it with, but that machine doesn't have network access, so it will be a bit...