<h2 >The <code>upc_all_lock_alloc</code> function   </h2>

<h4>Synopsis</h4>
<pre> 
    #include &lt;upc.h&gt;
    upc_lock_t *upc_all_lock_alloc(void);                     
</pre>

<p>
<h4>Description</h4>

<p>
The <code>upc_all_lock_alloc</code>    function dynamically allocates a lock and returns
a pointer to it. The lock is created in an unlocked state.
<p>The <code>upc_all_lock_alloc</code>  function is  a <i>collective</i> function. 
The return value on every
thread points to the same lock object.
<p>&nbsp
<p>&nbsp
<p><a href="terms.html">Terms, definitions, and symbols</a><br>
<p><a href="index.html">Back to index of all UPC functions</a>
