diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-04-09 07:44:49 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-04-09 07:44:49 +0000 |
commit | 7ae0b01904341fd5c1421123b9397927718384a0 (patch) | |
tree | 041de0310cf2ae468de4d090776d56896e8918a7 | |
parent | 1409b44bb54c0845485dcfedfcbea3d548e50900 (diff) | |
download | ATCD-7ae0b01904341fd5c1421123b9397927718384a0.tar.gz |
ChangeLogTag:Mon Apr 09 00:41:20 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 13 | ||||
-rw-r--r-- | TAO/tao/Invocation.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/Reactive_Flushing_Strategy.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/Transport.cpp | 12 |
4 files changed, 31 insertions, 8 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 92f44ec032a..e4a1315b0f4 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,16 @@ +Mon Apr 09 00:41:20 2001 Carlos O'Ryan <coryan@uci.edu> + + * tao/Invocation.cpp: + The default scope should be SYNC_WITH_TRANSPORT, but was + overriden and became SYNC_NONE. + + * tao/Reactive_Flushing_Strategy.cpp: + Fixed conditions to terminate the loop. + + * tao/Transport.cpp: + Initialize byte_count to zero before calling send(), add more + ACE_ASSERT() calls to debug the system. + Sat Apr 7 21:13:48 2001 Carlos O'Ryan <coryan@uci.edu> * tao/Transport.cpp: diff --git a/TAO/tao/Invocation.cpp b/TAO/tao/Invocation.cpp index 2970dc187ae..5b6acc32b48 100644 --- a/TAO/tao/Invocation.cpp +++ b/TAO/tao/Invocation.cpp @@ -939,7 +939,7 @@ TAO_GIOP_Oneway_Invocation::TAO_GIOP_Oneway_Invocation ( sync_scope_ (TAO::SYNC_WITH_TRANSPORT) { int has_synchronization = 0; - int scope = 0; + int scope = this->sync_scope_; this->orb_core_->call_sync_scope_hook (this->stub_, has_synchronization, scope); @@ -970,6 +970,10 @@ TAO_GIOP_Oneway_Invocation::invoke (CORBA::Environment &ACE_TRY_ENV) { return TAO_GIOP_Invocation::invoke (0, ACE_TRY_ENV); } + if (this->sync_scope_ == TAO::SYNC_WITH_TRANSPORT) + { + return TAO_GIOP_Invocation::invoke (1, ACE_TRY_ENV); + } int retval = this->invoke_i (0, ACE_TRY_ENV); ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION); diff --git a/TAO/tao/Reactive_Flushing_Strategy.cpp b/TAO/tao/Reactive_Flushing_Strategy.cpp index 8add2b98b36..8bf90a36a1d 100644 --- a/TAO/tao/Reactive_Flushing_Strategy.cpp +++ b/TAO/tao/Reactive_Flushing_Strategy.cpp @@ -25,15 +25,15 @@ int TAO_Reactive_Flushing_Strategy::flush_message (TAO_Transport *transport, TAO_Queued_Message *msg) { - TAO_ORB_Core *orb_core = transport->orb_core (); - int result = 0; + // @@ Should we pass this down? Can we? ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { - while (!msg->all_data_sent () - && result > 0) + TAO_ORB_Core *orb_core = transport->orb_core (); + + while (!msg->all_data_sent () && result >= 0) { result = orb_core->run (0, 1, ACE_TRY_ENV); ACE_TRY_CHECK; diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index 68893083f9a..19fc4c2366b 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -413,7 +413,12 @@ TAO_Transport::send_synchronous_message_i (TAO_Stub *stub, if (n == -1) return -1; // Error while sending... else if (n == 1) - return 1; // Empty queue, message was sent.. + { + ACE_ASSERT (synch_message.all_data_sent ()); + ACE_ASSERT (synch_message.next () == 0); + ACE_ASSERT (synch_message.prev () == 0); + return 1; // Empty queue, message was sent.. + } ACE_ASSERT (n == 0); // Some data sent, but data remains. @@ -439,6 +444,7 @@ TAO_Transport::send_synchronous_message_i (TAO_Stub *stub, &synch_message); } + ACE_ASSERT (synch_message.all_data_sent () != 0); ACE_ASSERT (synch_message.next () == 0); ACE_ASSERT (synch_message.prev () == 0); return result; @@ -764,7 +770,7 @@ TAO_Transport::drain_queue_i (void) // IOV_MAX elements ... if (iovcnt == IOV_MAX) { - size_t byte_count; + size_t byte_count = 0; // ... send the message ... ssize_t retval = @@ -804,7 +810,7 @@ TAO_Transport::drain_queue_i (void) i = i->next (); } - size_t byte_count; + size_t byte_count = 0; ssize_t retval = this->send (iov, iovcnt, byte_count); |