GNU Portable Threads

GNU Pth - The GNU Portable Threads
Copyright © 1999-2006 Ralf S. Engelschall <>

Release Version:   GNU Pth 2.0.7   (08-Jun-2006)    ChangeLog


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: and


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.


The distribution of the latest GNU Pth release version can be found on and (or one of the mirrors). Alpha versions can be found on 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 <>. 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 <> which you can join for support and discussions. Send a mail with ``subscribe pth-users'' in the body to <> Old messages of the mailing list are archived at

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.

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF. Please send comments on these web pages to, send other questions to Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Copyright © 1999-2006 Ralf S. Engelschall <>
Last Modified: 2006-06-08 20:20:09

Return to GNU's home page.