Page History

Turn Off History

Note: not yet complete!

The way this is handled in the code is probably not as clean as it could be, because PRE and POST scripts got added to DAGMan after the initial code was written. Because of that, I guess, PRE scripts are handled outside of the ready queue data structure, which is kind of awkward.

There are a number of important data structures relating to job ordering:

When DAGMan starts up, the ready queue is empty. Dag::Bootstrap() calls Dag::StartNode() on all jobs with empty waiting queues. Dag::StartNode() either runs the node's PRE script (if there is one) or puts the node into the ready queue.

condor_event_timer() in dagman_main.cpp gets called every five (by default) seconds. In that function, we call Dag::SubmitReadyJobs() to submit any jobs that are ready; ready any new node job events (see ???); output the status of the DAG; and check whether the DAG is finished.