12 #ifndef ECL_THREADS_PRIORITY_WIN_HPP_
13 #define ECL_THREADS_PRIORITY_WIN_HPP_
19 #include <ecl/config/ecl.hpp>
20 #if defined(ECL_IS_WIN32)
30 #include <ecl/config/ecl.hpp>
102 bool ECL_LOCAL set_real_time_priority(
int policy,
int priority_level);
111 #if defined(ECL_HAS_EXCEPTIONS)
130 inline StandardException
ECL_LOCAL throwPriorityException(
const char* loc ) {
131 int error_result = errno;
132 switch (error_result) {
133 case ( EINVAL ) :
return StandardException(loc,
ecl::InvalidInputError,
"The specified param structure or priority group was invalid.");
134 case ( ESRCH ) :
return StandardException(loc,
ecl::InvalidInputError,
"The process specified could not be found.");
135 case ( EPERM ) :
return StandardException(loc,
ecl::PermissionsError,
"The caller does not have the appropriate privileges for realtime scheduling (http://snorriheim.dnsdojo.com/doku/doku.php/en:linux:admin:priorities).");
136 case ( EACCES ) :
return StandardException(loc,
ecl::PermissionsError,
"The caller does not have the appropriate privileges for elevating the process priority by reducing the niceness value (http://snorriheim.dnsdojo.com/doku/doku.php/en:linux:admin:priorities).");
139 std::ostringstream ostream;
140 ostream <<
"Unknown posix error " << error_result <<
": " << strerror(error_result) <<
".";
141 return StandardException(loc,
UnknownError, ostream.str());