We lost a hunk in change 18030 that is needed for any type of threading,
not just 5005threads. The attached patch restores it. It also removes
two references to USE_5005THREADS that were introduced in 19042 but
should not be there for 5.9.x.

This patch is only relevant to 5.9.x, not 5.8.x.

--- vms/vms.c;-0        Fri Mar 21 02:59:14 2003
+++ vms/vms.c   Sat Mar 22 13:33:13 2003
@@ -4618,6 +4618,12 @@
   if (tabidx) { tabvec[tabidx] = NULL; env_tables = tabvec; }
 
   getredirection(argcp,argvp);
+#if defined(USE_ITHREADS) && ( defined(__DECC) || defined(__DECCXX) )
+  {
+# include <reentrancy.h>
+  (void) decc$set_reentrancy(C$C_MULTITHREAD);
+  }
+#endif
   return;
 }
 /*}}}*/
@@ -4845,7 +4851,7 @@
     dd->pat.dsc$w_length = strlen(dd->pattern);
     dd->pat.dsc$b_dtype = DSC$K_DTYPE_T;
     dd->pat.dsc$b_class = DSC$K_CLASS_S;
-#if defined(USE_5005THREADS) || defined(USE_ITHREADS)
+#if defined(USE_ITHREADS)
     New(1308,dd->mutex,1,perl_mutex);
     MUTEX_INIT( (perl_mutex *) dd->mutex );
 #else
@@ -4876,7 +4882,7 @@
 {
     (void)lib$find_file_end(&dd->context);
     Safefree(dd->pattern);
-#if defined(USE_5005THREADS) || defined(USE_ITHREADS)
+#if defined(USE_ITHREADS)
     MUTEX_DESTROY( (perl_mutex *) dd->mutex );
     Safefree(dd->mutex);
 #endif

Reply via email to