Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1f2b142b9d2ef4849a6f5316fa1c5b12 > files > 1392

ghc-6.10.4-1mdv2010.0.i586.rpm

<!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
>Foreign.Concurrent</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Foreign-Concurrent.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>base-4.1.0.0: Basic libraries</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Foreign.Concurrent</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (requires concurrency)</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>provisional</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>ffi@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Concurrency-based <TT
><A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
></TT
> operations
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>FFI datatypes and operations that use or require concurrency (GHC only).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AnewForeignPtr"
>newForeignPtr</A
> ::  <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddForeignPtrFinalizer"
>addForeignPtrFinalizer</A
> ::  <A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Concurrency-based <TT
><A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
></TT
> operations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
>These functions generalize their namesakes in the portable
 <A HREF="Foreign-ForeignPtr.html"
>Foreign.ForeignPtr</A
> module by allowing arbitrary <TT
><A HREF="System-IO.html#t%3AIO"
>IO</A
></TT
> actions
 as finalizers.  These finalizers necessarily run in a separate
 thread, cf. <EM
>Destructors, Finalizers and Synchronization</EM
>,
 by Hans Boehm, <EM
>POPL</EM
>, 2003.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:newForeignPtr"
><A NAME="v%3AnewForeignPtr"
></A
></A
><B
>newForeignPtr</B
> ::  <A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a)</TD
></TR
><TR
><TD CLASS="doc"
>Turns a plain memory reference into a foreign object by associating
 a finalizer - given by the monadic operation - with the reference.
 The finalizer will be executed after the last reference to the
 foreign object is dropped.  Note that there is no guarantee on how
 soon the finalizer is executed after the last reference was dropped;
 this depends on the details of the Haskell storage manager.  The only
 guarantee is that the finalizer runs before the program terminates.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addForeignPtrFinalizer"
><A NAME="v%3AaddForeignPtrFinalizer"
></A
></A
><B
>addForeignPtrFinalizer</B
> ::  <A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
> -&gt; <A HREF="System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>This function adds a finalizer to the given <TT
><A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
></TT
>.
 The finalizer will run after the last reference to the foreign object
 is dropped, but <EM
>before</EM
> all previously registered finalizers for the
 same object.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>