diff options
author | bala <balanatarajan@users.noreply.github.com> | 2002-07-22 22:54:35 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2002-07-22 22:54:35 +0000 |
commit | 463ea5e797a294f5f2abc085ae0355d1f8d82c91 (patch) | |
tree | c2aaf751835347f9c8a5e6e76fad4965ed1d4ee1 | |
parent | 4d18f68fd8ddddb8af188e1cd68ba452148360d6 (diff) | |
download | ATCD-463ea5e797a294f5f2abc085ae0355d1f8d82c91.tar.gz |
ChangeLogTag: Mon Jul 22 17:52:04 2002 Balachandran Natarajan <bala@cs.wustl.edu>
-rw-r--r-- | TAO/tao/ChangeLog | 11 | ||||
-rw-r--r-- | TAO/tao/GIOP_Message_Base.cpp | 15 | ||||
-rw-r--r-- | TAO/tao/Transport.cpp | 10 |
3 files changed, 23 insertions, 13 deletions
diff --git a/TAO/tao/ChangeLog b/TAO/tao/ChangeLog index ad942f04787..5ec9821ce04 100644 --- a/TAO/tao/ChangeLog +++ b/TAO/tao/ChangeLog @@ -1,3 +1,14 @@ +Mon Jul 22 17:52:04 2002 Balachandran Natarajan <bala@cs.wustl.edu> + + * tao/GIOP_Message_Base.cpp: We now use the global pool for + allocating memory for the return path. Using TSS created + problems when we were trying to move the unsent messages from + the TSS to global pool. The message block makes things to crash + horribly, especially at places that you have no clue about. + + * tao/Transport.cpp: Do not reset the allocators since ot is not + required. + Tue Jul 16 07:06:33 2002 Balachandran Natarajan <bala@cs.wustl.edu> * tao/Synch_Queued_Message.cpp: diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp index 84a8ec26914..d0691e7a65f 100644 --- a/TAO/tao/GIOP_Message_Base.cpp +++ b/TAO/tao/GIOP_Message_Base.cpp @@ -584,12 +584,21 @@ TAO_GIOP_Message_Base::process_request_message (TAO_Transport *transport, #endif /* ACE_HAS_PURIFY */ // Initialze an output CDR on the stack + // NOTE: Dont jump to a conclusion as to why we are using the + // inpout_cdr and hence the global pool here. These pools will move + // to the lanes anyway at some point of time. Further, it would have + // been awesome to have this in TSS. But for some reason the cloning + // that happens when the ORB gets flow controlled while writing a + // reply is messing things up. We crash horribly. Doing this adds a + // lock, we need to set things like this -- put stuff in TSS here + // and transfer to global memory when we get flow controlled. We + // need to work on the message block to get it right! TAO_OutputCDR output (repbuf, sizeof repbuf, TAO_ENCAP_BYTE_ORDER, - this->orb_core_->output_cdr_buffer_allocator (), - this->orb_core_->output_cdr_dblock_allocator (), - this->orb_core_->output_cdr_msgblock_allocator (), + this->orb_core_->input_cdr_buffer_allocator (), + this->orb_core_->input_cdr_dblock_allocator (), + this->orb_core_->input_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), qd->major_version_, qd->minor_version_, diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index 02cb348465c..fe3308ef812 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -619,16 +619,6 @@ TAO_Transport::send_reply_message_i (const ACE_Message_Block *mb, synch_message.remove_from_list (this->head_, this->tail_); - ACE_Message_Block *tmp_mb = - ACE_const_cast (ACE_Message_Block *, - mb); - - // Reset the message block allocators to allocate memory from the - // global pool. - tmp_mb->reset_allocators (this->orb_core_->input_cdr_buffer_allocator (), - this->orb_core_->input_cdr_dblock_allocator (), - this->orb_core_->input_cdr_msgblock_allocator ()); - // Clone the node that we have. TAO_Queued_Message *msg = synch_message.clone (this->orb_core_->transport_message_buffer_allocator ()); |