This is the mail archive of the mailing list for the pthreads-win32 project. See the pthreads-win32 home page for more information.

[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

[PTHREADS-WIN32]: Announcing snapshot-1999-03-15


This snapshot represents the most stable and complete version of
pthreads-win32 to date and future work on the package will focus
primarily on testing and proving the stability of the library. More
test cases and real-world applications are needed but it is a
pleasure to see that all of the current tests pass.

From this point on, snapshots will only be released after first
passing the test suite. Further to this, the plan is that any
changes checked into the CVS repository will have also first passed
the test suite.

This library is based on a Win32 pthreads implementation by John
Bossom <>.

Thanks to everyone who has contributed suggestions, additions and
patches. Please see the MAINTAINERS file for the list of

What's new in this snapshot?
- statically initialised condition variables have been implemented
- new tests have been added and existing ones have been refined
- all tests in the current test suite complete successfully
- minor improvements to the testing framework

What is still needed?
- more test cases.
- more use in real-world applications.
- MSVC Makefiles to replace the buildlib.bat and build.bat scripts
- further tuning to different systems. For example,
  Win98 can only spawn about 60 threads before pthread_create fails.
  On a dual CPU WinNT machine the limit appears to be around 3200.
  The value of PTHREAD_THREADS_MAX is currently set at 2019, which
  is a limit found by John on one of his WinNT machines.
- more feedback from people using the library.

What is planned for the next snapshot
- more test cases
- MSVC makefiles

API completness
Please see the include file "pthread.h" for the list of those API
functions that have been implemented (and not) in the library.
Missing from the library are the priority scheduling group of
functions, some signalling functions, and pthread_fork. Therefore
the library as it stands should represent a very workable
implementation for the majority of application development and
porting projects.


For the very latest source code from the CVS repository, see under
"Where can I get it?" on the web page:

A gzipped tar file of this snapshot is available at:

Source files are available in unpacked form at:

The prebuilt DLL, export libs for both MSVC and Mingw32, and
the standard include file pthread.h are available at:

Here is the README file

This directory contains an implementation of pthreads for Win32. 

Mailing list

There is a mailing list for discussing pthreads on Win32 which is
managed by Majordomo. To subscribe, send mail to
and place the fllowing text in the message body:

	subscribe pthreads-win32

Building the library with Cygwin32 or Mingw32
Feb 18, 1999

If you have a suitable environment then you can run the configure script,
otherwise you should edit "Makefile" and "config.h" as required.

gcc cannot be used because the library requires C++ EH. g++ must be
used (but see below).

The DLL pthread.dll still cannot be built using g++ due to non thread-safe
exception handling in g++.  Thanks to Kevin Ruland for researching this
one. See the FAQ Question 2 for more information.

However, you can use the export library libpthread32.a built under
Mingw32 (not tested under Cygwin32) together with the pthread.dll built
with MSVC. Thanks to Anders Norlander for pointing this out.

For convenience, the following pre-built files can be downloaded from
the FTP site (see under "Availability" below):

	pthread.h	- the standard include file
	pthread.dll	- built with MSVC cl compiler
	pthread.lib	- built with MSVC cl compiler
	libpthread32.a	- built with Mingw32 (use with MSVC pthread.dll)

With these files in the same directory as your application myapp.c,
you could compile, link and run myapp.c under Mingw32 as follows:

	gcc -o myapp.exe myapp.c -I. -L. -lpthread32

Or put pthread.dll in an appropriate directory in your PATH,
put libpthread32.a in MINGW_ROOT\i386-mingw32\lib, and
put pthread.h in MINGW_ROOT\i386-mingw32\include, then use:

	gcc -o myapp.exe myapp.c -lpthread32


The complete source code in either unbundled or tar/gzipped format
can be found at:

The pre-built DLL, export libraries and matching pthread.h can be found at:

Home page:


| Ross Johnson         |   | E-Mail:
| Info Sciences and Eng|___|
| University of Canberra   | FAX:    +61 6 2015227
| PO Box 1                 |
| Belconnen  ACT    2616   | WWW:
| AUSTRALIA                |