1This is a modified version of pth with pth-sem.patch and other patches applied
2and the build system changed to create different file names.
3
4Martin K�gler
5mkoegler@auto.tuwien.ac.at
6
7---------------------------------------------------------------
8 ____ _ _
9 | _ \| |_| |__
10 | |_) | __| '_ \ ``Only those who attempt
11 | __/| |_| | | | the absurd can achieve
12 |_| \__|_| |_| the impossible.''
13
14 GNU Pth - The GNU Portable Threads
15 Version 2.0.7 (08-Jun-2006)
16
17 ABSTRACT
18
19 Pth is a very portable POSIX/ANSI-C based library for Unix platforms
20 which provides non-preemptive priority-based scheduling for multiple
21 threads of execution (aka `multithreading') inside event-driven
22 applications. All threads run in the same address space of the server
23 application, but each thread has its own individual program-counter,
24 run-time stack, signal mask and errno variable.
25
26 The thread scheduling itself is done in a cooperative way, i.e., the
27 threads are managed by a priority- and event-based non-preemptive
28 scheduler. The intention is, that this way one can achieve better
29 portability and run-time performance than with preemptive scheduling.
30 The event facility allows threads to wait until various types of
31 events occur, including pending I/O on filedescriptors, asynchronous
32 signals, elapsed timers, pending I/O on message ports, thread and
33 process termination, and even customized callback functions.
34
35 Additionally Pth provides an optional emulation API for POSIX.1c
36 threads (`Pthreads') which can be used for backward compatibility to
37 existing multithreaded applications.
38
39 Finally, Pth guarranties its fixed set of API functionality on
40 all platforms, i.e., functions like pth_poll(3), pth_readv(3) or
41 pth_writev(3) are always available, even if the particular underlaying
42 platform does not actually support their functionality (through the
43 system calls poll(2), readv(2), writev(2), etc).
44
45 Although Pth is very feature-rich, it is a rather small threading
46 library. It consists only of approximately 7,000 line (or 300 KB) of
47 ANSI C code which are auto-configured with approximately 400 lines (or
48 60 KB) of Autoconf/m4 macros and which are documented by approximately
49 3,000 lines (or 150 KB) of documentation. Additionally the sources
50 are documented with approximately 3,600 additional lines of comments.
51 As a result, the whole source tree is just about 1.5 MB in size and
52 fits into a small tarball less than 350 KB in size. This allows Pth to
53 fit very well even into the source tree of other applications without
54 bloating it up very much.
55
56 Pth was successfully tested on FreeBSD, NetBSD, OpenBSD, BSDI,
57 GNU/Linux, Solaris, HPUX, Tru64 (OSF/1), AIX, IRIX, UnixWare, SCO
58 OpenServer, SINIX, ReliantUNIX, ISC, AmigaOS, Rhapsody (MacOS X), FTX,
59 AUX and Win32/Cygwin. And it should should automatically adjust itself
60 to remaining Unix platforms, too.
61
62 COPYRIGHT AND LICENSE
63
64 Copyright (c) 1999-2006 Ralf S. Engelschall <rse@engelschall.com>
65
66 This library is free software; you can redistribute it and/or
67 modify it under the terms of the GNU Lesser General Public
68 License as published by the Free Software Foundation; either
69 version 2.1 of the License, or (at your option) any later version.
70
71 This library is distributed in the hope that it will be useful,
72 but WITHOUT ANY WARRANTY; without even the implied warranty of
73 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
74 Lesser General Public License for more details.
75
76 You should have received a copy of the GNU Lesser General Public
77 License along with this library (see file COPYING); if not, write
78 to the Free Software Foundation, Inc., 59 Temple Place, Suite
79 330, Boston, MA 02111-1307 USA, or contact Ralf S. Engelschall
80 <rse@engelschall.com>.
81
82 HOME AND DOCUMENTATION
83
84 The documentation and latest release can be found on
85
86 o OSSP: http://www.ossp.org/pkg/lib/pth/
87 o OSSP: ftp://ftp.ossp.org/pkg/lib/pth/
88 o GNU: http://www.gnu.org/software/pth/
89 o GNU: ftp://ftp.gnu.org/gnu/pth/
90
91 Ralf S. Engelschall
92 rse@engelschall.com
93 www.engelschall.com
94