diff options
author | bala <balanatarajan@users.noreply.github.com> | 2003-06-11 21:02:16 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2003-06-11 21:02:16 +0000 |
commit | 77435c3b771e910627834c4a89a5f3734c971119 (patch) | |
tree | b46af04388880a907fd4be5c30deabb384822e4f | |
parent | ecc7e03776e79a1d77407f3a1388259c18bb2f5a (diff) | |
download | ATCD-77435c3b771e910627834c4a89a5f3734c971119.tar.gz |
ChangeLogTag:Wed Jun 11 15:58:39 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 11 | ||||
-rw-r--r-- | TAO/tao/Transport_Cache_Manager.cpp | 37 |
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; } |