summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrpj <rpj>2005-05-09 08:59:45 +0000
committerrpj <rpj>2005-05-09 08:59:45 +0000
commitc8079f156984a11874f2ecaddb750e463a9554b1 (patch)
tree83db8408ce62afe42b3442068acfef3944db0040
parent6961e1741a9bdcff4b075859acc15e56031889a3 (diff)
-rw-r--r--NEWS18
1 files changed, 14 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 8c86a5e..8bc2823 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ HTML formatted Unix-style manual pages that have been edited for
consistency with Pthreads-w32. The set can also be read online at:
http://sources.redhat.com/pthreads-win32/manual/index.html
-Thanks again to Tim Theisen for pre-release running the testing suite
+Thanks again to Tim Theisen for running the test suite pre-release
on an MP system.
All of the bug fixes and new features in this release have been
@@ -20,12 +20,22 @@ Bugs fixed
----------
* Thread Specific Data (TSD) key management has been ammended to
-eliminate a source of (what is effectively) resource leakage (HANDLEs
-plus memory).
+eliminate a source of (what was effectively) resource leakage (a HANDLE
+plus memory for each key destruct routine/thread association). This was
+not a true leak because these resources were eventually reclaimed when
+pthread_key_delete was run AND each thread referencing the key had exited.
+The problem was that these two conditions are often not met until very
+late, and often not until the process is about to exit.
+
+The ammended implementation avoids the need for the problematic HANDLE
+and reclaims the memory as soon as either the key is deleted OR the
+thread exits, whichever is first.
+
Thanks to Richard Hughes at Aculab for identifying and locating the leak.
* TSD key destructors are now processed up to PTHREAD_DESTRUCTOR_ITERATIONS
-times (was always in pthread.h) instead of just once.
+times instead of just once. PTHREAD_DESTRUCTOR_ITERATIONS has been
+defined in pthread.h for some time but not used.
* Fix a semaphore accounting race between sem_post/sem_post_multiple
and sem_wait cancellation. This is the same issue as with