summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-09-08 16:18:58 +0000
committervzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-09-08 16:18:58 +0000
commit7467b3897a83a9f1d77c52c51ef47aee9cd21bf3 (patch)
tree58270e64fd6003ccb8db474b80af478438504c91
parent476a5423274e341821e9e850753f02cfe2fac5fb (diff)
downloadATCD-7467b3897a83a9f1d77c52c51ef47aee9cd21bf3.tar.gz
ChangeLogTag: Tue Sep 8 16:16:17 UTC 2009 Vladimir Zykov <vz@prismtech.com>
-rw-r--r--TAO/ChangeLog7
-rw-r--r--TAO/tao/Leader_Follower_Flushing_Strategy.cpp5
2 files changed, 11 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 83803cfbe08..7b38fd1d1ea 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,10 @@
+Tue Sep 8 16:16:17 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+
+ Additional fix for bug#3697. It must fix Bug_1551_Regression
+ which got broken by the original fix.
+
Tue Sep 8 10:46:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp:
diff --git a/TAO/tao/Leader_Follower_Flushing_Strategy.cpp b/TAO/tao/Leader_Follower_Flushing_Strategy.cpp
index c3008045536..5312abcd807 100644
--- a/TAO/tao/Leader_Follower_Flushing_Strategy.cpp
+++ b/TAO/tao/Leader_Follower_Flushing_Strategy.cpp
@@ -47,7 +47,8 @@ TAO_Leader_Follower_Flushing_Strategy::flush_transport (
{
TAO_ORB_Core * const orb_core = transport->orb_core ();
- while (!transport->queue_is_empty ())
+ while (!transport->queue_is_empty () &&
+ orb_core->reactor ()->work_pending ())
{
// In case max_wait_time==0 we cannot simply run the orb because
// in multi-threaded applications it can easily happen that
@@ -55,6 +56,8 @@ TAO_Leader_Follower_Flushing_Strategy::flush_transport (
// transport we're coping with here and this thread will block.
// Instead we do run for a small amount of time and then recheck
// the queue.
+ // Also we have to check the work_pending status for the reason
+ // stated in bugzilla 3697.
if (max_wait_time == 0)
{
ACE_Errno_Guard eguard (errno);