May 26, 2018
GNU Portable Threads
GNU Pth - The GNU Portable Threads Copyright c 1999-2005 Ralf S. Engelschall email@example.com
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 file descriptors, asynchronous signals, elapsed timers, pending I/O on message ports, thread and process termination, and even customized callback functions.