summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza-oci@users.noreply.github.com>2006-08-10 18:02:05 +0000
committerAdam Mitz <mitza-oci@users.noreply.github.com>2006-08-10 18:02:05 +0000
commitd37f2560677d32e42ba97fec292a6c021a89f0a5 (patch)
tree9a2a2cda375e703338f6fb52b4ca7e220ecbb5c0
parent02b6be8e9fc42875d428cda382627512f6c04a53 (diff)
downloadATCD-OCI_Oneway_Buffering.tar.gz
fix for the stream corruption problemOCI_Oneway_Buffering
-rw-r--r--TAO/tao/Asynch_Queued_Message.cpp16
-rw-r--r--TAO/tao/Transport.cpp3
-rwxr-xr-xTAO/tests/Timed_Buffered_Oneways/run_test.pl8
3 files changed, 8 insertions, 19 deletions
diff --git a/TAO/tao/Asynch_Queued_Message.cpp b/TAO/tao/Asynch_Queued_Message.cpp
index cbdd57b7e08..d21cc0a65ca 100644
--- a/TAO/tao/Asynch_Queued_Message.cpp
+++ b/TAO/tao/Asynch_Queued_Message.cpp
@@ -193,20 +193,12 @@ TAO_Asynch_Queued_Message::destroy (void)
bool
TAO_Asynch_Queued_Message::is_expired (const ACE_Time_Value &now) const
{
- ACE_DEBUG ((LM_DEBUG,
- "TAO (%P|%t) - Asynch_Queued_Message::is_expired - "
- "Age of message is <%dms> this = %x.\n",
- (now - this->abs_timeout_).msec (), this));
- if (this->offset_ > 0)
- {
- // This debug is for testing purposes!
- ACE_DEBUG ((LM_DEBUG,
- "TAO (%P|%t) - Asynch_Queued_Message::is_expired - "
- "Can't expire message due to partial send. \n"));
- return false; //never expire partial messages
- }
if (this->abs_timeout_ > ACE_Time_Value::zero)
{
+ if (this->offset_ > 0)
+ {
+ return false; //never expire partial messages
+ }
return this->abs_timeout_ < now;
}
return false;
diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp
index b132d4ee612..3fcb0b164a9 100644
--- a/TAO/tao/Transport.cpp
+++ b/TAO/tao/Transport.cpp
@@ -962,11 +962,12 @@ TAO_Transport::drain_queue_i (void)
ACE_TEXT ("Discarding expired queued message.\n"),
this->id ()));
}
+ TAO_Queued_Message *next = i->next ();
i->state_changed (TAO_LF_Event::LFS_TIMEOUT,
this->orb_core_->leader_follower ());
i->remove_from_list (this->head_, this->tail_);
i->destroy ();
- i = this->head_;
+ i = next;
continue;
}
// ... each element fills the iovector ...
diff --git a/TAO/tests/Timed_Buffered_Oneways/run_test.pl b/TAO/tests/Timed_Buffered_Oneways/run_test.pl
index 16ef5e32ab3..a9d9fa6b607 100755
--- a/TAO/tests/Timed_Buffered_Oneways/run_test.pl
+++ b/TAO/tests/Timed_Buffered_Oneways/run_test.pl
@@ -17,13 +17,9 @@ if (PerlACE::is_vxworks_test()) {
$SV = new PerlACE::ProcessVX ("server", "-o server.ior");
}
else {
- $SV = new PerlACE::Process ("server", "-o $iorfile"
-." -ORBDebugLevel 6 -ORBLogFile server.log"
-);
+ $SV = new PerlACE::Process ("server", "-o $iorfile");
}
-$CL = new PerlACE::Process ("client", "-k file://$iorfile -x"
-." -ORBDebugLevel 6 -ORBLogFile client.log"
-);
+$CL = new PerlACE::Process ("client", "-k file://$iorfile -x");
$SV->Spawn ();