GNU Portable Threads (Pth) is a very portable POSIX/ANSI-C based library for Unix platforms providing non-preemptive priority-based scheduling for multiple threads of execution ("multithreading") inside server applications. All threads run in the same address space, but each thread has its own individual program-counter, run-time stack, signal mask and errno variable. The scheduling is done in a cooperative way, i.e. the threads are dispatched based on priority and pending events. The event facility allows threads to wait until various types of events occur, including pending I/O on filedescriptors, elapsed timers, pending I/O on message ports, thread and process termination, and even customized callback functions.
| Tags | Software Development Libraries |
|---|---|
| Licenses | LGPL |
Recent releases


Release Notes: The build environment has been upgraded from GNU shtool 2.0.3 to 2.0.6 and from GNU libtool 1.5.20 to 1.5.22. This release lets AC_CHECK_PTH use "pth-config --libs --all" instead of just "pth-config --libs" to allow it to work under platforms like Solaris where additional libraries are required.


Release Notes: The build environment was upgraded to GNU libtool 1.5.20 and GNU shtool 2.0.3.


Release Notes: Internal determination of the maximum number in a size_t was fixed in the string formatter engine. The build environment was upgraded to GNU libtool 1.5.14. The "underquoted definitions" problem in pth.m4 was fixed. The build system no longer insists on writing to the source directory on "make install" in order to more closely follow GNU standards. "*.bak" and "*~" files are now removed under "make distclean" instead of "make clean".


Release Notes: The "make striptease" command was resurrected. The pth_uctx_save() and pth_uctx_restore() API functions were removed, since they were broken by design. The internal pth_mctx_save() function was enhanced if getcontext(3) is used for the machine context saving. Better error checking in pth_key_xxx() functions was added. A new PTH_CTRL_FAVOURNEW control was added for disabling the favouring of new threads on scheduling.


Release Notes: "hard syscall wrappers" have been added for send(2) and recv(2). This release internally handles errors returned from pth_event(), cleans up the C source for GCC 3.5 and m4 source for Autoconf 2.59, avoids side-effects by defining _XOPEN_SOURCE only temporarily, fixes the prototype for pthread_attr_setschedparam(3), and upgrades the build environment to GNU libtool 1.5.8 and GNU shtool 2.0.1.