[to_string] is called if we need to print the job name.
If [next_job] returns [Job f] then that function is started
(usually in a thread if -j N > 1).
If [next_job] returns [Complete] then [run] waits until
[to_string] is called if we need to print the job name.
If [next_job] returns [Job f] then that function is started
(usually in a thread if -j N > 1).
If [next_job] returns [Complete] then [run] waits until