From 610a8c075958aa95b97f62a7ab020a543694c23d Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 20 Aug 2014 17:43:56 +0200 Subject: [PATCH] Move SetThreadPriority implementation to util.cpp instead of the header Put the THREAD_* and PRIO_ constants in compat.h. --- src/compat.h | 11 +++++++++++ src/util.cpp | 13 +++++++++++++ src/util.h | 29 +---------------------------- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/compat.h b/src/compat.h index 52c78171..3f0a8b61 100644 --- a/src/compat.h +++ b/src/compat.h @@ -59,4 +59,15 @@ typedef u_int SOCKET; #define SOCKET_ERROR -1 #endif +#ifndef WIN32 +// PRIO_MAX is not defined on Solaris +#ifndef PRIO_MAX +#define PRIO_MAX 20 +#endif +#define THREAD_PRIORITY_LOWEST PRIO_MAX +#define THREAD_PRIORITY_BELOW_NORMAL 2 +#define THREAD_PRIORITY_NORMAL 0 +#define THREAD_PRIORITY_ABOVE_NORMAL (-2) +#endif + #endif // _BITCOIN_COMPAT_H diff --git a/src/util.cpp b/src/util.cpp index ae2145a3..606f5a60 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1286,3 +1286,16 @@ std::string FormatParagraph(const std::string in, size_t width, size_t indent) } return out.str(); } + +void SetThreadPriority(int nPriority) +{ +#ifdef WIN32 + SetThreadPriority(GetCurrentThread(), nPriority); +#else // WIN32 +#ifdef PRIO_THREAD + setpriority(PRIO_THREAD, 0, nPriority); +#else // PRIO_THREAD + setpriority(PRIO_PROCESS, 0, nPriority); +#endif // PRIO_THREAD +#endif // WIN32 +} diff --git a/src/util.h b/src/util.h index 785d4056..939e59c3 100644 --- a/src/util.h +++ b/src/util.h @@ -342,34 +342,7 @@ bool TimingResistantEqual(const T& a, const T& b) return accumulator == 0; } -#ifdef WIN32 -inline void SetThreadPriority(int nPriority) -{ - SetThreadPriority(GetCurrentThread(), nPriority); -} -#else - -// PRIO_MAX is not defined on Solaris -#ifndef PRIO_MAX -#define PRIO_MAX 20 -#endif -#define THREAD_PRIORITY_LOWEST PRIO_MAX -#define THREAD_PRIORITY_BELOW_NORMAL 2 -#define THREAD_PRIORITY_NORMAL 0 -#define THREAD_PRIORITY_ABOVE_NORMAL (-2) - -inline void SetThreadPriority(int nPriority) -{ - // It's unclear if it's even possible to change thread priorities on Linux, - // but we really and truly need it for the generation threads. -#ifdef PRIO_THREAD - setpriority(PRIO_THREAD, 0, nPriority); -#else - setpriority(PRIO_PROCESS, 0, nPriority); -#endif -} -#endif - +void SetThreadPriority(int nPriority); void RenameThread(const char* name); // Standard wrapper for do-something-forever thread functions.