Safe Haskell | None |
---|
Generic code to work with jobs, e.g. submit jobs and check their status.
Synopsis
- type Annotator = OpCode -> MetaOpCode
- execCancelWrapper :: Annotator -> String -> IORef Int -> [([[OpCode]], String)] -> [(String, [(Int, JobStatus)])] -> IO (Result ())
- execJobSet :: Annotator -> String -> IORef Int -> [([[OpCode]], String)] -> [(String, [(Int, JobStatus)])] -> IO (Result ())
- handleSigInt :: IORef Int -> IO ()
- handleSigTerm :: IORef Int -> IO ()
- execWithCancel :: Annotator -> String -> [([[OpCode]], String)] -> IO (Result ())
- submitJobs :: [[MetaOpCode]] -> Client -> IO (Result [JobId])
- execJobsWait :: [[MetaOpCode]] -> ([JobId] -> IO ()) -> Client -> IO (Result [(JobId, JobStatus)])
- waitForJobs :: [JobId] -> Client -> IO (Result [(JobId, JobStatus)])
- execJobsWaitOk :: [[MetaOpCode]] -> Client -> IO (Result ())
Documentation
type Annotator = OpCode -> MetaOpCode Source #
A simple type alias for clearer signature.
execCancelWrapper :: Annotator -> String -> IORef Int -> [([[OpCode]], String)] -> [(String, [(Int, JobStatus)])] -> IO (Result ()) Source #
execJobSet :: Annotator -> String -> IORef Int -> [([[OpCode]], String)] -> [(String, [(Int, JobStatus)])] -> IO (Result ()) Source #
handleSigInt :: IORef Int -> IO () Source #
Signal handler for graceful termination.
handleSigTerm :: IORef Int -> IO () Source #
Signal handler for immediate termination.
execWithCancel :: Annotator -> String -> [([[OpCode]], String)] -> IO (Result ()) Source #
Prepares to run a set of jobsets with handling of signals and early termination.
submitJobs :: [[MetaOpCode]] -> Client -> IO (Result [JobId]) Source #
Submits a set of jobs and returns their job IDs without waiting for completion.
:: [[MetaOpCode]] | The list of jobs |
-> ([JobId] -> IO ()) | Post-submission callback |
-> Client | The Luxi client |
-> IO (Result [(JobId, JobStatus)]) |
Executes a set of jobs and waits for their completion, returning their status.
waitForJobs :: [JobId] -> Client -> IO (Result [(JobId, JobStatus)]) Source #
Polls a set of jobs at an increasing interval until all are finished one way or another.
execJobsWaitOk :: [[MetaOpCode]] -> Client -> IO (Result ()) Source #
Execute jobs and return Ok
only if all of them succeeded.