open Whenutils
+open Big_int
open Unix
open Printf
);
(* Handle SIGCHLD to clean up jobs. *)
- Sys.set_signal Sys.sigchld (Sys.Signal_handle handle_sigchld)
+ Sys.set_signal Sys.sigchld (Sys.Signal_handle handle_sigchld);
+
+ (* Initialize the variables. XXX Eventually this will be saved
+ * and loaded from a persistent store.
+ *)
+ variables := StringMap.add "JOBSERIAL" (T_int zero_big_int) !variables
and proc_reload_file () =
if !debug then Syslog.notice "remote call: reload_file";
tm.tm_hour tm.tm_min tm.tm_sec
and run_job job =
- Syslog.notice "running %s" job.job_name;
+ let () =
+ (* Increment JOBSERIAL. *)
+ let serial =
+ match StringMap.find "JOBSERIAL" !variables with
+ | T_int serial ->
+ let serial = succ_big_int serial in
+ variables := StringMap.add "JOBSERIAL" (T_int serial) !variables;
+ serial
+ | _ -> assert false in
+
+ Syslog.notice "running %s (JOBSERIAL=%s)"
+ job.job_name (string_of_big_int serial) in
(* Create a temporary directory. The current directory of the job
* will be in this directory. The directory is removed when the