58 lines
2.5 KiB
HTML
58 lines
2.5 KiB
HTML
|
<!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>Mutexes return EDEADLK when re-locked by owner</title>
|
||
|
<!-- Begin Header Records ========================================== -->
|
||
|
<!-- 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. -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!-- 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>
|
||
|
|
||
|
<h2>Mutexes return EDEADLK when re-locked by owner</h2>
|
||
|
|
||
|
<p>Some threads implementations return the EDEADLK error when a mutex attempts
|
||
|
to relock a mutex that it already owns. The POSIX standard specifies that the
|
||
|
results are undefined when a mutex is re-locked by the owner. The Single UNIX
|
||
|
Specification addresses these issues by providing a new mutex attribute called
|
||
|
<em>type</em>.</p>
|
||
|
|
||
|
<p>The iSeries threads support takes the same implementation route that the
|
||
|
Single UNIX Specification suggests, and it also causes the thread to deadlock
|
||
|
when it attempts to re-lock a normal (non-recursive) mutex. Because many users
|
||
|
of Pthreads do not check return codes from functions, the deadlock protects
|
||
|
applications from corrupted data that might result if they attempt to relock an
|
||
|
already held mutex, then unlock the mutex as if the lock was successful.</p>
|
||
|
|
||
|
<p>See <a href="users_53.htm#370578">pthread_mutexattr_gettype()--Get Mutex
|
||
|
Type Attribute</a> and <a href="users_58.htm#370784">
|
||
|
pthread_mutexattr_settype()--Set Mutex Type Attribute</a> if you need
|
||
|
error-checking mutexes for your application.</p>
|
||
|
|
||
|
<hr>
|
||
|
<center>
|
||
|
<table cellpadding="2" cellspacing="2">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center">
|
||
|
<a href="rzah4mst.htm">Pthread APIs</a> |
|
||
|
<a href="aplist.htm">APIs by category</a></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</center>
|
||
|
</body>
|
||
|
</html>
|
||
|
|