#include 'template.wml' #use wml::std::toc style=pre #use wml::std::box # #

# # # # #
Release Version:   \ GNU Pth   ()    ChangeLog
Development Version:   # \ # GNU Pth   ()   ChangeLog
#

Abstract

Pth is a very portable POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for multiple threads of execution (aka ``multithreading'') inside event-driven applications. All threads run in the same address space of the server application, but each thread has it's own individual program-counter, run-time stack, signal mask and errno variable.

The thread scheduling itself is done in a cooperative way, i.e., the threads are managed by a priority- and event-based non-preemptive scheduler. The intention is that this way one can achieve better portability and run-time performance than with preemptive scheduling. The event facility allows threads to wait until various types of events occur, including pending I/O on filedescriptors, asynchronous signals, elapsed timers, pending I/O on message ports, thread and process termination, and even customized callback functions.

Additionally Pth provides an optional emulation API for POSIX.1c threads ("Pthreads") which can be used for backward compatibility to existing multithreaded applications.

Notice: GNU pth and OSSP pth are exactly the same. OSSP pth just became an official part of the GNU project some time ago. That's why its primary name is now GNU pth, although it is still developed by the OSSP project only. The companion OSSP locations are: http://www.ossp.org/pkg/lib/pth/ and ftp://ftp.ossp.org/pkg/lib/pth/.

Documentation

GNU Pth is documented by a manual which describes the functionality and API of the library in detail. This document is available in HTML, DVI, Postscript and POD format. Additionally there is a draft of the forthcoming paper Portable Multithreading (Postscript) from the author. Finally the Brave GNU World column contains a short introduction to GNU Pth in its Issue No. 7.

Distribution

The distribution of the latest GNU Pth release version can be found on ftp://ftp.ossp.org/pkg/lib/pth/ and ftp://ftp.gnu.org/gnu/pth/ (or one of the mirrors). Alpha versions can be found on ftp://alpha.gnu.org/gnu/pth/. For more details about the latest changes have a look at the change logfile ChangeLog.

Bug Reports and Support

If you think you have found a bug in GNU Pth, then you should send a report as complete as possible to <[email protected]>. And if you can, please try to fix the problem and include a patch made with "diff -u3" in your report. Additionally there is a mailing list <[email protected]> which you can join for support and discussions. Send a mail with ``subscribe pth-users'' in the body to <[email protected]> Old messages of the mailing list are archived at http://www.mail-archive.com/[email protected]/.

Further Reading

For more details on available multithreading software, we have collected a list of multithreading libraries. Use this to find Pth related projects and packages.