Skip to content

Commit 8310e7f

Browse files
committed
Add mutex for dealing with qr/\p{user-defined}/
This will be used in future commits
1 parent 3c5142a commit 8310e7f

File tree

8 files changed

+21
-3
lines changed

8 files changed

+21
-3
lines changed

dosish.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
# define PERL_SYS_TERM_BODY() \
5252
HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
5353
OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
54-
MALLOC_TERM; LOCALE_TERM;
54+
MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM;
5555
#endif
5656
#define dXSUB_SYS dNOOP
5757

embedvar.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,8 @@
468468
#define PL_Gtimesbase (my_vars->Gtimesbase)
469469
#define PL_use_safe_putenv (my_vars->Guse_safe_putenv)
470470
#define PL_Guse_safe_putenv (my_vars->Guse_safe_putenv)
471+
#define PL_user_prop_mutex (my_vars->Guser_prop_mutex)
472+
#define PL_Guser_prop_mutex (my_vars->Guser_prop_mutex)
471473
#define PL_utf8_charname_begin (my_vars->Gutf8_charname_begin)
472474
#define PL_Gutf8_charname_begin (my_vars->Gutf8_charname_begin)
473475
#define PL_utf8_charname_continue (my_vars->Gutf8_charname_continue)

makedef.pl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ sub readvar {
352352

353353
unless ($define{'USE_ITHREADS'}) {
354354
++$skip{PL_thr_key};
355+
++$skip{PL_user_prop_mutex};
355356
}
356357

357358
# USE_5005THREADS symbols. Kept as reference for easier removal

perl.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ S_init_tls_and_interp(PerlInterpreter *my_perl)
9595
KEYWORD_PLUGIN_MUTEX_INIT;
9696
HINTS_REFCNT_INIT;
9797
LOCALE_INIT;
98+
USER_PROP_MUTEX_INIT;
9899
MUTEX_INIT(&PL_dollarzero_mutex);
99100
MUTEX_INIT(&PL_my_ctx_mutex);
100101
# endif

perl.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5991,11 +5991,19 @@ typedef struct am_table_short AMTS;
59915991
# define KEYWORD_PLUGIN_MUTEX_LOCK MUTEX_LOCK(&PL_keyword_plugin_mutex)
59925992
# define KEYWORD_PLUGIN_MUTEX_UNLOCK MUTEX_UNLOCK(&PL_keyword_plugin_mutex)
59935993
# define KEYWORD_PLUGIN_MUTEX_TERM MUTEX_DESTROY(&PL_keyword_plugin_mutex)
5994+
# define USER_PROP_MUTEX_INIT MUTEX_INIT(&PL_user_prop_mutex)
5995+
# define USER_PROP_MUTEX_LOCK MUTEX_LOCK(&PL_user_prop_mutex)
5996+
# define USER_PROP_MUTEX_UNLOCK MUTEX_UNLOCK(&PL_user_prop_mutex)
5997+
# define USER_PROP_MUTEX_TERM MUTEX_DESTROY(&PL_user_prop_mutex)
59945998
#else
59955999
# define KEYWORD_PLUGIN_MUTEX_INIT NOOP
59966000
# define KEYWORD_PLUGIN_MUTEX_LOCK NOOP
59976001
# define KEYWORD_PLUGIN_MUTEX_UNLOCK NOOP
59986002
# define KEYWORD_PLUGIN_MUTEX_TERM NOOP
6003+
# define USER_PROP_MUTEX_INIT NOOP
6004+
# define USER_PROP_MUTEX_LOCK NOOP
6005+
# define USER_PROP_MUTEX_UNLOCK NOOP
6006+
# define USER_PROP_MUTEX_TERM NOOP
59996007
#endif
60006008

60016009
#ifdef USE_LOCALE /* These locale things are all subject to change */

perlapi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@ END_EXTERN_C
215215
#define PL_timesbase (*Perl_Gtimesbase_ptr(NULL))
216216
#undef PL_use_safe_putenv
217217
#define PL_use_safe_putenv (*Perl_Guse_safe_putenv_ptr(NULL))
218+
#undef PL_user_prop_mutex
219+
#define PL_user_prop_mutex (*Perl_Guser_prop_mutex_ptr(NULL))
218220
#undef PL_utf8_charname_begin
219221
#define PL_utf8_charname_begin (*Perl_Gutf8_charname_begin_ptr(NULL))
220222
#undef PL_utf8_charname_continue

perlvars.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,10 @@ PERLVAR(G, utf8_mark, SV *)
307307
PERLVAR(G, InBitmap, SV *)
308308
PERLVAR(G, CCC_non0_non230, SV *)
309309

310+
#if defined(USE_ITHREADS)
311+
PERLVAR(G, user_prop_mutex, perl_mutex)
312+
#endif
313+
310314
/* Everything that folds to a given character, for case insensitivity regex
311315
* matching */
312316
PERLVAR(G, utf8_foldclosures, SV *)

unixish.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ int afstat(int fd, struct stat *statb);
141141
# define PERL_SYS_TERM_BODY() \
142142
HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
143143
OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
144-
MALLOC_TERM; LOCALE_TERM; \
144+
MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM; \
145145
amigaos4_dispose_fork_array();
146146
#endif
147147

@@ -154,7 +154,7 @@ int afstat(int fd, struct stat *statb);
154154
# define PERL_SYS_TERM_BODY() \
155155
HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM; \
156156
OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM; \
157-
MALLOC_TERM; LOCALE_TERM;
157+
MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM;
158158

159159
#endif
160160

0 commit comments

Comments
 (0)