<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>wait_group_events</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>wait_group_events</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2010</year>
                <holder>The Khronos Group Inc. 
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="wait_group_events">             
        <refname>wait_group_events</refname>

        <refpurpose>
            Wait for events that identify the <function>async_work_group_copy</function> operations to complete.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        wait_group_events
                    </function>
                </funcdef>
                <paramdef><link xlink:href="scalarDataTypes.html">int</link><parameter>num_events</parameter></paramdef>    
                <paramdef><link xlink:href="otherDataTypes.html">event_t</link><parameter>*event_list</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>   

    </refsynopsisdiv>       

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
        Wait for events that identify the <citerefentry><refentrytitle>async_work_group_copy</refentrytitle></citerefentry> operations to
complete. The event objects specified in <varname>event_list</varname> will be released after the wait is performed.
        </para>     
        <para>  
This function must be encountered by all work-items in a work-group executing the kernel with the same <varname>num_events</varname> and event objects specified in <varname>event_list</varname>; otherwise the results are undefined.
        </para>
    </refsect1>

<!-- ================================ NOTES  -->

    <refsect1 id="notes"><title>Notes</title>
        <para>
      The OpenCL C programming language implements Async Copy and Prefetch functions that provide asynchronous copies between global and local memory and a prefetch from global memory. The generic type name <type>gentype</type> indicates the built-in data types <type>char</type>,  <type>char{2|4|8|16}</type>, <type>uchar</type>, <type>uchar{2|4|8|16}</type>, <type>short</type>, <type>short{2|4|8|16}</type>, <type>ushort</type>, <type>ushort{2|4|8|16}</type>, <type>int</type>, <type>int{2|4|8|16}</type>, <type>uint</type>, <type>uint{2|4|8|16}</type>, <type>long</type>, <type>long{2|4|8|16}</type>, <type>ulong</type>, <type>ulong{2|4|8|16}</type> or <type>float</type>, <type>float{2|4|8|16}</type> as the type for the arguments unless otherwise stated.
        </para>
        <para>
        If extended with <citerefentry><refentrytitle>cl_khr_fp64</refentrytitle></citerefentry>, generic type name <type>gentype</type> may indicate <type>double</type> and <type>double{2|4|8|16}</type> as arguments and return values. If extended with <citerefentry><refentrytitle>cl_khr_fp16</refentrytitle></citerefentry>, generic type name <type>gentype</type> may indicate <type>half</type> and <type>half{2|4|8|16}</type> as arguments and return values. 
        </para>
    </refsect1>

<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->


<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
                                                 
            <olink uri="asyncCopyFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title> 
        <para>
            <citerefentry href="asyncCopyFunctions"><refentrytitle>Async Copy and Prefetch  Functions</refentrytitle></citerefentry> 
        </para>
    </refsect1>



<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

</refentry>

