method run command ?(reset=false) (f_on_end : int -> unit) =
let thread_run () =
let on_end code =
Mutex.unlock mutex;
ignore(self#insert "");
f_on_end code;
in
Mutex.lock mutex;
if reset then self#reset;
run_and_read_in_buffer command self#insert on_end;
in
ignore(Thread.create thread_run ())