summaryrefslogtreecommitdiff
path: root/TAO/tao/Exclusive_TMS.cpp
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2002-04-04 04:26:10 +0000
committerbala <balanatarajan@users.noreply.github.com>2002-04-04 04:26:10 +0000
commit725e73703a67326ed06452ca975b5378ad84c03b (patch)
tree866f51c285d8f0d3c1cd2a53a0194d493825e847 /TAO/tao/Exclusive_TMS.cpp
parentddf00484367e672294353272d1c670964963ba00 (diff)
downloadATCD-725e73703a67326ed06452ca975b5378ad84c03b.tar.gz
ChangeLogTag: Wed Apr 3 22:18:38 2002 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Exclusive_TMS.cpp')
-rw-r--r--TAO/tao/Exclusive_TMS.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/TAO/tao/Exclusive_TMS.cpp b/TAO/tao/Exclusive_TMS.cpp
index 95cd9d1bd09..0f17f8eddca 100644
--- a/TAO/tao/Exclusive_TMS.cpp
+++ b/TAO/tao/Exclusive_TMS.cpp
@@ -27,11 +27,27 @@ TAO_Exclusive_TMS::~TAO_Exclusive_TMS (void)
CORBA::ULong
TAO_Exclusive_TMS::request_id (void)
{
+ this->request_id_generator_++;
+
+ // if TAO_Transport::bidirectional_flag_
+ // == 1 --> originating side
+ // == 0 --> other side
+ // == -1 --> no bi-directional connection was negotiated
+ // The originating side must have an even request ID, and the other
+ // side must have an odd request ID. Make sure that is the case.
+ int bidir_flag =
+ this->transport_->bidirectional_flag ();
+
+ if ((bidir_flag == 1 && ACE_ODD (this->request_id_generator_))
+ || (bidir_flag == 0 && ACE_EVEN (this->request_id_generator_)))
+ ++this->request_id_generator_;
+
if (TAO_debug_level > 4)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) TAO_Exclusive_TMS::request_id - <%d>\n"),
this->request_id_generator_));
- return this->request_id_generator_++;
+
+ return this->request_id_generator_;
}
// Bind the handler with the request id.