<?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>Synchronization, barrier</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>barrier</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2011</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="barrier">
        <refname>barrier</refname>

        <refpurpose>
            All work-items in a work-group executing the kernel on a processor must execute this function before any are allowed to continue execution beyond the barrier.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>
                        barrier
                    </function>
                </funcdef>
                <paramdef><link xlink:href="enums.html#cl_mem_fence_flags">cl_mem_fence_flags</link><parameter>flags</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>

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

    <refsect1 id="description"><title>Description</title>
        <para>
          All work-items in a work-group executing the kernel on a processor must execute
          this function before any are allowed to continue execution beyond the barrier.
          This function must be encountered by all work-items in a work-group executing the kernel.
        </para>

        <para>
          If <function>barrier</function> is inside a conditional statement, then all work-items
          must enter the conditional if any work-item enters the conditional statement and
          executes the <function>barrier</function>.
        </para>

        <para>
          If <function>barrier</function> is inside a loop, all work-items must execute the
          <function>barrier</function> for each iteration of the loop before any are allowed
          to continue execution beyond the <function>barrier</function>.
        </para>

        <para>
          The <function>barrier</function> function also queues a memory fence (reads and writes)
          to ensure correct ordering of memory operations to local or global memory.
        </para>

        <para>
          The <varname>flags</varname> argument specifies the memory address space and can be
          set to a combination of the following literal values.
        </para>

        <para>
          <constant>CLK_LOCAL_MEM_FENCE</constant> - The <function>barrier</function> function
          will either flush any variables stored in local memory or queue a memory fence to
          ensure correct ordering of memory operations to local memory.
        </para>

        <para>
          <constant>CLK_GLOBAL_MEM_FENCE</constant> - The <function>barrier</function> function
          will queue a memory fence to ensure correct ordering of memory operations to global
          memory. This can be useful when work-items, for example, write to buffer or image
          objects and then want to read the updated data.
        </para>
    </refsect1>

<!-- ================================ NOTES
    <refsect1 id="notes"><title>Notes</title>
        <para>

        </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="synchFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE  -->
<!-- Enter comma-delimited list of all other pages in the system to link to, using
     <citerefentry /><refentrytitle /> to make it a link. For any case where the text of the link needs to differ
     from the filename of the html file this links to, use the "href" attribute in <citerefentry />. For example:
     <citerefentry href="thatPage"><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>


    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="imageFunctions"><refentrytitle>Image 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>

<!-- 23-Oct-2011 -->
</refentry>

