{-# LANGUAGE Unsafe #-} {-# LANGUAGE CPP, NoImplicitPrelude #-} {-# OPTIONS_GHC -Wno-missing-signatures #-} {-# OPTIONS_HADDOCK not-home #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.Conc -- Copyright : (c) The University of Glasgow, 1994-2002 -- License : see libraries/base/LICENSE -- -- Maintainer : cvs-ghc@haskell.org -- Stability : internal -- Portability : non-portable (GHC extensions) -- -- Basic concurrency stuff. -- ----------------------------------------------------------------------------- -- No: #hide, because bits of this module are exposed by the stm package. -- However, we don't want this module to be the home location for the -- bits it exports, we'd rather have Control.Concurrent and the other -- higher level modules be the home. Hence: #not-home module GHC.Conc ( ThreadId(..) -- * Forking and suchlike , forkIO , forkIOWithUnmask , forkOn , forkOnWithUnmask , numCapabilities , getNumCapabilities , setNumCapabilities , getNumProcessors , numSparks , childHandler , myThreadId , killThread , throwTo , par , pseq , runSparks , yield , labelThread , mkWeakThreadId , ThreadStatus(..), BlockReason(..) , threadStatus , threadCapability , newStablePtrPrimMVar, PrimMVar -- * Waiting , threadDelay , registerDelay , threadWaitRead , threadWaitWrite , threadWaitReadSTM , threadWaitWriteSTM , closeFdWith -- * Allocation counter and limit , setAllocationCounter , getAllocationCounter , enableAllocationLimit , disableAllocationLimit -- * TVars , STM(..) , atomically , retry , orElse , throwSTM , catchSTM , TVar(..) , newTVar , newTVarIO , readTVar , readTVarIO , writeTVar , unsafeIOToSTM -- * Miscellaneous , withMVar #if defined(mingw32_HOST_OS) , asyncRead , asyncWrite , asyncDoProc , asyncReadBA , asyncWriteBA #endif #if !defined(mingw32_HOST_OS) , Signal, HandlerFun, setHandler, runHandlers #endif , ensureIOManagerIsRunning , ioManagerCapabilitiesChanged #if defined(mingw32_HOST_OS) , ConsoleEvent(..) , win32ConsoleHandler , toWin32ConsoleEvent #endif , setUncaughtExceptionHandler , getUncaughtExceptionHandler , reportError, reportStackOverflow, reportHeapOverflow ) where import GHC.Conc.IO import GHC.Conc.Sync #if !defined(mingw32_HOST_OS) import GHC.Conc.Signal #endif