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

@ -147,8 +147,10 @@ elseif (XMRIG_OS_APPLE)
src/App_unix.cpp
src/crypto/common/VirtualMemory_unix.cpp
)
find_library(IOKIT_LIBRARY IOKit)
set(EXTRA_LIBS ${IOKIT_LIBRARY})
find_library(CORESERVICES_LIBRARY CoreServices)
set(EXTRA_LIBS ${IOKIT_LIBRARY} ${CORESERVICES_LIBRARY})
else()
list(APPEND SOURCES_OS
src/App_unix.cpp

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;
}

View file

@ -27,8 +27,6 @@ if (WITH_DMI)
list(APPEND SOURCES src/hw/dmi/DmiReader_unix.cpp)
elseif(XMRIG_OS_MACOS)
list(APPEND SOURCES src/hw/dmi/DmiReader_mac.cpp)
find_library(CORESERVICES_LIBRARY CoreServices)
list(APPEND EXTRA_LIBS ${CORESERVICES_LIBRARY})
endif()
else()
remove_definitions(/DXMRIG_FEATURE_DMI)