-let job_evaluate job variables onload =
- match job with
- | { job_cond = Every_job _ } -> false, job
- | { job_cond = When_job whenexpr } ->
- let state = eval_whenexpr_as_bool job variables onload whenexpr in
-
- (* Because jobs are edge-triggered, we're only interested in the
- * case where the evaluation state changes from false -> true.
- *)
- match job.job_private.job_prev_eval_state, state with
- | None, false
- | Some false, false
- | Some true, true
- | Some true, false ->
- let jobp = { job.job_private with job_prev_eval_state = Some state } in
- let job = { job with job_private = jobp } in
- false, job
-
- | None, true
- | Some false, true ->
- let jobp = { job_prev_eval_state = Some true;
- job_prev_variables = Some variables } in
- let job = { job with job_private = jobp } in
- true, job
-