Implement foldl with foldr
[packages/base.git] / GHC / Conc.lhs
1 \begin{code}
2 {-# LANGUAGE Unsafe #-}
3 {-# LANGUAGE CPP, NoImplicitPrelude #-}
4 {-# OPTIONS_GHC -fno-warn-missing-signatures #-}
5 {-# OPTIONS_HADDOCK not-home #-}
6
7 -----------------------------------------------------------------------------
8 -- |
9 -- Module      :  GHC.Conc
10 -- Copyright   :  (c) The University of Glasgow, 1994-2002
11 -- License     :  see libraries/base/LICENSE
12 -- 
13 -- Maintainer  :  cvs-ghc@haskell.org
14 -- Stability   :  internal
15 -- Portability :  non-portable (GHC extensions)
16 --
17 -- Basic concurrency stuff.
18 -- 
19 -----------------------------------------------------------------------------
20
21 -- No: #hide, because bits of this module are exposed by the stm package.
22 -- However, we don't want this module to be the home location for the
23 -- bits it exports, we'd rather have Control.Concurrent and the other
24 -- higher level modules be the home.  Hence: #not-home
25
26 module GHC.Conc
27         ( ThreadId(..)
28
29         -- * Forking and suchlike
30         , forkIO
31         , forkIOWithUnmask
32         , forkOn
33         , forkOnWithUnmask
34         , numCapabilities
35         , getNumCapabilities
36         , setNumCapabilities
37         , getNumProcessors
38         , numSparks
39         , childHandler
40         , myThreadId
41         , killThread
42         , throwTo
43         , par
44         , pseq
45         , runSparks
46         , yield
47         , labelThread
48         , mkWeakThreadId
49
50         , ThreadStatus(..), BlockReason(..)
51         , threadStatus
52         , threadCapability
53
54         -- * Waiting
55         , threadDelay
56         , registerDelay
57         , threadWaitRead
58         , threadWaitWrite
59         , threadWaitReadSTM
60         , threadWaitWriteSTM
61         , closeFdWith
62
63         -- * TVars
64         , STM(..)
65         , atomically
66         , retry
67         , orElse
68         , throwSTM
69         , catchSTM
70         , alwaysSucceeds
71         , always
72         , TVar(..)
73         , newTVar
74         , newTVarIO
75         , readTVar
76         , readTVarIO
77         , writeTVar
78         , unsafeIOToSTM
79
80         -- * Miscellaneous
81         , withMVar
82 #ifdef mingw32_HOST_OS
83         , asyncRead
84         , asyncWrite
85         , asyncDoProc
86
87         , asyncReadBA
88         , asyncWriteBA
89 #endif
90
91 #ifndef mingw32_HOST_OS
92         , Signal, HandlerFun, setHandler, runHandlers
93 #endif
94
95         , ensureIOManagerIsRunning
96         , ioManagerCapabilitiesChanged
97
98 #ifdef mingw32_HOST_OS
99         , ConsoleEvent(..)
100         , win32ConsoleHandler
101         , toWin32ConsoleEvent
102 #endif
103         , setUncaughtExceptionHandler
104         , getUncaughtExceptionHandler
105
106         , reportError, reportStackOverflow
107         ) where
108
109 import GHC.Conc.IO
110 import GHC.Conc.Sync
111
112 #ifndef mingw32_HOST_OS
113 import GHC.Conc.Signal
114 #endif
115
116 \end{code}