From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8430 invoked by alias); 12 Apr 2005 07:46:31 -0000 Mailing-List: contact pthreads-win32-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sources.redhat.com Received: (qmail 8361 invoked from network); 12 Apr 2005 07:46:25 -0000 Received: from unknown (HELO canyonero.dot.net.au) (202.147.68.14) by sourceware.org with SMTP; 12 Apr 2005 07:46:25 -0000 Received: from [203.129.46.204] (helo=ppp-46-204.grapevine.net.au) by canyonero.dot.net.au with esmtp (Exim 3.35 #1 (Debian)) id 1DLG6K-0004F1-00 for ; Tue, 12 Apr 2005 17:46:24 +1000 Subject: New pthreads-w32 releases available: versions 2.3.0 and 1.7.0 From: Ross Johnson To: Pthreads-Win32 list Content-Type: text/plain Date: Tue, 12 Apr 2005 07:46:00 -0000 Message-Id: <1113291983.23876.44.camel@desk.home> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-SW-Source: 2005/txt/msg00064.txt.bz2 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.