Fixed slow memory leak
[vsys.git] / main.ml
diff --git a/main.ml b/main.ml
index 43410ae..7f91dbf 100644 (file)
--- a/main.ml
+++ b/main.ml
@@ -25,6 +25,10 @@ let cmdspeclist =
     ("-failsafe",Arg.Set(Globals.failsafe), "Never crash. Be stupid, but never crash. Use at your own risk.");
   ]
 
+let sighup_handle s =
+  print "Received sighup. Running GC major pass";
+  Gc.major ()
+
 let _ =
   Arg.parse cmdspeclist (fun x->()) "Usage: vsys <list of mount points>";  
   Globals.logfd:=open_out_gen [Open_append;Open_creat] 0o644 !log_filepath;
@@ -55,6 +59,8 @@ let _ =
             input_file_list:=List.concat [!input_file_list;frontends]
         end;
 
+      Sys.set_signal Sys.sigusr1 (Sys.Signal_handle sighup_handle);
+
       let felst = List.map 
                     (fun lst->let (x,y)=lst in 
                        logprint "Slice %s (%s)\n" x y;