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> 79 std::
string ecl_threads_PUBLIC print_priority_diagnostics() ecl_debug_throw_decl(StandardException);
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());
#define ecl_threads_PUBLIC
Embedded control libraries.
Common types for priority scheduling.
#define ecl_debug_throw_decl(exception)
Priority
Shared abstraction of the scheduling priorities.