the pool cleanup handler which was thought to only run on top-level child process...
authorerickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Fri, 24 Oct 2008 16:31:07 +0000 (16:31 +0000)
committererickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Fri, 24 Oct 2008 16:31:07 +0000 (16:31 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1474 9efc2488-bf62-4759-914b-345cdb29e865

src/gateway/osrf_http_translator.c
src/gateway/osrf_json_gateway.c

index 5d2f60a..01c8fcc 100644 (file)
@@ -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) {
index c260d81..5bb3f5e 100644 (file)
@@ -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) {