summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2002-12-17 21:43:25 +0000
committerbala <balanatarajan@users.noreply.github.com>2002-12-17 21:43:25 +0000
commit667dd6c05744b0bc2af705d5bf2f50c50b0a0c1e (patch)
tree60c83b5f3fbebecf3157f08ccd08ea258aceef93
parent7aab2347d86c76c7c4fab0125f7bf3d0b9fea37d (diff)
downloadATCD-667dd6c05744b0bc2af705d5bf2f50c50b0a0c1e.tar.gz
Cosmtic fixes
-rw-r--r--TAO/ChangeLog58
1 files changed, 29 insertions, 29 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 3796b1ef7b4..7b7517030be 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -2,35 +2,35 @@ Tue Dec 17 09:53:02 2002 Chris Cleeland <cleeland_c@ociweb.com>
* tao/Transport_Cache_Manager.*:
- Fixed deadlock that can occur when trying to gain reactor token
- and transport cache manager lock while purging cache entries.
- Unfortunately , the classic solution to the classic
- deadlock--which is typically caused by an ordering problem, and is
- solved by re-ordering--doesn't apply. We simply don't have
- control of the order due to the fact that we have two frameworks
- interacting, and the offending bodies of code don't have
- visibility to both locks.
-
- The key is not trying to remove the handler while the transport
- cache lock is held. So, we break this into two loops. The first
- loop does everything cache-releated with only the cache lock held,
- then releases it. The second loop then does only the
- reactor-related things.
-
- Key changes are:
-
- - Move purge() from .inl to .cpp.
- - Fold close_entries() into purge() (purge was the only thing that
- called close_entries anyway).
- - Use a stack to accumulate the transports that have been purged
- in the first loop, then, in the second loop, pop the stack and
- call the remove_handler on each transport.
- - Note that the transports whose pointers are stuck in the stack
- are properly reference counted using
- TAO_Transport::_duplicate/release.
-
- Thanks to Raytheon in San Diego for providing the environment to
- find this!
+ Fixed deadlock that can occur when trying to gain reactor token
+ and transport cache manager lock while purging cache entries.
+ Unfortunately , the classic solution to the classic
+ deadlock-- which is typically caused by an ordering problem, and is
+ solved by re-ordering--doesn't apply. We simply don't have
+ control of the order due to the fact that we have two frameworks
+ interacting, and the offending bodies of code don't have
+ visibility to both locks.
+
+ The key is not trying to remove the handler while the transport
+ cache lock is held. So, we break this into two loops. The first
+ loop does everything cache-releated with only the cache lock held,
+ then releases it. The second loop then does only the
+ reactor-related things.
+
+ Key changes are:
+
+ - Move purge() from .inl to .cpp.
+ - Fold close_entries() into purge() (purge was the only thing that
+ called close_entries anyway).
+ - Use a stack to accumulate the transports that have been purged
+ in the first loop, then, in the second loop, pop the stack and
+ call the remove_handler on each transport.
+ - Note that the transports whose pointers are stuck in the stack
+ are properly reference counted using
+ TAO_Transport::_duplicate/release.
+
+ Thanks to Raytheon in San Diego for providing the environment to
+ find this!
Tue Dec 17 08:14:35 2002 Chad Elliott <elliott_c@ociweb.com>