blob: da3ae3c6c1ad77d84c354c7587a1d1e86abfb635 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2015 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The GNU Fortran Compiler: _gfortran_caf_lock</title>
<meta name="description" content="The GNU Fortran Compiler: _gfortran_caf_lock">
<meta name="keywords" content="The GNU Fortran Compiler: _gfortran_caf_lock">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Function-ABI-Documentation.html#Function-ABI-Documentation" rel="up" title="Function ABI Documentation">
<link href="_005fgfortran_005fcaf_005funlock.html#g_t_005fgfortran_005fcaf_005funlock" rel="next" title="_gfortran_caf_unlock">
<link href="_005fgfortran_005fcaf_005fsendget.html#g_t_005fgfortran_005fcaf_005fsendget" rel="prev" title="_gfortran_caf_sendget">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="g_t_005fgfortran_005fcaf_005flock"></a>
<div class="header">
<p>
Next: <a href="_005fgfortran_005fcaf_005funlock.html#g_t_005fgfortran_005fcaf_005funlock" accesskey="n" rel="next">_gfortran_caf_unlock</a>, Previous: <a href="_005fgfortran_005fcaf_005fsendget.html#g_t_005fgfortran_005fcaf_005fsendget" accesskey="p" rel="prev">_gfortran_caf_sendget</a>, Up: <a href="Function-ABI-Documentation.html#Function-ABI-Documentation" accesskey="u" rel="up">Function ABI Documentation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="g_t_005fgfortran_005fcaf_005flock-_002d_002d_002d-Locking-a-lock-variable"></a>
<h4 class="subsection">8.2.10 <code>_gfortran_caf_lock</code> &mdash; Locking a lock variable</h4>
<a name="index-Coarray_002c-_005fgfortran_005fcaf_005flock"></a>
<dl compact="compact">
<dt><em>Description</em>:</dt>
<dd><p>Acquire a lock on the given image on a scalar locking variable or for the
given array element for an array-valued variable. If the <var>aquired_lock</var>
is <code>NULL</code>, the function return after having obtained the lock. If it is
nonnull, the result is is assigned the value true (one) when the lock could be
obtained and false (zero) otherwise. Locking a lock variable which has already
been locked by the same image is an error.
</p>
</dd>
<dt><em>Syntax</em>:</dt>
<dd><p><code>void _gfortran_caf_lock (caf_token_t token, size_t index, int image_index,
int *aquired_lock, int *stat, char *errmsg, int errmsg_len)</code>
</p>
</dd>
<dt><em>Arguments</em>:</dt>
<dd><table>
<tr><td width="15%"><var>token</var></td><td width="70%">intent(in) An opaque pointer identifying the coarray.</td></tr>
<tr><td width="15%"><var>index</var></td><td width="70%">Array index; first array index is 0. For scalars, it is
always 0.</td></tr>
<tr><td width="15%"><var>image_index</var></td><td width="70%">The ID of the remote image; must be a positive
number.</td></tr>
<tr><td width="15%"><var>aquired_lock</var></td><td width="70%">intent(out) If not NULL, it returns whether lock
could be obtained</td></tr>
<tr><td width="15%"><var>stat</var></td><td width="70%">intent(out) For allocatable coarrays, stores the STAT=;
may be NULL</td></tr>
<tr><td width="15%"><var>errmsg</var></td><td width="70%">intent(out) When an error occurs, this will be set to
an error message; may be NULL</td></tr>
<tr><td width="15%"><var>errmsg_len</var></td><td width="70%">the buffer size of errmsg.</td></tr>
</table>
</dd>
<dt><em>NOTES</em></dt>
<dd><p>This function is also called for critical blocks; for those, the array index
is always zero and the image index is one. Libraries are permitted to use other
images for critical-block locking variables.
</p></dd>
</dl>
</body>
</html>