diff options
author | wilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-08-13 21:03:24 +0000 |
---|---|---|
committer | wilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-08-13 21:03:24 +0000 |
commit | 9a472d32c26015dcbc7afef45cd1e05e6b1ad3fc (patch) | |
tree | 3f53cc6075ea3388db27c580dc287db9d0fd83d0 /ChangeLog | |
parent | 742f72bd561d26957f35f42e5d216b022ba75c27 (diff) | |
download | ATCD-9a472d32c26015dcbc7afef45cd1e05e6b1ad3fc.tar.gz |
ChangeLogTag: Fri Aug 13 15:26:40 2004 Dale Wilson <wilson_d@ociweb.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 4c1845a61c7..c1ea49f99d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +Fri Aug 13 15:26:40 2004 Dale Wilson <wilson_d@ociweb.com> + + * ace/TSS_T.cpp: + Pass the TSS key to ACE_OS::thr_key_detach. This + eliminates the table lookup formerly required to + identify the key being detached. + + * ace/OS_NS_Thread.h: + * ace/OS_NS_Thread.cpp: + --Accept and use the TSS key from TST_T.cpp + --Typedef the function pointer used to delete TSS + objects. This improves readability. + --Change the name of the ACE_TSS_Info member from + tss_obj_ to tss_info_. This avoids confusion + due to conflicting use of the name "tss_obj" + --Check to see if a thread has actually used + a TSS key before decrementing the "number of + threads using this key" counter. This eliminates + a messy situation in which the key is deleted + while threads are still using it. + --Fix bugzilla 1542: Leaks in ACE_TSS + Note that the patch suggested + in the bugzilla report did not completely address + the problem, so this fix takes a different approach. + Significant features of this change: + > The ACE_TSS_Cleanup::detach method now frees the + thread's specified TSS entry. Formerly it leaked it. + > The exit method defers to the detach method to + free the entry. This ensures entries are handled + consistently -- no matter how they are freed up. + > The ACE_TSS_Cleanup::in_use_ entry receives special + handling to avoid using it while deleting it. Formerly + it was leaked, so it didn't matter. + -- Note this does NOT address bugzilla 1797. I'll + look at that one next. + + * ace/Object_Manager.cpp: + Eliminating TSS leaks revealed another problem. The + main thread was not waiting for other threads to exit + before dismantling the ACE infrastructure in + Object_Manager::fini. There's a hack in Thread_Manager + that disables the wait method when the Object_Manager + is shutting down. + Unfortunatly this causes a messy race condition in which + one thread is deleting objects while other threads are + using them. + The "solution" here is to call Thread_Manager::wait() + with a short (1 second) timeout. If the threads have + already exited -- no problem, and no delay. If they + haven't, they get a chance to exit cleanly. + + Fri Aug 13 18:43:01 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> * ace/CDR_Base.h (ACE_CDR): |