Use reentrant functions on Darwin
authorKarl Williamson <khw@cpan.org>
Thu, 7 Sep 2017 16:51:50 +0000 (10:51 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 7 Sep 2017 17:06:28 +0000 (11:06 -0600)
Darwin does have reentrant functions, like asctime_r, and so enable
their automatic use of all the ones available.  Tony Cook speculated the
failure to use these may be behind some unexplained problems on Darwin.
Netware is still disabled; the commit that did that did not specify why.

It would be good if someone could come with a test that fails (with some
regularity) until this patch is applied.

This supercedes:

commit 4f8ddd771cda27533f4680b572d765b063e03e11
Author: Artur Bergman <sky@nanisky.com>
Date:   Tue Feb 5 10:30:58 2002 +0000

    Enable building with threads under macosx, assume __APPLE__ means darwin and disable _r functions, since we don't have them.

perl.h

diff --git a/perl.h b/perl.h
index 6f48820..504caa9 100644 (file)
--- a/perl.h
+++ b/perl.h
 
 /* Use the reentrant APIs like localtime_r and getpwent_r */
 /* Win32 has naturally threadsafe libraries, no need to use any _r variants. */
-#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(NETWARE) && !defined(WIN32) && !defined(PERL_DARWIN)
+#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(NETWARE) && !defined(WIN32)
 #   define USE_REENTRANT_API
 #endif