@@ -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}
0 commit comments