A timeout manager
Moduletime-manager-0.4.0Haskell2010
System.TimeManager
Timeout manager. Since v0.3.0, timeout manager is a wrapper of
GHC System TimerManager.
Some caveats of using this package:
Only works for GHC
Only works with a threaded runtime
Users of older versions should check the current semantics.
Using 32-bit systems means the max timeout is
maxBound :: Int(2147483647) microseconds, which is less than 36 minutes.Using the same Handle in different threads might cause issues in some edge cases. (i.e. using cancel/pause in one thread, and resume in another)
- 4 types
- 15 values
- Packagetime-manager-0.4.0
- Exports19
- LanguageHaskell2010
- LicenceMIT
- SourceTimeManager.hs
Types
5 declarationsA manager whose timeout value is 0 (no callbacks are fired).
An action (callback) to be performed on timeout.
A handle used by a timeout manager.
Dummy Handle.
Manager
5 declarationsCreating timeout manager with a timeout value in microseconds.
Setting the timeout to zero or lower (<= 0) will produce a
defaultManager.
WARNING for Windows users: the precision of extending timeouts
is only full "seconds". The provided microseconds will be floored
to the first full second. (i.e. initialize 2_500_000 will get
extended by 2 seconds on a tickle)
This also means timeouts of less than one second will not be extended
when using tickle.
Deprecated. This function does nothing since version 0.3.0
Obsoleted since version 0.3.0
Is now equivalent to pure ().
Deprecated. This function does nothing since version 0.3.0
Obsoleted since version 0.3.0
Is now equivalent to pure ().
Call the inner function with a timeout manager.
Deprecated. This function is the same as withManager since version 0.3.0
Call the inner function with a timeout manager. This is identical to withManager.
Registering a timeout action
2 declarationsRegistering a timeout action and unregister its handle when the body action is finished.
Registering a timeout action of killing this thread and unregister its handle when the body action is killed or finished.
Control timeout
4 declarationsExtending the timeout.
To keep frequent callers cheap, the renewal is rate-limited: it is skipped unless at least a quarter of the timeout (capped at one second) has passed since the timeout was last registered or updated.
Careful: this does NOT reactivate an already paused Handle!
WARNING for Windows users: the precision of extending timeouts
is only full "seconds". The provided microseconds will be floored
to the first full second. (i.e. initialize 2_500_000 will get
extended by 2 seconds on a tickle)
This also means timeouts of less than one second will not be extended
when using tickle.
Low level
2 declarationsRegistering a timeout action.
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
1 declarationThe asynchronous exception thrown if a thread is registered via registerKillThread.
Instances2Show, Exception
Show TimeoutThreadDefined in time-manager-0.4.0 · System.TimeManagerException TimeoutThreadDefined in time-manager-0.4.0 · System.TimeManager