public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
* New snapshot 2004-11-03 available
@ 2004-11-03  6:10 Ross Johnson
  0 siblings, 0 replies; only message in thread
From: Ross Johnson @ 2004-11-03  6:10 UTC (permalink / raw)
  To: pthreads-win32

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  <tristan at mpegtv.com>
                                                                                                                                            

* 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  <anuj.goyal at gmail.com>
                                                                                                                                            

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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-11-03  6:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-03  6:10 New snapshot 2004-11-03 available Ross Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).