ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/users_49.htm

165 lines
4.9 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>pthread_mutexattr_destroy()--Destroy Mutex Attributes Object</title>
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Begin Header Records ========================================== -->
<!-- NETMG2 SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
<!-- RCHVMW2 on 29 Jan 1999 at 10:01:37 -->
<!--File Edited November 2001 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<a name="Top_Of_Page"></a>
<h2>pthread_mutexattr_destroy()--Destroy Mutex Attributes Object</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax:
<pre> #include &lt;pthread.h&gt;
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); </pre>
&nbsp;&nbsp;Service Program Name: QP0WPTHR<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE <br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Signal Safe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>pthread_mutexattr_destroy</strong>() function destroys a mutex attributes object and allows the system to reclaim any resources associated with that mutex attributes object. This does not have an effect on any mutexes created using this mutex attributes object.</p>
<br>
<h3>Authorities and Locks</h3>
<p>None.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong>attr</strong></dt>
<dd>(Input) Address of the mutex attributes object to be destroyed</dd>
</dl>
<br>
<h3>Return Value</h3>
<dl>
<dt><strong>0</strong></dt>
<dd><strong>pthread_mutexattr_destroy</strong>() was successful.<br><br></dd>
<dt><strong>value</strong></dt>
<dd><strong>pthread_mutexattr_destroy</strong>() was not successful. <em>value</em> is set to indicate the error condition.</dd>
</dl>
<br>
<h3>Error Conditions</h3>
<p>If <strong>pthread_mutexattr_destroy</strong>() was not successful, the error condition returned usually indicates one of the following errors. Under some conditions, the value returned could indicate an error other than those listed here.</p>
<dl>
<dt><em>[EINVAL]</em></dt>
<dd><p>The value specified for the argument is not correct.</p></dd>
</dl>
<br>
<h3>Related Information</h3>
<ul>
<li>The &lt;<strong>pthread.h</strong>> header file. See <a href="rzah4hed.htm">Header files for Pthread functions</a>.<br><br></li>
<li><a href="users_54.htm">pthread_mutexattr_init()</a>--Initialize Mutex Attributes Object<br><br></li>
<li><a href="users_61.htm">pthread_mutex_init()</a>--Initialize Mutex</li>
</ul>
<br>
<h3>Example</h3>
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
for information pertaining to code examples.</p>
<pre>#include &lt;pthread.h&gt;
#include &lt;stdio.h&gt;
#include &quot;check.h&quot;
pthread_mutex_t mutex;
int main(int argc, char **argv)
{
int rc=0;
pthread_mutexattr_t mta;
printf(&quot;Entering testcase\n&quot;);
printf(&quot;Create a default mutex attribute\n&quot;);
rc = pthread_mutexattr_init(&amp;mta);
checkResults(&quot;pthread_mutexattr_init\n&quot;, rc);
printf(&quot;Create the mutex using a mutex attributes object\n&quot;);
rc = pthread_mutex_init(&amp;mutex, &amp;mta);
checkResults(&quot;pthread_mutex_init(mta)\n&quot;, rc);
printf(&quot;- At this point, the mutex with its default attributes\n&quot;);
printf(&quot;- Can be used from any threads that want to use it\n&quot;);
printf(&quot;Destroy mutex attribute\n&quot;);
rc = pthread_mutexattr_destroy(&amp;mta);
checkResults(&quot;pthread_mutexattr_destroy()\n&quot;, rc);
printf(&quot;Destroy mutex\n&quot;);
rc = pthread_mutex_destroy(&amp;mutex);
checkResults(&quot;pthread_mutex_destroy()\n&quot;, rc);
printf(&quot;Main completed\n&quot;);
return 0;
}</pre>
<p><strong>Output:</strong></p>
<pre>Entering testcase
Create a default mutex attribute
Create the mutex using a mutex attributes object
- At this point, the mutex with its default attributes
- Can be used from any threads that want to use it
Destroy mutex attribute
Destroy mutex
Main completed</pre>
<hr>
API introduced: V4R3
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> |
<a href="rzah4mst.htm">Pthread APIs</a> |
<a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>