HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

Moduletime-manager-0.3.2Haskell2010

System.ThreadManager

A thread manager including a time manager. The manager has responsibility to kill managed threads.

Because this is based on the accompanying System.TimeManager module, the same caveats apply:

  • 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)

Contents
  1. Fork
  2. Synchronization
  3. Re-exports
Synopsis
valuestopAfter :: ThreadManager -> IO a -> (Maybe SomeException -> IO ()) -> IO a

Stopping the manager.

stopAfter threadManager action cleanup

The action is run in the scope of an exception handler that catches all exceptions (including asynchronous ones); this allows the cleanup handler to cleanup in all circumstances. If an exception is caught, it is rethrown after the cleanup is complete.

Fork

valueforkManaged
  1. :: ThreadManager
  2. -> String

    Thread name

  3. -> IO ()

    Action

  4. -> IO ()

Fork a managed thread.

This guarantees that the thread ID is added to the manager's queue before the thread starts, and is removed again when the thread terminates (normally or abnormally).

Synchronization

Re-exports