[svn:mod_parrot] r409 - mod_parrot/trunk/src
[email protected] Mon, 4 Aug 2008 16:36:56 -0700 (PDT)
| Newsgroups | perl.cvs.mod_parrot |
|---|---|
| Message-ID | <[email protected]> |
Author: jhorwitz
Date: Mon Aug 4 16:36:55 2008
New Revision: 409
Modified:
mod_parrot/trunk/src/mod_parrot.c
mod_parrot/trunk/src/modparrot_config.c
Log:
fix context exhaustion in threaded mpms
Modified: mod_parrot/trunk/src/mod_parrot.c
==============================================================================
--- mod_parrot/trunk/src/mod_parrot.c (original)
+++ mod_parrot/trunk/src/mod_parrot.c Mon Aug 4 16:36:55 2008
@@ -982,6 +982,9 @@
if (!(vscfg->option_flags & MP_OPT_TRACE_INIT)) {
Parrot_set_trace(vsctxp->interp, vscfg->trace_flags);
}
+
+ /* clean up */
+ release_ctx(vsctxp);
}
else {
if (vscfg->option_flags & MP_OPT_ENABLE) {
@@ -995,6 +998,7 @@
/* if not our handler, return OK (open_logs must return OK) */
if (!cfg->open_logs_handler) {
+ release_ctx(ctxp);
return OK;
}
Modified: mod_parrot/trunk/src/modparrot_config.c
==============================================================================
--- mod_parrot/trunk/src/modparrot_config.c (original)
+++ mod_parrot/trunk/src/modparrot_config.c Mon Aug 4 16:36:55 2008
@@ -306,6 +306,9 @@
parse_handler(cmd->pool, handler, l);
modparrot_load_file(ctxp->interp, cmd->server, l->hll, l->id);
+ /* clean up */
+ release_ctx(ctxp);
+
return NULL;
}
@@ -604,6 +607,7 @@
set_mp_config_vectors(ctxp, cmd);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 1, arg);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -619,6 +623,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 2, arg1, arg2);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -634,6 +639,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 2, arg1, arg2);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -650,6 +656,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 3, arg1, arg2, arg3);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -666,6 +673,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 3, arg1, arg2, arg3);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -682,6 +690,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 3, arg1, arg2, arg3);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -696,6 +705,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 1, arg);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -708,6 +718,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "II", arg);
+ release_ctx(ctxp);
return NULL;
}
@@ -722,6 +733,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 1, arg);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -737,6 +749,7 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
args = make_cmd_args_array(ctxp->interp, cmd->pool, 2, arg1, arg2);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "IP", args);
+ release_ctx(ctxp);
return NULL;
}
@@ -748,5 +761,6 @@
ctxp = modparrot_startup(cmd->pool, cmd->server, NULL);
ret = Parrot_call_sub_ret_int(ctxp->interp, data->func, "I");
+ release_ctx(ctxp);
return NULL;
}