Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type Manager = Reaper [Handle] Handle
- type TimeoutAction = IO ()
- data Handle
- initialize :: Int -> IO Manager
- stopManager :: Manager -> IO ()
- killManager :: Manager -> IO ()
- withManager :: Int -> (Manager -> IO a) -> IO a
- withManager' :: Int -> (Manager -> IO a) -> IO a
- withHandle :: Manager -> TimeoutAction -> (Handle -> IO a) -> IO (Maybe a)
- withHandleKillThread :: Manager -> TimeoutAction -> (Handle -> IO ()) -> IO ()
- tickle :: Handle -> IO ()
- pause :: Handle -> IO ()
- resume :: Handle -> IO ()
- register :: Manager -> TimeoutAction -> IO Handle
- registerKillThread :: Manager -> TimeoutAction -> IO Handle
- cancel :: Handle -> IO ()
- data TimeoutThread = TimeoutThread
Types
type TimeoutAction = IO () Source #
An action to be performed on timeout.
Manager
initialize :: Int -> IO Manager Source #
Creating timeout manager which works every N micro seconds where N is the first argument.
stopManager :: Manager -> IO () Source #
Stopping timeout manager with onTimeout fired.
killManager :: Manager -> IO () Source #
Killing timeout manager immediately without firing onTimeout.
Call the inner function with a timeout manager.
stopManager
is used after that.
Call the inner function with a timeout manager.
killManager
is used after that.
Registering a timeout action
withHandle :: Manager -> TimeoutAction -> (Handle -> IO a) -> IO (Maybe a) Source #
Registering a timeout action and unregister its handle
when the body action is finished.
Nothing
is returned on timeout.
withHandleKillThread :: Manager -> TimeoutAction -> (Handle -> IO ()) -> IO () Source #
Registering a timeout action of killing this thread and unregister its handle when the body action is killed or finished.
Control timeout
tickle :: Handle -> IO () Source #
Setting the state to active.
Manager
turns active to inactive repeatedly.
Low level
registerKillThread :: Manager -> TimeoutAction -> IO Handle Source #
Registering a timeout action of killing this thread.
TimeoutThread
is thrown to the thread which called this
function on timeout. Catch TimeoutThread
if you don't
want to leak the asynchronous exception to GHC RTS.
Exceptions
data TimeoutThread Source #
The asynchronous exception thrown if a thread is registered via
registerKillThread
.
Instances
Exception TimeoutThread Source # | |
Defined in System.TimeManager | |
Show TimeoutThread Source # | |
Defined in System.TimeManager showsPrec :: Int -> TimeoutThread -> ShowS # show :: TimeoutThread -> String # showList :: [TimeoutThread] -> ShowS # |