diff options
Diffstat (limited to 'implement.h')
-rw-r--r-- | implement.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/implement.h b/implement.h index a719167..f18c7d5 100644 --- a/implement.h +++ b/implement.h @@ -77,6 +77,9 @@ struct pthread_t_ { sigset_t sigmask; #endif /* HAVE_SIGSET_T */ int implicit:1; +#ifdef __cplusplus + void * exceptionInformation; +#endif void *keys; }; @@ -256,18 +259,27 @@ struct ThreadKeyAssoc { */ #define EXCEPTION_PTHREAD_SERVICES \ MAKE_SOFTWARE_EXCEPTION( SE_ERROR, \ - PTHREAD_SERVICES_FACILITY, \ - PTHREAD_SERVICES_ERROR ) + _PTHREAD_SERVICES_FACILITY, \ + _PTHREAD_SERVICES_ERROR ) +#define _PTHREAD_SERVICES_FACILITY 0xBAD +#define _PTHREAD_SERVICES_ERROR 0xDEED -#define PTHREAD_SERVICES_FACILITY 0xBAD -#define PTHREAD_SERVICES_ERROR 0xDEED +/* + * Services available through EXCEPTION_PTHREAD_SERVICES + */ +#define _PTHREAD_EPS_CANCEL 0 +#define _PTHREAD_EPS_EXIT 1 #else #ifdef __cplusplus -class Pthread_exception {}; +/* + * Exceptions similar to the SEH exceptions above. + */ +class Pthread_exception_cancel {}; +class Pthread_exception_exit {}; #else /* __cplusplus */ |