This is the mail archive of the
mailing list for the pthreas-win32 project.
New pthreads-w32 releases available: versions 2.3.0 and 1.7.0
- From: Ross Johnson <RossJohnson at homemail dot com dot au>
- To: Pthreads-Win32 list <pthreads-win32 at sources dot redhat dot com>
- Date: Tue, 12 Apr 2005 17:46:22 +1000
- Subject: New pthreads-w32 releases available: versions 2.3.0 and 1.7.0
Announcing two new releases of pthreads-w32:-
Packages are available in self-unpacking zip files (.exe) and gzipped
tar files (.tar.gz) as usual.
or go directly to:
Red Hat have a low ftp concurrent user limit. Mirrors are at (available
as they update):
These releases hopefully fix all known problems with pthread_once() in
both versions 1 and 2 of pthreads-win32. In particular, the starvation
problem that potentially arises after an init_routine cancellation has
been resolved using momentary priority boosting. If it proves to be
robust then there will be no need for a version 3 release as previously
implied (at least, not to fix pthread_once()).
The additional work of managing thread priorities inside of pthread_once
has been kept out of the normal (cancellation-free) pathways so that the
additional normal path overhead is almost nil (i.e. introduces no
additional bus locking or cache coherence operations if cancellation-
The functionally and behaviour of versions 1.7 and 2.3 should be
logically identical. However, the version 2 pthread_once implementation
(based on code posted by Gottlob Frege) is much more efficient.
Release 1.7.0 is the backport of features and bug fixes new in
this release. See earlier notes under Release 2.0.0/General.
* Fixed pthread_once potential for post once_routine cancellation
hanging due to starvation. See comments in pthread_once.c.
Momentary priority boosting is used to ensure that, after a
once_routine is cancelled, the thread that will run the
once_routine is not starved by higher priority waiting threads at
critical times. Priority boosting occurs only AFTER a once_routine
cancellation, and is applied only to that once_control. The
once_routine is run at the thread's normal base priority.
* once4.c: Aggressively tests pthread_once() under realtime
conditions using threads with varying priorities. Windows'
random priority boosting does not occur for threads with realtime