This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
The HP-UX threads patch (change #3028) is needed also here.
authorJarkko Hietaniemi <jhi@iki.fi>
Tue, 2 Mar 1999 23:12:36 +0000 (23:12 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Tue, 2 Mar 1999 23:12:36 +0000 (23:12 +0000)
p4raw-link: @3028 on //depot/maint-5.005/perl: d9761d5fa9df9e662778f8ca3ed55c2e3037a72a

p4raw-id: //depot/cfgperl@3052

hints/hpux.sh
thread.h

index 70250b7..b215335 100644 (file)
@@ -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
index 695f288..882158c 100644 (file)
--- a/thread.h
+++ b/thread.h
@@ -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)))            \