diff options
Diffstat (limited to 'TAO/ChangeLogs/ChangeLog-02a')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 493 |
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> |