Skip to content

Commit 652351d

Browse files
committed
nuke-redundant-interpreter-locks
1 parent 918a432 commit 652351d

2 files changed

Lines changed: 1 addition & 11 deletions

File tree

src/modules/perl/modperl_interp.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ modperl_interp_t *modperl_interp_new(modperl_interp_pool_t *mip,
4848

4949
interp->mip = mip;
5050
interp->refcnt = 0;
51-
MUTEX_INIT(&interp->lock);
5251

5352
if (perl) {
5453
#ifdef MP_USE_GTOP
@@ -129,7 +128,6 @@ void modperl_interp_destroy(modperl_interp_t *interp)
129128

130129
modperl_xs_dl_handles_close(handles);
131130

132-
MUTEX_DESTROY(&interp->lock);
133131
free(interp);
134132

135133
}
@@ -269,22 +267,19 @@ apr_status_t modperl_interp_unselect(void *data)
269267
modperl_interp_t *interp = (modperl_interp_t *)data;
270268
modperl_interp_pool_t *mip = interp->mip;
271269
modperl_tipool_t *tipool = mip->tipool;
272-
MUTEX_LOCK(&interp->lock);
273270
MP_ASSERT(interp && MpInterpIN_USE(interp) && interp->refcnt > 0);
274271
MP_TRACE_i(MP_FUNC, "unselect(interp=%pp): refcnt=%d",
275272
interp, interp->refcnt);
276273

277274
if (--interp->refcnt > 0) {
278275
MP_TRACE_i(MP_FUNC, "interp=0x%lx, refcnt=%d -- interp still in use",
279276
(unsigned long)interp, interp->refcnt);
280-
MUTEX_UNLOCK(&interp->lock);
281277
return APR_SUCCESS;
282278
}
283279

284280
if (!MpInterpIN_USE(interp)){
285281
MP_TRACE_i(MP_FUNC, "interp=0x%pp, refcnt=%d -- interp already not in use",
286282
interp, interp->refcnt);
287-
MUTEX_UNLOCK(&interp->lock);
288283
return APR_SUCCESS;
289284
}
290285

@@ -307,7 +302,7 @@ apr_status_t modperl_interp_unselect(void *data)
307302
MP_TRACE_i(MP_FUNC, "interp=%pp freed, tipool(size=%ld, in_use=%ld)",
308303
interp, tipool->size, tipool->in_use);
309304
}
310-
MUTEX_UNLOCK(&interp->lock);
305+
311306
return APR_SUCCESS;
312307
}
313308

@@ -460,11 +455,9 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c, server_rec
460455
static perl_mutex lock = PTHREAD_MUTEX_INITIALIZER;
461456
MUTEX_LOCK(&lock);
462457
if (p && (interp = modperl_interp_pool_get(p)) && MpInterpIN_USE(interp)) {
463-
MUTEX_LOCK(&interp->lock);
464458
MUTEX_UNLOCK(&lock);
465459
interp->refcnt++;
466460
interp->num_requests++;
467-
MUTEX_UNLOCK(&interp->lock);
468461
MP_TRACE_i(MP_FUNC,
469462
"found interp 0x%lx (perl=0x%pp) in r->pool config, refcnt=%d",
470463
(unsigned long)interp, interp->perl, interp->refcnt);
@@ -475,7 +468,6 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c, server_rec
475468
MP_TRACE_i(MP_FUNC,
476469
"fetching interp for %s:%d", s->server_hostname, s->port);
477470
interp = modperl_interp_get(s);
478-
MUTEX_LOCK(&interp->lock);
479471
MP_TRACE_i(MP_FUNC, " --> got %pp (perl=%pp)", interp, interp->perl);
480472
++interp->num_requests; /* should only get here once per request */
481473
interp->refcnt = 1;
@@ -512,7 +504,6 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c, server_rec
512504
*/
513505
interp->refcnt++, set_interp(p), interp->pool = p;
514506

515-
MUTEX_UNLOCK(&interp->lock);
516507
MUTEX_UNLOCK(&lock);
517508
return interp;
518509
}

src/modules/perl/modperl_types.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ struct modperl_interp_t {
6767
#ifdef MP_TRACE
6868
unsigned long tid;
6969
#endif
70-
perl_mutex lock;
7170
};
7271

7372
typedef struct {

0 commit comments

Comments
 (0)