From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31116 invoked by alias); 3 Nov 2004 06:10: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 31006 invoked from network); 3 Nov 2004 06:10:21 -0000 Received: from unknown (HELO ps10.kent.dot.net.au) (202.147.78.201) by sourceware.org with SMTP; 3 Nov 2004 06:10:21 -0000 Received: from ip-86-129.dot.net.au ([202.147.86.129] helo=ise.canberra.edu.au) by ps10.kent.dot.net.au with esmtp (Exim 3.35 #4) id 1CPELl-0003jR-00 for pthreads-win32@sources.redhat.com; Wed, 03 Nov 2004 17:10:29 +1100 Message-ID: <41887648.4080802@ise.canberra.edu.au> Date: Wed, 03 Nov 2004 06:10:00 -0000 From: Ross Johnson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040421 MIME-Version: 1.0 To: pthreads-win32@sources.redhat.com Subject: New snapshot 2004-11-03 available Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004/txt/msg00125.txt.bz2 Announcing a new snapshot 2004-11-03. 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 NOTES: 1) There has been an ABI change that makes this version's DLL incompatible with older applications. Don't distribute a DLL from this snapshot to application users without also providing new builds of your applications. The change is in the definition of pthread_t in pthread.h. 2) This snapshot doesn't include a pre-built pthreadVCE.dll/pthreadVCE.lib (the variant that uses MSVC++ exception handling for cancelation/pthread_exit) because MSVC++ 6.0 (that's all I have access to) produces a broken dll. The problem appears to be the same as that reported in the BUGS file (#2), only the workaround doesn't work this time (fails tests\semaphore4.c). All other variants - pthreadGC.dll, pthreadGCE.dll, pthreadVC.dll, pthreadVSE.dll - work fine. A pthreadVCE.dll built with a later version of MSVC++ may work. If you find that this is the case, could you please report it. If you've been using pthreadVCE.dll, try/consider using pthreadVC.dll instead. Unless you are explicitly defining __CLEANUP_CXX or __CLEANUP_SEH for both pthread dll and application builds, then you're using the preferred pthreadVC.dll anyway. See the README file if you're not confused enough already. 3) Although I've applied the relevant contributed patches, I have not been able to build working Watcom or Borland versions, due to things like errno weirdness and differences. I'm happy to apply patches to get these versions working, but please only send patches once you've verified they pass the full test suite, or suitably patched versions of the tests. Below is a summary of what's new (from the NEWS file). Regards. Ross SNAPSHOT 2004-11-03 ------------------- DLLs produced from this snapshot cannot be used with older applications without recompiling the application, due to a change to pthread_t to provide unique POSIX thread IDs. Although this snapshot passes the extended test suite, many of the changes are fairly major, and some applications may show different behaviour than previously, so adopt with care. Hopefully, any changed behaviour will be due to the library being better at it's job, not worse. Bug fixes --------- * pthread_create() no longer accepts NULL as the thread reference arg. A segfault (memory access fault) will result, and no thread will be created. * pthread_barrier_wait() no longer acts as a cancelation point. * Fix potential race condition in pthread_once() - Tristan Savatier * Changes to pthread_cond_destroy() exposed some coding weaknesses in several test suite mini-apps because pthread_cond_destroy() now returns EBUSY if the CV is still in use. New features ------------ * Added for compatibility: PTHREAD_RECURSIVE_MUTEX_INITIALIZER, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP * Initial support for Digital Mars compiler - Anuj Goyal * Faster Mutexes. These have been been rewritten following a model provided by Alexander Terekhov that reduces kernel space checks, and eliminates some additional critical sections used to manage a race between timedlock expiration and unlock. Please be aware that the new mutexes do not enforce strict absolute FIFO scheduling of mutexes, however any out-of-order lock acquisition should be very rare. * Faster semaphores. Following a similar model to mutexes above, these have been rewritten to use preliminary users space checks. * sem_getvalue() now returns the number of waiters. * The POSIX thread ID now has much stronger uniqueness characteristics. The library garrantees not to reuse the same thread ID for at least 2^(wordsize) thread destruction/creation cycles. New tests --------- * semaphore4.c: Tests cancelation of the new sem_wait(). * semaphore4t.c: Likewise for sem_timedwait(). * rwlock8.c: Tests and times the slow execution paths of r/w locks, and the CVs, mutexes, and semaphores that they're built on.