12 #ifndef ECL_THREADS_THREAD_EXCEPTIONS_POS_HPP_    13 #define ECL_THREADS_THREAD_EXCEPTIONS_POS_HPP_    20 #if defined(ECL_IS_POSIX)    28 #include <ecl/errors/handlers.hpp>    47 inline Error 
ECL_LOCAL handlePthreadCreateError(
int error_result) {
    48         switch (error_result) {
    62 #include <ecl/exceptions/macros.hpp>    63 #if defined(ECL_HAS_EXCEPTIONS)    70 #include <ecl/exceptions/standard_exception.hpp>    89 inline StandardException 
ECL_LOCAL throwPthreadCreateException(
const char* loc, 
int error_result) {
    90         switch (error_result) {
    91                 case ( EINVAL ) : 
return StandardException(loc, 
InvalidInputError, 
"Invalid settings in 'attr'");
    92                 case ( EAGAIN ) : 
return StandardException(loc, 
MemoryError, 
"Insufficient resources to create another thread.");
    93                 case ( EPERM )  : 
return StandardException(loc, 
PermissionsError, 
"No permission to set the scheduling policy and parameters specified in attr.");
    94                 default         : 
return StandardException(loc, 
UnknownError, 
"Unknown error.");
   104 inline StandardException 
ECL_LOCAL throwPthreadJoinException(
const char* loc, 
int error_result) {
   105         switch (error_result) {
   106                 case ( EDEADLK ) : 
return StandardException(loc, 
UsageError, 
"Deadlock! Two threads tried to join each other or a thread tried to join itself.");
   107                 case ( EINVAL )  : 
return StandardException(loc, 
InvalidInputError, 
"The specified thread is not joinable or another thread is already waiting to join with it.");
   108                 case ( ESRCH )   : 
return StandardException(loc, 
InvalidInputError, 
"The specified thread (id) could not be found. Probably its already been joined?");
   109                 default          : 
return StandardException(loc, 
UnknownError, 
"Unknown error.");
   118 inline StandardException 
ECL_LOCAL throwPthreadCancelException(
const char* loc, 
int error_result) {
   119         switch (error_result) {
   120                 case ( ESRCH )   : 
return StandardException(loc, 
InvalidInputError, 
"The specified thread (id) could not be found. Probably its already terminated.");
   121                 default          : 
return StandardException(loc, 
UnknownError, 
"Unknown error.");
 
Pre-processed macro definitions that define the target platform.