From 055d8acb25aa78053adca79889cf4ed33a9174ab Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Wed, 27 Feb 2019 18:37:00 -0800 Subject: [PATCH] Added _change_nice(), and options in src/Options.h --- src/Controls.cpp | 14 +++++++++++++- src/Options.h | 8 +++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Controls.cpp b/src/Controls.cpp index d03b0ed..a508ba2 100644 --- a/src/Controls.cpp +++ b/src/Controls.cpp @@ -273,6 +273,15 @@ void _api_sleep(int interval_ms) #endif } +int _change_nice(int increment) +{ + if (increment == 0) { + return 0; + } + int priority = getpriority(PRIO_PROCESS, 0); + return setpriority( PRIO_PROCESS, 0, priority+increment); +} + ////////////////////////////////////////////////////////////////////////////// // Callback thread // ////////////////////////////////////////////////////////////////////////////// @@ -283,6 +292,7 @@ DWORD WINAPI _zts_run_callbacks(LPVOID thread_id) void *_zts_run_callbacks(void *thread_id) #endif { + _change_nice(CALLBACK_THREAD_NICENESS); #if defined(__APPLE__) pthread_setname_np(ZTS_EVENT_CALLBACK_THREAD_NAME); #endif @@ -318,7 +328,9 @@ void *_zts_run_service(void *arg) //struct serviceParameters *params = arg; //DEBUG_INFO("path=%s", params->path.c_str()); int err; - + + _change_nice(SERVICE_THREAD_NICENESS); + try { std::vector hpsp(OSUtils::split(_path.c_str(), ZT_PATH_SEPARATOR_S,"","")); std::string ptmp; diff --git a/src/Options.h b/src/Options.h index 96d0677..3b7970f 100644 --- a/src/Options.h +++ b/src/Options.h @@ -32,9 +32,15 @@ #define ZTS_HIBERNATION_MULTIPLIER 50 ////////////////////////////////////////////////////////////////////////////// -// Thread names // +// Threading // ////////////////////////////////////////////////////////////////////////////// +#define SERVICE_THREAD_NICENESS 0 // -10 +#define CALLBACK_THREAD_NICENESS 0 // 10 +#define LWIP_DRIVER_THREAD_NICENESS 0 // 10 +#define TCPIP_THREAD_NICENESS 0 // -10 +#define TAP_THREAD_NICENESS 0 // 10 + #define ZTS_SERVICE_THREAD_NAME "ZeroTierServiceThread" #define ZTS_EVENT_CALLBACK_THREAD_NAME "ZeroTierEventCallbackThread" #define ZTS_LWIP_DRIVER_THREAD_NAME "lwipDriver"