Mailing List Archive

nPth 0.91 released

We are pleased to announce the second official release of the New GNU
Portable Threads Library: nPth version 0.91.

nPth is a non-preemptive threads implementation using an API very similar
to the one known from GNU Pth. It has been designed as a replacement of
GNU Pth for non-ancient operating systems. In contrast to GNU Pth is is
based on the system's standard threads implementation. Thus nPth allows
the use of libraries which are not compatible to GNU Pth.

What's New in 0.91

* Fixed a flaw in the initialization code.

* npth_init does now return an error on failure.

* Various fixes for better portability.

* Provide a pselect emulation for OpenBSD et al.

Getting the Software

The nPth tarball and its signature are available as (293k)

and at all GnuPG mirrors. See the included README file and the npth.h
header for documentation. Bug reports and requests for help should be
send to the gnupg-devel mailing list at nPth is available
under the terms of the LGPLv3+ or the GPLv2+. The GIT repository is at
git:// .


GNU Pth is often used to provide a co-routine based framework. GnuPG-2
makes heavy use of this concept for good audibility, general security
concerns, and ease of implementation. However, GNU Pth has the drawback
that ugly hacks are required to work with libraries which are not GNU
Pth aware.

When porting GnuPG-2 to Windows in 2004, we had the need for a
replacement of GNU Pth, which is not available for native Windows. We
came up with an emulation based on the native Windows thread system.
Experience since then showed that such an emulation is a solid way to
provide a co-routine based framework. Given that thread implementations
(in particular pthreads) are now in common use on all platforms, there
is not must justification left for not using them: Without considering
the GnuPG packages, Debian has only two packages requiring GNU Pth
(zhcon and jabberd14 - the latter even seems not in wide use anymore).

Thus we decided to write nPth as a replacement for GNU Pth. The current
development version of GnuPG (2.1) has been migrated to nPth and the the
next beta release will require it. On common Linux and kFreeBSD based
systems and even on Android, nPth should build and work fine.


Please consult the archive of the gnupg-users mailing list before
reporting a bug <>. As
of now we suggest to send bug reports for a nPth to this list in favor
of filing a bug at <>. We also have a dedicated
service directory at:

Maintaining and improving GnuPG and related software is costly. For
more than a decade, g10 Code, a German company owned and headed by
GnuPG's principal author Werner Koch, is bearing the majority of these
costs. To help them carry on this work, we need your support. Please
consider to visit the GnuPG donation page at:


Many thanks to Ralf S. Engelschall for his excellent GNU PTH library,
which served GnuPG very well for many years. Thanks also to Nelson
H. F. Beebe would provided useful portability hints for this release.

Happy hacking,

Marcus and Werner

g10 Code GmbH AmtsGer. Wuppertal HRB 14459
Hüttenstr. 61 Geschäftsführung Werner Koch
D-40699 Erkrath -=- The GnuPG Experts -=- USt-Id DE215605608