Sophie

Sophie

distrib > Fedora > 15 > x86_64 > by-pkgid > 1e007a96761035f261351a68e7601417 > files > 269

parrot-docs-3.6.0-2.fc15.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Parrot  - Co&#45;Routine PMC</title>
        <link rel="stylesheet" type="text/css"
            href="../../../resources/parrot.css"
            media="all">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    </head>
    <body>
        <div id="wrapper">
            <div id="header">

                <a href="http://www.parrot.org">
                <img border=0 src="../../../resources/parrot_logo.png" id="logo" alt="parrot">
                </a>
            </div> <!-- "header" -->
            <div id="divider"></div>
            <div id="mainbody">
                <div id="breadcrumb">
                    <a href="../../../html/index.html">Home</a> &raquo; <a href="../../../html/pmc.html">PMCs</a> &raquo; Co&#45;Routine PMC
                </div>

<h1><a name="NAME"
>NAME</a></h1>

<p>src/pmc/coroutine.pmc &#45; Co&#45;Routine PMC</p>

<h1><a name="DESCRIPTION"
>DESCRIPTION</a></h1>

<p><code>Coroutine</code> extends <code>Sub</code> to provide a subroutine that can stop in the middle,
and start back up later at the point at which it stopped.
See the <a href='TODO#glossary.pod'>Glossary</a> for more information.</p>

<h2><a name="Flags"
>Flags</a></h2>

<dl>
<dt><a name="private0_call_flip_flop"
>private0 call flip flop</a></dt>

<dt><a name="private3_restore_current_sub_after_&#34;flop&#34;._Used_by_generators."
>private3 restore current sub after &#34;flop&#34;.
Used by generators.</a></dt>
</dl>

<h2><a name="Methods"
>Methods</a></h2>

<dl>
<dt><a name="static_void_print_sub_name(PARROT_INTERP,_PMC_*sub_pmc)"
><b><code>static void print_sub_name(PARROT_INTERP, PMC *sub_pmc)</b></code></a></dt>
static function to print coroutine information (for tracing/debugging)
<dt><a name="void_init()"
><b><code>void init()</b></code></a></dt>
Initializes the coroutine.
<dt><a name="PMC_*clone()"
><b><code>PMC *clone()</b></code></a></dt>
Clone the coroutine.
<dt><a name="PMC_*_clone()"
><b><code>PMC * clone()</b></code></a></dt>
Clones the coroutine.
<dt><a name="void_increment()"
><b><code>void increment()</b></code></a></dt>
Signals the start of a yield.
<dt><a name="opcode_t_*invoke(void_*next)"
><b><code>opcode_t *invoke(void *next)</b></code></a></dt>
Swaps the &#34;context&#34;.</dl>
            </div> <!-- "mainbody" -->
            <div id="divider"></div>
            <div id="footer">
	        Copyright &copy; 2002-2011, Parrot Foundation.
            </div>
        </div> <!-- "wrapper" -->
    </body>
</html>