This is the mail archive of the pthreads-win32@sources.redhat.com mailing list for the pthreas-win32 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

New pthreads-w32 releases available: versions 2.3.0 and 1.7.0


Announcing two new releases of pthreads-w32:-
pthreads-w32-2-3-0-release
pthreads-w32-1-7-0-release

Packages are available in self-unpacking zip files (.exe) and gzipped
tar files (.tar.gz) as usual.

See
http://sources.redhat.com/pthreads-win32/

or go directly to:
ftp://sources.redhat.com/pub/pthreads-win32/

Red Hat have a low ftp concurrent user limit. Mirrors are at (available 
as they update):
http://sources.redhat.com/mirrors.html


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-
free).

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 2.3.0
-------------
(2005-04-12)

General
-------

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.

Bugs fixed
----------

* 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.

New tests
---------

* 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
priority levels.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]