   ____  _   _
  |  _ \| |_| |__
  | |_) | __| '_ \                    ``Only those who attempt
  |  __/| |_| | | |                     the absurd can achieve
  |_|    \__|_| |_|                     the impossible.''

  GNU Pth - The GNU Portable Threads
  Version 1.4

  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 its 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 and dispatched by a priority- and event-driven
  non-preemptive scheduler. The intention is that this way both better
  portability and run-time performance is achieved than with preemptive
  scheduling. The event facility allows threads to wait until various
  types of internal and external 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 results of
  customized callback functions.

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

  Pth 1.4 has an even more extensive support for auto-configuring
  the package to work on the different Unix platforms without the
  requirement for the end user to manually adjust the package.
  Additionally the underlying thread creation and dispatching mechanism
  was greatly enhanced and cleaned up, too. With this, version 1.4 now
  was successfully built and tested on numerous Unix platforms, ranging
  from the major ones like GNU/Linux, FreeBSD, NetBSD, OpenBSD, BSDI,
  Solaris, HPUX, Tru64, AIX, IRIX, UnixWare and SCO, to more esoteric
  flavors like SINIX, ReliantUNIX, ISC, SCO, NCR, AmigaOS, Rhapsody
  (MacOS X), FTX, AUX and Win32/Cygwin.
  
  Additionally the auto-configuration mechanism allows GNU Pth to
  automatically adjusts itself to run also on mostly all remaining Unix
  platforms, including ancient versions for which a multi-threading
  environment never existed before. This is especially achieved in Pth
  by not using any assembly code or platform specific solutions and by
  using a very tricky but portable thread creation fallback approach
  which will be published in great detail on the USENIX 2000 Annual
  Conference this summer.

  http://www.gnu.org/software/pth/
  ftp://ftp.gnu.org/gnu/pth/
                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com

