]> matita.cs.unibo.it Git - helm.git/blobdiff - daemons/uwobo/uwobo.ml
ensure connections get closed after having been served
[helm.git] / daemons / uwobo / uwobo.ml
index 1a5b44f620264f3c862bc09f3759b25c68dd311c..21fa2c851a26fab61edeee53cfa5e37cbccad10f 100644 (file)
@@ -31,7 +31,7 @@ open Uwobo_common;;
 
  (* debugging settings *)
 let debug = false ;;
-let debug_level = `Notice ;;
+let debug_level = `Debug ;;
 let debug_print s = if debug then prerr_endline s ;;
 Http_common.debug := false ;;
 
@@ -548,7 +548,8 @@ let callback
           Http_daemon.send_basic_headers ~code:(`Code 200) outchan;
           Http_daemon.send_header "Content-Type" content_type outchan;
           Http_daemon.send_CRLF outchan;
-          write_result outchan
+          write_result outchan;
+          close_out outchan
         with Uwobo_failure errmsg ->
           return_error
             ("Stylesheet chain application failed: " ^ errmsg)
@@ -567,6 +568,13 @@ let callback
       return_error ("Uncaught exception: " ^ (Printexc.to_string exc)) outchan
 ;;
 
+let callback
+  ~syslogger ~styles ~cmd_pipe ~res_pipe () (req: Http_types.request) outchan
+=
+  HExtlib.finally
+    (fun () -> try close_out outchan with Sys_error _ -> ())
+    (callback ~syslogger ~styles ~cmd_pipe ~res_pipe () req) outchan
+
   (* UWOBO's startup *)
 let main () =
     (* (1) system logger *)