[1.7] ITP: pth

Charles Wilson cygwin@cwilson.fastmail.fm
Mon Oct 19 22:48:00 GMT 2009


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.

That is, GNU Pth is a user-mode threading library.

At present, pth on cygwin does not allow the use of fork() in client
applications, so it has been disabled:
  pth_fork() always returns -1 with errno=ENOSYS
  fork() is redirected by pth.h to call pth_fork()
See fork-bug/README (attached) for more information.

pth is a prerequisite for (unmodified) GnuPG2 and libassuan.  This build
passes all internal self-tests, but has one known cygwin-specific
deficiency as mentioned above. The distribution includes a test case in
/usr/share/doc/pth/fork-bug/.  If you don't use fork(), pth works fine
and is generally quite a bit faster (and supposedly more secure) than
native threads such as pthreads.

pth is included in debian stable and testing:
http://packages.debian.org/search?keywords=pth
and Fedora 11
https://admin.fedoraproject.org/pkgdb/packages/name/pth?#Fedora11


http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/libpth-devel/libpth-devel-2.0.7-2.tar.bz2
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/libpth-devel/setup.hint
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/libpth20/libpth20-2.0.7-2.tar.bz2
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/libpth20/setup.hint
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/pth-2.0.7-2-src.tar.bz2
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/pth-2.0.7-2.tar.bz2
http://cygutils.fruitbat.org/ITP-gnupg2/release/pth/setup.hint


====== pth setup.hint =====
requires: libpth20
category: Doc
sdesc: "GNU Pth - The GNU Portable Threads (doc)"
ldesc: "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. It is a user-mode threading
library."

====== libpth20 setup.hint =====
requires: libgcc1
category: Libs
external-source: pth
sdesc: "GNU Pth - The GNU Portable Threads (runtime)"
ldesc: "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. It is a user-mode threading
library."

====== libpth-devel setup.hint =====
requires: libpth20
category: Devel Libs
external-source: pth
sdesc: "GNU Pth - The GNU Portable Threads (devel)"
ldesc: "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. It is a user-mode threading
library."

OK?

--
Chuck
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: README
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20091019/2e63393b/attachment.ksh>


More information about the Cygwin-apps mailing list