From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22785 invoked by alias); 23 Nov 2004 00:59:07 -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 22751 invoked from network); 23 Nov 2004 00:58:59 -0000 Received: from unknown (HELO localhost.localdomain) (202.147.68.14) by sourceware.org with SMTP; 23 Nov 2004 00:58:59 -0000 Received: from [202.147.86.20] (helo=callisto.canberra.edu.au) by localhost.localdomain with esmtp (Exim 3.35 #1 (Debian)) id 1CWP1F-0003lM-00 for ; Tue, 23 Nov 2004 11:58:58 +1100 Message-ID: <41A28B50.2030805@callisto.canberra.edu.au> Date: Tue, 23 Nov 2004 00:59:00 -0000 From: Ross Johnson Reply-To: rpj@callisto.canberra.edu.au User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040421 MIME-Version: 1.0 To: pthreads-win32 Subject: Snapshot 2004-11-22 replaces 2004-11-03 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004/txt/msg00157.txt.bz2 Dear all, First of all, pthread_cond_wait() has been restored to it's former state to fix the deadlock problem that I introduced in snapshot-2004-11-03. Many thanks to Alexander Kotliarov and 'qybupt'. Secondly, the ABI change introduced in snapshot-2004-11-03 and any future backwards compatibility issues have been resolved through the addition of a versioning scheme and version information included within the DLL. Finally, the reusable threads ID uniqueness characteristic has been kept but can be 'switched off' in the DLL build if you want/need the extra sensitivity (perhaps during development) to applications that may not be strictly POSIX compliant. DLLs with either behaviour are fully compatible with each other. Please see the notes below and the references therein. Please regard this snapshot as 'beta'. Snapshot-2004-11-03 has been removed from the main FTP site. For downloads, 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 There is also work going on to get the Borland and Watcom compiler versions past the testsuite. Ross SNAPSHOT 2004-11-22 ------------------- This snapshot primarily fixes the condvar bug introduced in snapshot-2004-11-03. DLL versioning has also been included to allow applications to runtime check the Microsoft compatible DLL version information, and to extend the DLL naming system for ABI and major (non-backward compatible) API changes. See the README file for details. Bug fixes --------- * Condition variables no longer deadlock (bug introduced in snapshot-2004-11-03). - Alexander Kotliarov and 'qybupt' * DLL naming extended to avoid 'DLL hell' in the future, and to accommodate the ABI change introduced in snapshot-2004-11-03. Snapshot 2004-11-03 will be removed from FTP sites. New features ------------ * A Microsoft-style version resource has been added to the DLL for applications that wish to check DLL compatibility at runtime. * Pthreads-win32 DLL naming has been extended to allow incompatible DLL versions to co-exist in the same filesystem. See the README file for details, but briefly: while the version information inside the DLL will change with each release from now on, the DLL version names will only change if the new DLL is not backward compatible with older applications. The versioning scheme has been borrowed from GNU Libtool, and the DLL naming scheme is from Cygwin. Provided the Libtool-style numbering rules are honoured, the Cygwin DLL naming scheme automatcally ensures that DLL name changes are minimal and that applications will not load an incompatible pthreads-win32 DLL. Those who use the pre-built DLLs will find that the DLL/LIB names have a new suffix (1) in this snapshot. E.g. pthreadVC1.dll etc. * The POSIX thread ID reuse uniqueness feature introduced in the last snapshot has been kept as default, but the behaviour can now be controlled when the DLL is built to effectively switch it off. This makes the library much more sensitive to applications that assume that POSIX thread IDs are unique, i.e. are not strictly compliant with POSIX. See the PTW32_THREAD_ID_REUSE_INCREMENT macro comments in config.h for details. Other changes ------------- Certain POSIX macros have changed. These changes are intended to conform to the Single Unix Specification version 3, which specifies that, if set to 0 (zero) or not defined, then applications may use sysconf() to determine their values at runtime. Pthreads-win32 does not implement sysconf(). The following macros are no longer undefined, but defined and set to -1 (i.e. not implemented): _POSIX_THREAD_ATTR_STACKADDR _POSIX_THREAD_PRIO_INHERIT _POSIX_THREAD_PRIO_PROTECT _POSIX_THREAD_PROCESS_SHARED The following macros are defined and set to 200112L (i.e. implemented): _POSIX_THREADS _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_THREAD_ATTR_STACKSIZE _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_SEMAPHORES _POSIX_READER_WRITER_LOCKS _POSIX_SPIN_LOCKS _POSIX_BARRIERS The following macros are defined and set to appropriate values: _POSIX_THREAD_THREADS_MAX _POSIX_SEM_VALUE_MAX _POSIX_SEM_NSEMS_MAX PTHREAD_DESTRUCTOR_ITERATIONS PTHREAD_KEYS_MAX PTHREAD_STACK_MIN PTHREAD_THREADS_MAX