Control.Concurrent

# Concurrent Haskell

# Basic concurrency operations

data ThreadId

myThreadId

forkIO

forkFinally

forkIOWithUnmask

killThread

throwTo

## Threads with affinity

forkOn

forkOnWithUnmask

getNumCapabilities

setNumCapabilities

threadCapability

# Scheduling

yield

## Blocking

## Waiting

threadDelay

threadWaitRead

threadWaitWrite

threadWaitReadSTM

threadWaitWriteSTM

# Communication abstractions

# Bound Threads

forkOS

forkOSWithUnmask

isCurrentThreadBound

runInBoundThread

runInUnboundThread

# Weak references to ThreadIds

mkWeakThreadId

# GHC's implementation of concurrency

## Haskell threads and Operating System threads

## Terminating the program

## Pre-emption

## Deadlock