Added idle time detection for macOS.

This commit is contained in:
XMRig 2021-02-20 13:18:31 +07:00
parent ee341118ce
commit b49fb27e84
No known key found for this signature in database
GPG key ID: 446A53638BE94409
3 changed files with 13 additions and 5 deletions

View file

@ -25,7 +25,6 @@
#include <uv.h>
#include <thread>
#include <fstream>
#include <limits>
#include "base/kernel/Platform.h"
@ -112,5 +111,14 @@ bool xmrig::Platform::isOnBatteryPower()
uint64_t xmrig::Platform::idleTime()
{
return std::numeric_limits<uint64_t>::max();
uint64_t idle_time = 0;
const auto service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOHIDSystem"));
const auto property = IORegistryEntryCreateCFProperty(service, CFSTR("HIDIdleTime"), kCFAllocatorDefault, 0);
CFNumberGetValue((CFNumberRef)property, kCFNumberSInt64Type, &idle_time);
CFRelease(property);
IOObjectRelease(service);
return idle_time / 1000000U;
}