summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-07-12 05:10:50 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-07-12 05:10:50 +0000
commit5c0ca7990f0d90291b9a3d0b6c57bae560b23b52 (patch)
tree26fb0eee534215ebaa9caa2327d1ee6ac37d3bb7 /regexec.c
parent8b49bb9af6b73f5b844abedd87486b1c41fc6b01 (diff)
downloadperl-5c0ca7990f0d90291b9a3d0b6c57bae560b23b52.tar.gz
make RE engine threadsafe; -Dusethreads builds, tests on Solaris,
and runs regexes in 1000s of threads without crashing; also fixed statcache not being thread-local p4raw-id: //depot/perl@1448
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/regexec.c b/regexec.c
index 47ed120cef..314fc3dc6a 100644
--- a/regexec.c
+++ b/regexec.c
@@ -204,6 +204,7 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend,
/* data: May be used for some additional optimizations. */
/* nosave: For optimizations. */
{
+ dTHR;
register char *s;
register regnode *c;
register char *startpos = stringarg;
@@ -1375,8 +1376,8 @@ regmatch(regnode *prog)
ln = n;
locinput = reginput;
DEBUG_r(
- PerlIO_printf(Perl_debug_log, "%*s matched %ld times,
- len=%ld...\n",
+ PerlIO_printf(Perl_debug_log,
+ "%*s matched %ld times, len=%ld...\n",
REPORT_CODE_OFF+regindent*2, "", n, l)
);
if (n >= ln) {
@@ -1634,6 +1635,7 @@ no:
STATIC I32
regrepeat(regnode *p, I32 max)
{
+ dTHR;
register char *scan;
register char *opnd;
register I32 c;
@@ -1746,6 +1748,7 @@ regrepeat(regnode *p, I32 max)
STATIC I32
regrepeat_hard(regnode *p, I32 max, I32 *lp)
{
+ dTHR;
register char *scan;
register char *start;
register char *loceol = regeol;
@@ -1777,6 +1780,7 @@ regrepeat_hard(regnode *p, I32 max, I32 *lp)
STATIC bool
reginclass(register char *p, register I32 c)
{
+ dTHR;
char flags = *p;
bool match = FALSE;