<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Control.Concurrent</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ></HEAD ><BODY ><DIV CLASS="outer" ><DIV CLASS="mini-topbar" >Control.Concurrent</DIV ><DIV CLASS="mini-synopsis" ><H1 >Concurrent Haskell </H1 > <H1 >Basic concurrency operations </H1 > <DIV CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="Control-Concurrent.html#t%3AThreadId" TARGET="main" >ThreadId</A > </DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AmyThreadId" TARGET="main" >myThreadId</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AforkIO" TARGET="main" >forkIO</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AkillThread" TARGET="main" >killThread</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AthrowTo" TARGET="main" >throwTo</A ></DIV > <H1 >Scheduling </H1 > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3Ayield" TARGET="main" >yield</A ></DIV > <H2 >Blocking </H2 > <H2 >Waiting </H2 > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AthreadDelay" TARGET="main" >threadDelay</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AthreadWaitRead" TARGET="main" >threadWaitRead</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AthreadWaitWrite" TARGET="main" >threadWaitWrite</A ></DIV > <H1 >Communication abstractions </H1 > <H1 >Merging of streams </H1 > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AmergeIO" TARGET="main" >mergeIO</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AnmergeIO" TARGET="main" >nmergeIO</A ></DIV > <H1 >Bound Threads </H1 > <DIV CLASS="decl" ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AforkOS" TARGET="main" >forkOS</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3AisCurrentThreadBound" TARGET="main" >isCurrentThreadBound</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3ArunInBoundThread" TARGET="main" >runInBoundThread</A ></DIV > <DIV CLASS="decl" ><A HREF="Control-Concurrent.html#v%3ArunInUnboundThread" TARGET="main" >runInUnboundThread</A ></DIV > <H1 >GHC's implementation of concurrency </H1 > <H2 >Haskell threads and Operating System threads </H2 > <H2 >Terminating the program </H2 > <H2 >Pre-emption </H2 > </DIV ></DIV ></BODY ></HTML >