Lines Matching defs:cmds
220 fun fill_workq monitorfn (acc as (cmds, wl : 'a worklist)) =
227 NoMoreJobs s' => (cmds, updstate s' wl)
231 val cmds' = case monitorfn (StartJob (wjkey wj)) of
232 NONE => cmds
233 | SOME c => c::cmds
236 (cmds', wl |> addjob wj |> updstate state')
238 | GiveUpAndDie s' => (KillAll :: cmds, updstate s' wl)
287 fun execute_cmds mfn cmds wl =
288 case cmds of
302 val (cmds, wl1) = fill_workq monitorfn ([], wl0)
303 fun monitor msg (acc as (cmds, wl)) =
306 | SOME c => (c::cmds, wl)
307 fun nothing wj (cmds, wl) =
313 monitor msg (cmds, addjob wj wl)
322 fun eof wj chan (cmds, wl) =
324 (cmds, addjob (markeof chan wj) wl)
329 fun dowait didio (k (* key *), wj, acc as (cmds,wl)) =
330 if wjk_member k didio then (cmds, addjob wj wl)
336 fun workloop didio (cmds, wl) =
341 (cmds, updateWL wl (U #current_jobs empty_jobs) $$)
345 fun loop (cmds, wl : 'a worklist) : 'a =
352 fun foldthis (pi, (acc as (cmds, wl),didio)) =
371 (monitor msg (cmds, addjob (touch wj) wl), didio')
375 val ((cmds, wl), didio) =
376 List.foldl foldthis ((cmds,wl), []) active
377 val (cmds, wl) = workloop didio (cmds, wl)
378 val wl = execute_cmds monitorfn cmds wl
383 loop (cmds, wl1)
404 val cmds = List.rev cmds00
423 provider = {initial = cmds, genjob = genjob},