summaryrefslogtreecommitdiff
path: root/perl.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2022-12-01 10:44:08 -0700
committerKarl Williamson <khw@cpan.org>2022-12-05 11:54:43 -0700
commit2a9ab842f968d5b791dda641c9aff2396fd1f024 (patch)
tree41ee9e4820cce0fe34e25eb02fb0dc2285fbf9e3 /perl.h
parent86665b00d95547847396212c376467ff98778ef2 (diff)
downloadperl-2a9ab842f968d5b791dda641c9aff2396fd1f024.tar.gz
locale.c: Add mutex lock around _wsetlocale() call
The lock expands to nothing if unthreaded, or thread-local storage is in effect. But otherwise protects a global value from being clobbered by another thread.
Diffstat (limited to 'perl.h')
-rw-r--r--perl.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/perl.h b/perl.h
index 72254a1578..98bdf94b27 100644
--- a/perl.h
+++ b/perl.h
@@ -7128,6 +7128,10 @@ the plain locale pragma without a parameter (S<C<use locale>>) is in effect.
# define POSIX_SETLOCALE_UNLOCK gwLOCALE_UNLOCK
#endif
+/* It handles _wsetlocale() as well */
+#define WSETLOCALE_LOCK POSIX_SETLOCALE_LOCK
+#define WSETLOCALE_UNLOCK POSIX_SETLOCALE_UNLOCK
+
/* Similar to gwLOCALE_LOCK, there are functions that require both the locale
* and environment to be constant during their execution, and don't change
* either of those things, but do write to some sort of shared global space.