diff options
-rw-r--r-- | hints/hpux.sh | 9 | ||||
-rw-r--r-- | thread.h | 14 |
2 files changed, 20 insertions, 3 deletions
diff --git a/hints/hpux.sh b/hints/hpux.sh index 70250b7a75..b215335c72 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -237,11 +237,14 @@ EOM # instead of fd_set * (just like 9.X) selecttype='int *' ;; - 11 | 12) # 12 may want upping the _POSIX_C_SOURCE - ccflags="$ccflags -D_POSIX_C_SOURCE=199506L" - libswanted="$libswanted pthread" + 11 | 12) # 12 may want upping the _POSIX_C_SOURCE datestamp... + ccflags=" -D_POSIX_C_SOURCE=199506L $ccflags" + set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` + shift + libswanted="$*" ;; esac + usemymalloc='n' ;; esac EOCBU @@ -136,12 +136,26 @@ struct perl_thread *getTHR _((void)); # endif #endif +#ifdef __hpux +# define MUTEX_INIT_NEEDS_MUTEX_ZEROED +#endif + #ifndef MUTEX_INIT +#ifdef MUTEX_INIT_NEEDS_MUTEX_ZEROED + /* Temporary workaround, true bug is deeper. --jhi 1999-02-25 */ +#define MUTEX_INIT(m) \ + STMT_START { \ + Zero((m), 1, perl_mutex); \ + if (pthread_mutex_init((m), pthread_mutexattr_default)) \ + croak("panic: MUTEX_INIT"); \ + } STMT_END +#else #define MUTEX_INIT(m) \ STMT_START { \ if (pthread_mutex_init((m), pthread_mutexattr_default)) \ croak("panic: MUTEX_INIT"); \ } STMT_END +#endif #define MUTEX_LOCK(m) \ STMT_START { \ if (pthread_mutex_lock((m))) \ |