X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fdaemons%2Fgraphs%2Ftools%2FdrawGraph.ml;h=0dc9800fe1c3dac2f226d1ce74dda762c7f8e9dd;hb=014181f92398c4935857568a1586113fac9d0e36;hp=c17902fbc551dd85e92f0a4a5315fee500d978f7;hpb=76ad23ea1e83e8c187a4593027e9baed1bb022e3;p=helm.git diff --git a/helm/software/daemons/graphs/tools/drawGraph.ml b/helm/software/daemons/graphs/tools/drawGraph.ml index c17902fbc..0dc9800fe 100644 --- a/helm/software/daemons/graphs/tools/drawGraph.ml +++ b/helm/software/daemons/graphs/tools/drawGraph.ml @@ -56,7 +56,7 @@ let string_of_exit_status = function | Unix.WSIGNALED n -> sprintf "Process killed by signal %d" n | Unix.WSTOPPED n -> sprintf "Process stopped by signal %d" n in -let callback (req: Http_types.request) outchan = +let callback ((req: Http_types.request), outchan) = try (match req#path with | "/draw" -> @@ -90,12 +90,18 @@ let callback (req: Http_types.request) outchan = ~body:(sprintf "Parameter '%s' is missing" attr_name) outchan in +let callback req ch = + HExtlib.finally + (fun () -> try close_out ch with Sys_error _ -> ()) + callback (req, ch) +in Helm_registry.load_from configuration_file; let port = Helm_registry.get_int "draw_graph.port" in Sys.chdir (Helm_registry.get "draw_graph.dir"); printf "%s started and listening on port %d\n" daemon_name port; printf "current directory is %s\n" (Sys.getcwd ()); flush stdout; -Http_daemon.start' ~port callback; +let d_spec = Http_daemon.daemon_spec ~port ~callback () in +Http_daemon.main d_spec; printf "%s is terminating, bye!\n" daemon_name