diff options
Diffstat (limited to 'thread.h')
-rw-r--r-- | thread.h | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -117,6 +117,7 @@ #define INIT_THREADS cthread_init() #define YIELD cthread_yield() #define ALLOC_THREAD_KEY NOOP +#define FREE_THREAD_KEY NOOP #define SET_THREAD_SELF(thr) (thr->self = cthread_self()) #endif /* I_MACH_CTHREADS */ @@ -251,12 +252,19 @@ # define ALLOC_THREAD_KEY \ STMT_START { \ if (pthread_key_create(&PL_thr_key, 0)) { \ - fprintf(stderr, "panic: pthread_key_create"); \ + PerlIO_printf(PerlIO_stderr(), "panic: pthread_key_create"); \ exit(1); \ } \ } STMT_END #endif +#ifndef FREE_THREAD_KEY +# define FREE_THREAD_KEY \ + STMT_START { \ + pthread_key_delete(PL_thr_key); \ + } STMT_END +#endif + #ifndef THREAD_RET_TYPE # define THREAD_RET_TYPE void * # define THREAD_RET_CAST(p) ((void *)(p)) |