summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-06-11 21:02:16 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-06-11 21:02:16 +0000
commit77435c3b771e910627834c4a89a5f3734c971119 (patch)
treeb46af04388880a907fd4be5c30deabb384822e4f
parentecc7e03776e79a1d77407f3a1388259c18bb2f5a (diff)
downloadATCD-77435c3b771e910627834c4a89a5f3734c971119.tar.gz
ChangeLogTag:Wed Jun 11 15:58:39 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog11
-rw-r--r--TAO/tao/Transport_Cache_Manager.cpp37
2 files changed, 19 insertions, 29 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 3fa2609bb3e..37ca5f17177 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,14 @@
+Wed Jun 11 15:58:39 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tao/Transport_Cache_Manager.cpp (make_idle_i): Fixes for BUG
+ 1528. Please see
+
+ http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1528
+
+ for the motivation. This checkin just removes the call to find
+ () on the map. It just changes the state of the map entry to
+ idle after holding a lock.
+
Wed Jun 11 15:08:29 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* tao/Profile.cpp:
diff --git a/TAO/tao/Transport_Cache_Manager.cpp b/TAO/tao/Transport_Cache_Manager.cpp
index f8a86092834..de48e770861 100644
--- a/TAO/tao/Transport_Cache_Manager.cpp
+++ b/TAO/tao/Transport_Cache_Manager.cpp
@@ -269,40 +269,19 @@ TAO_Transport_Cache_Manager::make_idle_i (HASH_MAP_ENTRY *&entry)
if (entry == 0)
return -1;
- // First get the entry again (if at all things had changed in the
- // cache map in the mean time)
+ entry->int_id_.recycle_state (ACE_RECYCLABLE_IDLE_AND_PURGABLE);
- // @todo: Is this required? Looks like a legacy one..
-
- HASH_MAP_ENTRY *new_entry = 0;
- int retval = this->cache_map_.find (entry->ext_id_,
- new_entry);
- if (retval == 0)
+ // Does any one need waking?
+ if (this->no_waiting_threads_)
{
+ // We returned this entry to the map
+ this->last_entry_returned_ = &entry->ext_id_;
- new_entry->int_id_.
- recycle_state (ACE_RECYCLABLE_IDLE_AND_PURGABLE);
-
- entry = new_entry;
-
- // Does any one need waking?
- if (this->no_waiting_threads_)
- {
- // We returned this entry to the map
- this->last_entry_returned_ = &new_entry->ext_id_;
-
- // Wake up a thread
- this->condition_->signal ();
- }
- }
- else if (TAO_debug_level > 0 && retval != 0)
- {
- ACE_ERROR ((LM_ERROR,
- "TAO (%P|%t) - Transport_Cache_Manager::make_idle_i, "
- "unable to locate the entry to make it idle\n"));
+ // Wake up a thread
+ this->condition_->signal ();
}
- return retval;
+ return 0;
}