summaryrefslogtreecommitdiff
path: root/TAO/ChangeLogs/ChangeLog-02a
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/ChangeLogs/ChangeLog-02a')
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a493
1 files changed, 252 insertions, 241 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index 91362fd7865..e099f1c49f0 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,275 +1,286 @@
-Tue Jul 31 12:53:06 2001 Carlos O'Ryan <coryan@uci.edu>
+Tue Jul 31 12:55:07 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * tao/Follower.h:
+ * tao/Follower.inl:
+ * tao/Follower.cpp:
+ * tao/Follower_Auto_Ptr.h:
+ * tao/Follower_Auto_Ptr.inl:
+ * tao/Follower_Auto_Ptr.cpp:
+ * tao/LF_Follower.h:
+ * tao/LF_Follower.inl:
+ * tao/LF_Follower.cpp:
+ * tao/LF_Follower_Auto_Ptr.h:
+ * tao/LF_Follower_Auto_Ptr.inl:
+ * tao/LF_Follower_Auto_Ptr.cpp:
+ * tao/Makefile:
+ * tao/Makefile.am:
+ * tao/Makefile.bor:
+ * tao/TAO.dsp:
+ * tao/TAO_Static.dsp:
+ Renamed TAO_Follower to TAO_LF_Follower and
+ TAO_Follower_Auto_Ptr to TAO_LF_Follower_Auto_Ptr, I think this
+ is more consistent with the other files in the project.
+
+ * tao/LF_Follower_Auto_Adder.h:
+ * tao/LF_Follower_Auto_Adder.inl:
+ * tao/LF_Follower_Auto_Adder.cpp:
+ Remove unused code from the Auto_Adder files.
+
+ * tao/LF_Event.h:
+ * tao/LF_Event.inl:
+ * tao/LF_Event.cpp:
+ * tao/LF_Event_Binder.h:
+ * tao/LF_Event_Binder.inl:
+ * tao/Leader_Follower.h:
+ * tao/Leader_Follower.i:
+ * tao/Leader_Follower.cpp:
+ Use the new class names and #includes.
+
+Mon Jul 30 14:41:43 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * tao/LF_Follower_Auto_Adder.h:
+ * tao/LF_Follower_Auto_Adder.inl:
+ * tao/LF_Follower_Auto_Adder.cpp:
+ Automatically manipulate the L/F follower set: its constructor
+ inserts a follower into the set and the destructor removes it.
+
+ * tao/Leader_Follower.cpp:
+ Use the new LF_Follower_Auto_Adder class.
- * tao/Transport.cpp (register_handler):
- Fixed race condition, the register_handler_i() method may use
- the connection_handler_, but we do not check if it is nil before
- calling.
-
-Tue Jul 31 13:40:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Oneways_Invoking_Twoways/client.dsp: Fixed a compile error
- in release builds.
-
-Tue Jul 31 10:39:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/IDL_Test/gperf.idl:
-
- New file in IDL_Test containing examples sent in by
- Karl Proese <karl.proese@mchp.siemens.de> and Vsevolod Novikov
- <novikov@df.nnov.rfnet.ru> that uncovered bugs in gperf.
-
- * tests/IDL_Test/idl_test.dsp:
- * tests/IDL_Test/Makefile:
- * tests/IDL_Test/Makefile.bor:
-
- Updated project and makefiles to include the new generated files.
-
-Tue Jul 31 08:25:46 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/fe/idl.ll:
- * TAO_IDL/fe/idl.yy:
- * TAO_IDL/fe/lex.yy.cpp:
- * TAO_IDL/fe/lex.yy.cpp.diff:
- * TAO_IDL/fe/y.tab.cpp:
- * TAO_IDL/fe/y.tab.cpp.diff:
- * TAO_IDL/fe/y.tab.h:
-
- Removed OBV-related token IDL_INIT and replaced it with
- IDL_FACTORY, which is returned when the string 'factory'
- is seen in an IDL file. This string signals the declaration
- of an value type's initializing member function. Also changed
- the production rule 'init_decl' to be closer to the correct
- grammar for this type of function, although this feature
- is completely implemented. And finally, modified two
- production rules to eliminate long-standing shift/reduce
- error messages when generating y.tab.* from idl.yy. Thanks
- to Russ Noseworthy <j.russell.noseworthy@objectsciences.com>
- for reporting that an 'init' identifier string in an IDL file
- caused an error when compiled with the -Gv option (value types)
- enabled.
-
-Tue Jul 31 06:58:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- This checkin is for fixing a race condition while trying to
- manipulate the number of upcalls. This was not a problem before
- 575 fix, as the manipulation was done when there was an implicit
- synchronisation in the TP Reactor. As the implicit synchronisation
- has been broken, we had a race condition. The surpsising element
- was the fact that it took sometime to figure out this race
- condition. We have now added a lock that will be held by the
- thread before the variable is manipulated.
-
- * tao/Connection_Handler.cpp:
- * tao/Connection_Handler.h:
- * tao/ Connection_Handler.inl: Added a lock to the class. Also
- added three methods, incr_pending_upcalls (),
- decr_pending_upcalls () and pending_upcalls (). The first two
- does the manipulation of the pending_upcalls_ variable after
- holding the lock.
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/IIOP_Connection_Handler.h: Removed he peding_upcalls_
- variable and called the incr_pending_upcalls () and
- decr_pending_upcalls () to achieve what needs to be done.
-
- * tao/Strategies/DIOP_Connection_Handler.cpp
- * tao/Strategies/DIOP_Connection_Handler.h
- * tao/Strategies/SHMIOP_Connection_Handler.cpp
- * tao/Strategies/SHMIOP_Connection_Handler.h
- * tao/Strategies/UIOP_Connection_Handler.cpp
- * tao/Strategies/UIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- Replicated the changes from IIOP to the above protocols.
-
-
-Sun Jul 29 19:31:34 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tao/RTCORBA/RT_Mutex.cpp (try_lock): Since we fixed the timed
- ACE_OS::mutex_lock() to set errno to ETIME we can cleanup the
- code here to remove the checks for errno == EBUSY and errno ==
- ETIMEDOUT.
-
-Sun Jul 29 20:00:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/PortableServer/ORB_Manager.h:
-
- Improved comments and converted to doxygen format.
-
-Sun Jul 29 10:15:13 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/TAO_Internal.cpp (open_services_i):
-
- Reverted my change that prevented the default resource factory
- from being inserted into the Service Repository. The resource
- factory must be inserted into the Service Repository so that
- Service Configurator directives such as 'static Resource_Factory
- "-ORBResources global"' actually work properly. An alternative
- solution for the dynamic loading problem related the default
- resource factory is necessary.
-
-Sun Jul 29 00:59:28 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/Options.html:
-
- Updated documentation for the "-ORBSkipServiceConfigOpen" ORB
- option. It is no longer necessary the Service Configurator is
- now reentrant and thread-safe. This option is deprecated, and
- will be removed in releases of TAO in the near future.
-
-Sun Jul 29 00:22:30 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/Simple/time-date/svc.conf:
-
- The support for nested Service Configurator directive processing
- that was just added to ACE made it possible to greatly simply
- this `svc.conf' file. It is no longer necessary to pre-load
- services that are by default loaded by the ORB. It is also no
- longer necessary to use the "-ORBSkipServiceConfigOpen" ORB
- option since the Service Configurator is now
- reentrant/thread-safe.
-
- Instead of the nine Service Configurator directives that were
- listed in this file, only three of them are now necessary.
-
-Sat Jul 28 23:29:21 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/TAO_Internal.cpp (open_services_i):
-
- We cannot insert the default resource factory into the Service
- Repository before the ORB is created since it will be finalized
- before the ORB is finalized. The ORB requires that a resource
- factory exist in order to reclaim the reactor during
- finalization.
-
- This was only a problem when the ORB was dynamically
- loaded/unloaded.
-
-Wed Jul 25 23:48:58 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Blocking_Sync_None/client.cpp (main): Changed an
- error messages so that the "Right Thing[TM]" will happen when
- this test fails, i.e., the build system will automagically
- detect it. Thanks to Johnny Willemsen for reportng this.
-
-Fri Jul 27 21:48:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: Removed all
- the references to the GIOP lite protocol from this script.
-
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test_lite.pl: We dont
- seem to be having any sort of tests that are run for GIOP
- Lite. Now we will run this in our nightly builds. This test uses
- IIOP_Lite & UIOP_Lite to run the IDL_Cubit test. Having a
- protocol that we are not sure whether it works may be a bad
- idea.
-
-Fri Jul 27 21:38:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp: Added a TAO_debug_level guard around
- the places where dump_msg () is called. Though dump_msg ()
- prints out information only if the TAO_debug_level is set, this
- extra guard will prevent us from calling this method when we are
- trying to do performance measurements.
-
- * tao/GIOP_Message_Lite.cpp: For some reason this class never had
- a hexdump. Added the hexdump in dump_msg ().
+ * tao/Makefile:
+ * tao/Makefile.am:
+ * tao/Makefile.bor:
+ * tao/TAO.dsp:
+ * tao/TAO_Static.dsp:
+ Add the new files to Makefiles and projects.
-Fri Jul 27 16:33:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+Sun Jul 29 11:58:51 2001 Carlos O'Ryan <coryan@uci.edu>
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Enabled GIOP lite
- flag to pass through to their transport object.
+ * tao/Leader_Follower.cpp:
+ If an error is detected while waiting as a follower the loop
+ should return -1.
-Fri Jul 27 16:32:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+ * tao/Transport.cpp:
+ Merged in some bug fixes from the main trunk.
- * tao/IIOP_Connection_Handler.cpp: Enabled GIOP lite flag to pass
- through to their transport object.
+Sun Jul 29 09:00:57 2001 Carlos O'Ryan <coryan@uci.edu>
- * tao/GIOP_Message_Lite.cpp: Transfered the reply that has been
- received to the another CDR which is used to dispatch the
- reply. This was actually fixed in my branch. Looks like this got
- missed when the branch was merged to the main trunk. Added some
- cosmetic fixes to the debugging output. Thanks to Paul Calabrese
- for alerting me about this miss.
+ * tao/LF_Event.cpp:
+ Fixed the error_detected() function
-Fri Jul 27 14:43:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+Fri Jul 27 17:34:40 2001 Carlos O'Ryan <coryan@cs.wustl.edu>
- * tests/BiDirectional_NestedUpcall/svc.conf: Removed from the
- repository. It is no longer needed as this test will work with
- a TP Reactor (the default one).
+ * tao/Leader_Follower.h:
+ * tao/default_resource.cpp:
+ Fixed warnings and compilation errors for gcc-2.7.2
-Fri Jul 27 12:58:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+Fri Jul 27 10:59:50 2001 Carlos O'Ryan <coryan@uci.edu>
- * tao/Transport.cpp: Removed a debug statement.
+ * tao/LF_Event.h:
+ * tao/LF_Event.inl:
+ Add new method to unbind a LF_Event and its Follower:
+ Reply_Dispatchers can be used multiple times to wait for several
+ replys, mostly when a LOCATION_FORWARD message is received.
-Fri Jul 27 12:25:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+ * tao/LF_Event.cpp:
+ Modify the state machine: the state can go back to ACTIVE from
+ CONNECTION_CLOSED or SUCCESSFUL. This represents the location
+ forward scenario described above.
- * tao/Transport.cpp: Reverted the change made in this Wed Jul 25
- 22:10:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>. We
- need to resume the handle as soon the reply is ready for
- dispatching. The situation where it can create problems can be
- easily seen in $TAO_ROOT/tests/LongUpcalls/run_ami_test.pl.
+ * tao/LF_Event_Binder.h:
+ * tao/LF_Event_Binder.inl:
+ * tao/LF_Event_Binder.cpp:
+ Helper class to automate the bind/unbind calls to a LF_Event.
- Further, the fix that was done earlier was to resume the handle
- after dispatching the reply. It was thought that it would fix a
- race condition. I had a long discussion with Irfan yesterday,
- and looks like the possibility of a race condition is not
- there at all.
+ * tao/Leader_Follower.cpp:
+ Use LF_Event_Binder to handle the bind/unbind calls into the
+ LF_Event.
-Fri Jul 27 11:09:25 2001 Chad Elliott <elliott_c@ociweb.com>
+ * tao/Makefile:
+ * tao/Makefile.bor:
+ * tao/TAO.dsp:
+ * tao/TAO_Static.dsp:
+ Add new files to the projects and Makefiles.
- * tests/RTCORBA/Banded_Connections/bands.hpux:
+ * tao/Invocation.cpp:
+ * tao/Wait_On_Read.cpp:
+ * tao/Wait_On_Reactor.cpp:
+ * tao/Synch_Reply_Dispatcher.h:
+ * tao/Synch_Reply_Dispatcher.cpp:
+ Remove the reply_received() flag from Synch_Reply_Dispatcher,
+ the LF_Event state is enough to know what happens.
- Added to fix the runtime problem on HP-UX.
+Thu Jul 26 18:00:12 2001 Carlos O'Ryan <coryan@uci.edu>
- * tests/RTCORBA/Banded_Connections/run_test.pl:
- * tests/RTCORBA/Client_Propagated/client.cpp:
- * tests/RTCORBA/Client_Propagated/server.cpp:
- * tests/RTCORBA/MT_Client_Protocol_Priority/run_test.pl:
- * tests/RTCORBA/Server_Declared/run_test.pl:
+ * tao/Strategies/advanced_resource.cpp:
+ Fixed typo in last commit.
+
+Thu Jul 26 16:50:46 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * Part of the fixes for
+ http://ace.cs.wustl.edu/bugzilla/show_bug.cgi?id=886
+
+ the changes also close the following bug:
+
+ http://ace.cs.wustl.edu/bugzilla/show_bug.cgi?id=296
+
+ * tao/Leader_Follower_Flushing_Strategy.h:
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+ New flushing strategy that participates in the Leader/Followers
+ protocol.
+ To support this several changes to the Leader/Followers
+ implementation were required. The most important involved using
+ some abstract representation for the events that the
+ Leader/Followers wait for, in the old days there were only reply
+ events, so there was no need to abstract anything, but now the
+ Leader/Followers set can wait for both 'message flushed' events,
+ as well as 'reply received'.
+ With this explicit representation for events at hand it was
+ easier to encapsulate the Leader/Followers wait loop in
+ TAO_Leader_Follower class, instead of hidden in
+ Wait_On_Leader_Follower.
+ To match the events that L/F waits for and the threads waiting
+ for them we addd a class that represents a Follower thread.
+ These TAO_Follower objects had to implement an intrusive list
+ for fast addition into the follower set, once that intrusive
+ list was implemented adding a free list was trivial, and thus we
+ could solve bug 296 easily too.
+
+ * tao/Asynch_Queued_Message.cpp:
+ * tao/Synch_Queued_Message.cpp:
+ Use the TAO_LF_Event methods to signal any waiters when the
+ state changes.
+
+ * tao/Follower.h:
+ * tao/Follower.inl:
+ * tao/Follower.cpp:
+ This class represents a thread playing the Follower role. It
+ contains the condition variable used by the thread.
+ The class provides the necessary hooks to implement an intrusive
+ linked list.
- Corrections to fix some of the RTCORBA runtime test problems for
- HP-UX. These tests still have some problems (especially with
- SHMIOP).
+ * tao/Invocation.cpp:
+ The waiting strategy wants the complete Synch_Reply_Dispatcher,
+ not just the reply_received flag.
+
+ * tao/LF_Event.h:
+ * tao/LF_Event.inl:
+ * tao/LF_Event.cpp:
+ New class to represent events that the Leader/Followers loop
+ waits for. Used as a base class for both TAO_Queued_Message and
+ for TAO_Synch_Reply.
+
+ * tao/LF_Event_Loop_Thread_Helper.h:
+ * tao/LF_Event_Loop_Thread_Helper.inl:
+ * tao/LF_Event_Loop_Thread_Helper.cpp:
+ Move helper class to its own file, no sense in exposing it to
+ everybody through the Leader_Follower.h file.
+
+ * tao/Leader_Follower.h:
+ * tao/Leader_Follower.i:
+ * tao/Leader_Follower.cpp:
+ Add free list for TAO_Follower, as well as allocation and
+ deallocation methods.
+ Move Leader/Followers main loop to this class.
+ Move LF_Strategy and friends to their own files.
-Fri Jul 27 10:50:42 2001 Jeff Parsons <parsons@cs.wustl.edu>
+ * tao/ORB_Core.h:
+ * tao/ORB_Core.i:
+ * tao/ORB_Core.cpp:
+ Removed the TSS Leader/Followers condition variable, the
+ Leader/Followers free list implements the same optimization with
+ less problems (i.e. without bug 296).
- * tests/Smart_Proxies/Benchmark/Makefile:
- * tests/Smart_Proxies/Policy/Makefile:
+ * tao/Queued_Message.h:
+ * tao/Queued_Message.cpp:
+ * tao/Synch_Reply_Dispatcher.h:
+ * tao/Synch_Reply_Dispatcher.cpp:
+ This class derives from TAO_LF_Event now. Any state or methods
+ required to detect timeouts, closed connections or transmition
+ errors are in the base class.
- Replaced VLDLIBS with TAO_SRVR_LIBS for the server
- target in each Makefile, in order to pull in
- TAO_PortableServer. Thanks to Ekkehard Hoffmann
- <ehoffman@fzi.de> for pointing out the link errors.
+ * tao/Reply_Dispatcher.h:
+ * tao/Asynch_Reply_Dispatcher.h:
+ * tao/Asynch_Reply_Dispatcher.cpp:
+ Remove the dispatcher_bound() calls, they are no longer required
+ to match follower threads and their reply dispatchers, this is
+ now done in the TAO_LF_Event::bind() method, called from
+ TAO_Leader_Follower::wait_for_event()
-Thu Jul 26 22:41:00 2001 Craig Rodrigues <crodrigu@bbn.com>
+ * tao/Transport.h:
+ * tao/Transport.cpp:
- * orbsvcs/orbsvcs/AV/AVStreams_i.h:
+ * tao/Transport_Mux_Strategy.h:
+ * tao/Transport_Mux_Strategy.cpp:
+ * tao/Muxed_TMS.cpp:
+ * tao/Exclusive_TMS.cpp:
+ Since there is no need to call dispatcher_bound() anymore the
+ bind_dispatcher() methods were simplified.
+
+ * tao/Wait_On_Leader_Follower.h:
+ * tao/Wait_On_Leader_Follower.cpp:
+ * tao/Wait_On_Reactor.h:
+ * tao/Wait_On_Reactor.cpp:
+ * tao/Wait_On_Read.h:
+ * tao/Wait_On_Read.cpp:
+ * tao/Wait_Strategy.h:
+ * tao/Wait_Strategy.cpp:
+ Use a TAO_Synch_Reply_Dispatcher to wait for a reply. The hack
+ using a reply_received flag + a cond.var. was too ugly, plus it
+ was tightly coupling the Leader/Followers loop to the reply
+ dispatching logic.
- Make TAO_FlowConnection and TAO_MMDevice virtually
- inherit TAO_PropertySet. Thanks to Rob Ruff <rruff@scires.com>
- for pointing this out.
+ * tao/default_resource.h:
+ * tao/default_resource.cpp:
+ Made Leader_Follower_Flushing_Strategy the default.
-Thu Jul 26 21:48:00 2001 Craig Rodrigues <crodrigu@bbn.com>
+ * tao/orbconf.h:
+ * tao/default_client.cpp:
+ Made Muxed_TMS the default
+
+ * tao/LF_Strategy.h:
+ * tao/LF_Strategy.inl:
+ * tao/LF_Strategy.cpp:
+ * tao/LF_Strategy_Complete.h:
+ * tao/LF_Strategy_Complete.inl:
+ * tao/LF_Strategy_Complete.cpp:
+ Move the LF_Strategy classes to their own files, no sense in
+ exposing them to everybody through the Leader_Follower.h file.
+
+ * tao/Follower_Auto_Ptr.h:
+ * tao/Follower_Auto_Ptr.inl:
+ * tao/Follower_Auto_Ptr.cpp:
+ Helper class to automatically allocate and deallocate
+ TAO_Follower objects from the Leader/Followers set.
- * orbsvcs/tests/AVStreams/mpeg/*: REMOVED
+ * tao/GIOP_Message_Base.cpp:
+ * tao/GIOP_Message_Lite.cpp:
+ * tao/Reactor_Registry.cpp:
+ Must #include the "LF_Strategy.h" file explicitly.
- Example uses archaic version of AVStreams and does not
- work well.
+ * tao/TAO.dsp:
+ * tao/TAO_Static.dsp:
+ * tao/Makefile:
+ * tao/Makefile.bor:
+ * tao/Strategies/TAO_Strategies.dsp:
+ * tao/Strategies/TAO_Strategies_Static.dsp:
+ * tao/Strategies/Makefile:
+ * tao/Strategies/Makefile.bor:
+ Add new files to the projects and Makefile
- * orbsvcs/tests/AVStreams/mpeg/README.uav: (added)
-Thu Jul 26 17:12:00 2001 Ossama Othman <ossama@uci.edu>
+ * tao/Strategies/advanced_resource.cpp:
+ * tao/Strategies/LF_Strategy_Null.h:
+ * tao/Strategies/LF_Strategy_Null.inl:
+ * tao/Strategies/LF_Strategy_Null.cpp:
+ Move the Null Leader/Follower Strategy to the TAO_Strategies
+ library, it was in TAO, but was only used here.
- * tao/default_resource.cpp (get_parser_names):
+ * tao/RTPortableServer/TAO_RTPortableServer.dsp:
+ Fixed missing libraries in link line.
- Fixed problem where the FILE and DLL parser Service Objects were
- not inserted into the parser registry. This problem surfaced
- when attempting to dynamically load the ORB, and manifested
- itself as a CORBA::INV_OBJREF exception when attempting to
- destringify an IOR such as "file://foo.ior".
+ * tao/TAO.dsw:
+ Add missing dependencies for RTPortableServer and RTCORBA
Thu Jul 26 09:44:00 2001 Craig Rodrigues <crodrigu@bbn.com>