123 lines
4.3 KiB
HTML
123 lines
4.3 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>i5/OS Pthreads versus the POSIX standard, the Single UNIX
|
||
|
Specification, and other threads implementations</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>
|
||
|
|
||
|
<a name="Top_Of_Page"></a>
|
||
|
|
||
|
<h2>i5/OS Pthreads versus the POSIX standard, the Single UNIX Specification,
|
||
|
and other threads implementations</h2>
|
||
|
|
||
|
<p>Although the Pthread interfaces described in this document are based on a
|
||
|
subset of the APIs defined in the POSIX standard and the Single UNIX
|
||
|
Specification, the implementation of these APIs is not compliant with these
|
||
|
standards. This means that applications written in other versions of threads
|
||
|
are not necessarily portable to i5/OS. Below is a list of the differences
|
||
|
between the Pthread APIs and other threads implementations.</p>
|
||
|
|
||
|
<ul>
|
||
|
<li><a href="concep10.htm" target="text">All thread definitions in
|
||
|
pthread.h</a></li>
|
||
|
|
||
|
<li><a href="concep11.htm" target="text">Unsupported preprocessor and feature
|
||
|
test macros</a></li>
|
||
|
|
||
|
<li><a href="users_98.htm" target="text">Unsupported APIs</a></li>
|
||
|
|
||
|
<li><a href="concep13.htm" target="text">Unsupported constants</a></li>
|
||
|
|
||
|
<li><a href="concep14.htm" target="text">Unsupported cancellation
|
||
|
points</a></li>
|
||
|
|
||
|
<li><a href="concep15.htm" target="text">Unsupported sysconf() configuration
|
||
|
variables</a></li>
|
||
|
|
||
|
<li><a href="concep16.htm" target="text">Thread priority and
|
||
|
scheduling</a></li>
|
||
|
|
||
|
<li><a href="concep17.htm" target="text">Thread ID vs. Pthread Handle
|
||
|
(pthread_t)</a></li>
|
||
|
|
||
|
<li><a href="concep18.htm" target="text">Thread ID value and size</a></li>
|
||
|
|
||
|
<li><a href="concep19.htm" target="text">Mutexes return EDEADLK when re-locked
|
||
|
by owner</a></li>
|
||
|
|
||
|
<li><a href="concep20.htm" target="text">Return values from thread start
|
||
|
routines are not integers</a></li>
|
||
|
|
||
|
<li><a href="concep21.htm" target="text">Threads do not necessarily start
|
||
|
before pthread_create() returns</a></li>
|
||
|
|
||
|
<li><a href="concep22.htm" target="text">Initial thread is special, cannot
|
||
|
pthread_exit()</a></li>
|
||
|
|
||
|
<li><a href="concep23.htm" target="text">Pthread APIs cause asynchronous
|
||
|
signals initialization</a></li>
|
||
|
|
||
|
<li><a href="concep24.htm" target="text">Not all jobs can create threads;
|
||
|
pthread_create() fails with EBUSY</a></li>
|
||
|
|
||
|
<li><a href="concep25.htm" target="text">Read/write locks are
|
||
|
recursive</a></li>
|
||
|
|
||
|
<li><a href="concep26.htm" target="text">Shared read/write locks are released
|
||
|
at thread termination</a></li>
|
||
|
|
||
|
<li><a href="concep26.htm#293561" target="text">Read/write locks can be
|
||
|
upgraded / downgraded</a></li>
|
||
|
|
||
|
<li><a href="concep27.htm" target="text">Read/write locks do not favor
|
||
|
writers</a></li>
|
||
|
|
||
|
<li><a href="concep28.htm" target="text">Spawn API provides more POSIX-like
|
||
|
process model</a></li>
|
||
|
|
||
|
<li><a href="concep29.htm" target="text">C++ destructors and Pthread
|
||
|
termination</a></li>
|
||
|
|
||
|
<li><a href="concep30.htm" target="text">Unhandled exceptions terminate the
|
||
|
thread (not the process)</a></li>
|
||
|
|
||
|
<li><a href="concep31.htm" target="text">Exceptions vs. Asynchronous signals
|
||
|
vs. ANSI C signals</a></li>
|
||
|
|
||
|
<li><a href="mutexes.htm">Mutexes can be named to aid in application
|
||
|
debug</a></li>
|
||
|
</ul>
|
||
|
|
||
|
<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>
|
||
|
|