summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miniperlmain.c6
-rw-r--r--perl.c14
2 files changed, 10 insertions, 10 deletions
diff --git a/miniperlmain.c b/miniperlmain.c
index ed28f47f2a..620fed78b2 100644
--- a/miniperlmain.c
+++ b/miniperlmain.c
@@ -48,6 +48,12 @@ main(int argc, char **argv, char **env)
PERL_SYS_INIT3(&argc,&argv,&env);
+#ifdef USE_ITHREADS
+ PTHREAD_ATFORK(Perl_atfork_lock,
+ Perl_atfork_unlock,
+ Perl_atfork_unlock);
+#endif
+
if (!PL_do_undump) {
my_perl = perl_alloc();
if (!my_perl)
diff --git a/perl.c b/perl.c
index 90d7134e3a..2b731c4c45 100644
--- a/perl.c
+++ b/perl.c
@@ -59,12 +59,9 @@ static I32 read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen);
#else
# if defined(USE_ITHREADS)
-static void S_atfork_lock(void);
-static void S_atfork_unlock(void);
-
/* this is called in parent before the fork() */
-static void
-S_atfork_lock(void)
+void
+Perl_atfork_lock(void)
{
/* locks must be held in locking order (if any) */
#ifdef MYMALLOC
@@ -74,8 +71,8 @@ S_atfork_lock(void)
}
/* this is called in both parent and child after the fork() */
-static void
-S_atfork_unlock(void)
+void
+Perl_atfork_unlock(void)
{
/* locks must be released in same order as in S_atfork_lock() */
#ifdef MYMALLOC
@@ -92,9 +89,6 @@ S_atfork_unlock(void)
ALLOC_THREAD_KEY; \
PERL_SET_THX(my_perl); \
OP_REFCNT_INIT; \
- PTHREAD_ATFORK(S_atfork_lock, \
- S_atfork_unlock, \
- S_atfork_unlock); \
} \
else { \
PERL_SET_THX(my_perl); \