diff options
author | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-06-28 20:30:24 +0000 |
---|---|---|
committer | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-06-28 20:30:24 +0000 |
commit | 3c18da2373ebdb29a2ebd08be4b4d5a1e3f83c14 (patch) | |
tree | 54a81f9140ede47e61ed8d9f31b4e64855299782 | |
parent | 03d7f82f98e0914ead0a425b94a39c1a1bed5c90 (diff) | |
download | ATCD-3c18da2373ebdb29a2ebd08be4b4d5a1e3f83c14.tar.gz |
ChangeLog entry: Sun Jun 28 15:30:00 1998 Michael Kircher <mk1@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-98c | 6 | ||||
-rw-r--r-- | TAO/tao/GIOP.cpp | 19 |
2 files changed, 16 insertions, 9 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index a30187c7b39..84b93e8a540 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,3 +1,9 @@ +Sun Jun 28 15:30:00 1998 Michael Kircher <mk1@cs.wustl.edu> + + * tao/GIOP.cpp: In method location_forwarding, removed + the explicit release of the IIOP_Object. It is implicitly + released by the release of the CORBA::OBject pointer. + Sat Jun 27 18:13:05 1998 Irfan Pyarali <irfan@cs.wustl.edu> * TAO/tests/POA/Explicit_Activation/server.cpp (main): Changed diff --git a/TAO/tao/GIOP.cpp b/TAO/tao/GIOP.cpp index ac33a331c37..9edda2016d4 100644 --- a/TAO/tao/GIOP.cpp +++ b/TAO/tao/GIOP.cpp @@ -609,7 +609,7 @@ TAO_GIOP::recv_request (TAO_SVC_HANDLER *&handler, return retval; } -// Normal invocations don't involve any heap allocation; messages are +// Normal invocations don't involve any heap al; messages are // constructed into stack-based buffers and are read into those // buffers too. Larger buffers are heap-allocated as needed. // @@ -695,7 +695,7 @@ TAO_GIOP_Invocation::start (CORBA::Environment &env) ACE_INET_Addr *server_addr_p = 0; { - ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, guard, data_->get_fwd_profile_lock ())); + ACE_MT (ACE_WRITE_GUARD (ACE_SYNCH_RW_MUTEX, guard, data_->get_fwd_profile_lock ())); if (data_->get_fwd_profile_i () != 0) { @@ -922,7 +922,10 @@ TAO_GIOP_Invocation::invoke (CORBA::ExceptionList &exceptions, // not just the connection. Without reinitializing, we'd give // false error reports to applications. { - ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, data_->get_fwd_profile_lock (), TAO_GIOP_SYSTEM_EXCEPTION)); + ACE_MT (ACE_READ_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, + guard, + data_->get_fwd_profile_lock (), + TAO_GIOP_SYSTEM_EXCEPTION)); IIOP::Profile *old = data_->set_fwd_profile (0); @@ -1169,9 +1172,6 @@ TAO_GIOP_Invocation::location_forward (CORBA::Environment &env) return TAO_GIOP_SYSTEM_EXCEPTION; } - // The object is no longer needed, because we have now the IIOP_Object - CORBA::release (object_ptr); - CORBA::release (object_ptr); // Make a copy of the IIOP profile in the forwarded objref, // reusing memory where practical. Then delete the forwarded @@ -1188,8 +1188,9 @@ TAO_GIOP_Invocation::location_forward (CORBA::Environment &env) // store the new profile in the forwarding profile // note: this has to be and is thread safe - // Release the IIOP_Object - iIOP_Object_ptr->Release (); + // The object is no longer needed, because we have now the IIOP_Object + CORBA::release (object_ptr); + CORBA::release (object_ptr); env.clear (); @@ -1294,7 +1295,7 @@ TAO_GIOP_Invocation::invoke (TAO_Exception_Data *excepts, // not just the connection. Without reinitializing, we'd give // false error reports to applications. { - ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, data_->get_fwd_profile_lock (), TAO_GIOP_SYSTEM_EXCEPTION)); + ACE_MT (ACE_READ_GUARD_RETURN (ACE_SYNCH_RW_MUTEX, guard, data_->get_fwd_profile_lock (), TAO_GIOP_SYSTEM_EXCEPTION)); IIOP::Profile *old = data_->set_fwd_profile (0); |