Cygwin doesn't like initing the $0 mutex in perl_construct()
Jarkko Hietaniemi [Wed, 12 Mar 2003 10:49:27 +0000 (10:49 +0000)]
(Too early? If inited there the pthread_mutex_init() returns
an integer much too large be an errno), but initing the mutex
later, in perl_alloc(), seems to be okay with Cygwin, and also
with Linux.

p4raw-id: //depot/perl@18950

perl.c

diff --git a/perl.c b/perl.c
index 3536850..19289ec 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -65,6 +65,7 @@ static I32 read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen);
            ALLOC_THREAD_KEY;                   \
            PERL_SET_THX(my_perl);              \
            OP_REFCNT_INIT;                     \
+           MUTEX_INIT(&PL_dollarzero_mutex);   \
        }                                       \
        else {                                  \
            PERL_SET_THX(my_perl);              \
@@ -155,9 +156,6 @@ perl_construct(pTHXx)
 
    /* Init the real globals (and main thread)? */
     if (!PL_linestr) {
-#ifdef USE_ITHREADS
-       MUTEX_INIT(&PL_dollarzero_mutex);       /* for $0 modifying */
-#endif
 #ifdef PERL_FLEXIBLE_EXCEPTIONS
        PL_protect = MEMBER_TO_FPTR(Perl_default_protect); /* for exceptions */
 #endif