From 31ca3667a02d7a63eeb511581863eac4929298de Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 24 Oct 2008 16:31:07 +0000 Subject: [PATCH] the pool cleanup handler which was thought to only run on top-level child process exit is running on cloned processes cleanup. this is how mod_cgi runs scripts. disabling cleanup for now. note: this cleanup is new to 1.0 git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1474 9efc2488-bf62-4759-914b-345cdb29e865 --- src/gateway/osrf_http_translator.c | 11 ++++++++--- src/gateway/osrf_json_gateway.c | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gateway/osrf_http_translator.c b/src/gateway/osrf_http_translator.c index 5d2f60a..01c8fcc 100644 --- a/src/gateway/osrf_http_translator.c +++ b/src/gateway/osrf_http_translator.c @@ -318,10 +318,14 @@ static void osrfHttpTranslatorCacheSession(osrfHttpTranslator* trans) { static void osrfHttpTranslatorWriteChunk(osrfHttpTranslator* trans, transport_message* msg) { ap_rprintf(trans->apreq, "Content-type: %s\n\n%s\n\n", JSON_CONTENT_TYPE, msg->body); - if(trans->complete) + osrfLogInternal(OSRF_LOG_MARK, "Apache sending data: Content-type: %s\n\n%s\n\n", JSON_CONTENT_TYPE, msg->body); + if(trans->complete) { ap_rprintf(trans->apreq, "--%s--\n", trans->delim); - else + osrfLogInternal(OSRF_LOG_MARK, "Apache sending data: --%s--\n", trans->delim); + } else { ap_rprintf(trans->apreq, "--%s\n", trans->delim); + osrfLogInternal(OSRF_LOG_MARK, "Apache sending data: --%s\n", trans->delim); + } ap_rflush(trans->apreq); } @@ -437,7 +441,8 @@ static void childInit(apr_pool_t *p, server_rec *s) { osrfConnected = 1; // at pool destroy time (= child exit time), cleanup - apr_pool_cleanup_register(p, NULL, childExit, NULL); + // XXX causes us to disconnect even for clone()'d process cleanup (as in mod_cgi) + //apr_pool_cleanup_register(p, NULL, childExit, apr_pool_cleanup_null); } static int handler(request_rec *r) { diff --git a/src/gateway/osrf_json_gateway.c b/src/gateway/osrf_json_gateway.c index c260d81..5bb3f5e 100644 --- a/src/gateway/osrf_json_gateway.c +++ b/src/gateway/osrf_json_gateway.c @@ -99,7 +99,8 @@ static void osrf_json_gateway_child_init(apr_pool_t *p, server_rec *s) { // when this pool is cleaned up, it means the child // process is going away. register some cleanup code - apr_pool_cleanup_register(p, NULL, child_exit, NULL); + // XXX causes us to disconnect even for clone()'d process cleanup (as in mod_cgi) + //apr_pool_cleanup_register(p, NULL, child_exit, apr_pool_cleanup_null); } static int osrf_json_gateway_method_handler (request_rec *r) { -- 2.43.2