MicroHs-0.9.12.0: lib/Control/Concurrent.hs
module Control.Concurrent(
ThreadId,
forkIO,
) where
import Prelude() -- do not import Prelude
import Primitives
import Prelude
import Data.Word
newtype ThreadId = ThreadId (Ptr ())
instance Show ThreadId where
show (ThreadId p) = "ThreadId#" ++ show (primPtrToWord p)
instance Eq ThreadId where
ThreadId p == ThreadId q = primPtrEQ p q
instance Ord ThreadId where
ThreadId p `compare` ThreadId q = p `compare` q
primForkIO :: IO () -> IO (Ptr ())
primForkIO = primitive "IO.fork"
forkIO :: IO () -> IO ThreadId
forkIO io = ThreadId <$> primForkIO io