Browse Source

Move SetThreadPriority implementation to util.cpp instead of the header

Put the THREAD_* and PRIO_ constants in compat.h.
pull/145/head
Wladimir J. van der Laan 10 years ago
parent
commit
610a8c0759
  1. 11
      src/compat.h
  2. 13
      src/util.cpp
  3. 29
      src/util.h

11
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

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

29
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.

Loading…
Cancel
Save