diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-01-12 11:32:05 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-01-12 11:32:05 +0000 |
commit | 39821fb9b116e2a54f2458e58de8b40eda8ccdd3 (patch) | |
tree | 914fd5afe15dbbff79add22e3811f9d58fb8fd8c | |
parent | fa2f2a87da34c8c412e03372b6e6701c031378ab (diff) | |
download | ATCD-39821fb9b116e2a54f2458e58de8b40eda8ccdd3.tar.gz |
ChangeLogTag:Wed Jan 10 23:30:21 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
45 files changed, 702 insertions, 203 deletions
diff --git a/ChangeLog b/ChangeLog index be14fe401c9..7226f77fa7f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,84 @@ +Wed Jan 10 23:30:21 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/FILE_Addr.cpp (set): Replace (sizeof this->filename_) + with (sizeof this->filename_ / sizeof (ACE_TCHAR)). Thanks to + Matthias Wittig <m.wittig@com-on.de> for reporting this. + +Tue Jan 9 07:27:19 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Containers_T.h: Clarified that the ACE_Ordered_Multiset class + allows duplicates. Thanks to Albert Wijna + <albert.wijnja@meco.nl> for clarifying this. + +Sat Jan 6 10:20:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/File_Lock.{h,inl}: Made the get_handle() method const. + Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for + reporting this. + + * ace/TP_Reactor.h: + * ace/Get_Opt.h: + * ace/Caching_Utility_T.h: Added "ACE_UNIMPLEMENTED_FUNC" macros + for all copy constructors and assignment operators. Thanks to + Johnny Willemsen <johnny.willemsen@meco.nl> for reporting this. + +Fri Jan 5 01:09:28 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * performance-tests/Misc/context_switch_time.cpp (get_options), + * performance-tests/Misc/preempt.cpp (open), + * examples/Reactor/Misc/pingpong.cpp (run_svc), + * examples/Reactor/Misc/notification.cpp (main), + * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp (main), + * examples/Shared_Malloc/Options.cpp (print_usage_and_die), + * examples/Service_Configurator/IPC-tests/client/: Updated all + these programs so that don't abort via %a, but instead call + ACE_OS::exit(). Thanks to Mike Curtis <mccurry@my-deja.com> for + suggesting this. + + * apps/Gateway/Peer/Options.cpp (print_usage_and_die): Make sure to + actually *die* when we're done with this function! Thanks to + Mike Curtis <mccurry@my-deja.com> for suggesting this. + +Thu Jan 4 00:10:26 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Select_Reactor_T.i: The cancel_timer() method should return the + number of events canceled, rather than 0 or 1. Thanks to Joe + Guan <jguan@mistwireless.com> for reporting this and providing + the fix. + + * ace/Synch.h: Added an acquire (ACE_Time_Value &) method to ACE_Null_Mutex + so that this will work properly when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is enabled. Thanks to Yuriy + Zaporozhets <zaz@internet-zahav.net> for reporting this. + +Wed Jan 3 23:00:52 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Lib_Find.cpp (ldfind), + * ace/Makefile.bor (CFLAGS), + * include/makeinclude/outputdir.bor (OBJDIR), + * ace/config-win32-msvc.h: Added support for the new ACE_LD_DECORATOR_STR + macro which is used to work around the fact that Borland + attaches a so-called "decorator suffix" to all library names. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/Lib_Find.h: Fixed a typo where ACE_LIB_FIND_H was misspelled. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/SOCK_Stream.i, + ace/MEM_Stream.i: Updated the calls to ACE_OS::shutdown() to use + the new macros described below! + + * ace/OS.h: Added better support for the ACE_OS::shutdown() second + parmeter in the form of new macros ACE_SHUTDOWN_READ, + ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH. Thanks to Mike + Curtis <mccurry@my-deja.com> for suggesting this. + + * ace/SOCK_Stream.h: Clarified the role of the timeout parameters in + the various methods. Thanks to Allen Broadman + <broadmana@plural.com> for motivating this. + Thu Jan 11 17:24:30 2001 Carlos O'Ryan <coryan@uci.edu> * Makefile: @@ -14,17 +95,17 @@ Thu Jan 11 05:38:24 2001 Balachandran Natarajan <bala@cs.wustl.edu> 5.1 compilers. The change that was reverted is this Thu Jan 4 17:14:33 2001 Balachandran Natarajan - <bala@cs.wustl.edu> - - * ace/Handle_Set.cpp: Changed the macro - - ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to - - ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) - ACE_Handle_Set::WORDSIZE)). This seems to be a better - fix. Thanks to David Allen <dallen@storm.com> for suggesting - this. - + <bala@cs.wustl.edu> + + * ace/Handle_Set.cpp: Changed the macro + + ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to + + ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) + ACE_Handle_Set::WORDSIZE)). This seems to be a better + fix. Thanks to David Allen <dallen@storm.com> for suggesting + this. + Tue Jan 9 09:53:53 2001 Carlos O'Ryan <coryan@uci.edu> * tests/MEM_Stream_Test.cpp: @@ -93,10 +174,10 @@ Thu Jan 04 17:07:48 2001 Luther Baker <luther@cs.wustl.edu> Thu Jan 4 15:34:14 2001 Luther J Baker <luther@cs.wustl.edu> - * ace/ace_dll.dsp + * ace/ace_dll.dsp - Added PACE library to the ACE DLL project file. - (also changed the library search path) + Added PACE library to the ACE DLL project file. + (also changed the library search path) Wed Jan 3 17:24:11 2001 Darrell Brunsch <brunsch@uci.edu> diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index be14fe401c9..7226f77fa7f 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,3 +1,84 @@ +Wed Jan 10 23:30:21 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/FILE_Addr.cpp (set): Replace (sizeof this->filename_) + with (sizeof this->filename_ / sizeof (ACE_TCHAR)). Thanks to + Matthias Wittig <m.wittig@com-on.de> for reporting this. + +Tue Jan 9 07:27:19 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Containers_T.h: Clarified that the ACE_Ordered_Multiset class + allows duplicates. Thanks to Albert Wijna + <albert.wijnja@meco.nl> for clarifying this. + +Sat Jan 6 10:20:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/File_Lock.{h,inl}: Made the get_handle() method const. + Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for + reporting this. + + * ace/TP_Reactor.h: + * ace/Get_Opt.h: + * ace/Caching_Utility_T.h: Added "ACE_UNIMPLEMENTED_FUNC" macros + for all copy constructors and assignment operators. Thanks to + Johnny Willemsen <johnny.willemsen@meco.nl> for reporting this. + +Fri Jan 5 01:09:28 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * performance-tests/Misc/context_switch_time.cpp (get_options), + * performance-tests/Misc/preempt.cpp (open), + * examples/Reactor/Misc/pingpong.cpp (run_svc), + * examples/Reactor/Misc/notification.cpp (main), + * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp (main), + * examples/Shared_Malloc/Options.cpp (print_usage_and_die), + * examples/Service_Configurator/IPC-tests/client/: Updated all + these programs so that don't abort via %a, but instead call + ACE_OS::exit(). Thanks to Mike Curtis <mccurry@my-deja.com> for + suggesting this. + + * apps/Gateway/Peer/Options.cpp (print_usage_and_die): Make sure to + actually *die* when we're done with this function! Thanks to + Mike Curtis <mccurry@my-deja.com> for suggesting this. + +Thu Jan 4 00:10:26 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Select_Reactor_T.i: The cancel_timer() method should return the + number of events canceled, rather than 0 or 1. Thanks to Joe + Guan <jguan@mistwireless.com> for reporting this and providing + the fix. + + * ace/Synch.h: Added an acquire (ACE_Time_Value &) method to ACE_Null_Mutex + so that this will work properly when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is enabled. Thanks to Yuriy + Zaporozhets <zaz@internet-zahav.net> for reporting this. + +Wed Jan 3 23:00:52 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Lib_Find.cpp (ldfind), + * ace/Makefile.bor (CFLAGS), + * include/makeinclude/outputdir.bor (OBJDIR), + * ace/config-win32-msvc.h: Added support for the new ACE_LD_DECORATOR_STR + macro which is used to work around the fact that Borland + attaches a so-called "decorator suffix" to all library names. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/Lib_Find.h: Fixed a typo where ACE_LIB_FIND_H was misspelled. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/SOCK_Stream.i, + ace/MEM_Stream.i: Updated the calls to ACE_OS::shutdown() to use + the new macros described below! + + * ace/OS.h: Added better support for the ACE_OS::shutdown() second + parmeter in the form of new macros ACE_SHUTDOWN_READ, + ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH. Thanks to Mike + Curtis <mccurry@my-deja.com> for suggesting this. + + * ace/SOCK_Stream.h: Clarified the role of the timeout parameters in + the various methods. Thanks to Allen Broadman + <broadmana@plural.com> for motivating this. + Thu Jan 11 17:24:30 2001 Carlos O'Ryan <coryan@uci.edu> * Makefile: @@ -14,17 +95,17 @@ Thu Jan 11 05:38:24 2001 Balachandran Natarajan <bala@cs.wustl.edu> 5.1 compilers. The change that was reverted is this Thu Jan 4 17:14:33 2001 Balachandran Natarajan - <bala@cs.wustl.edu> - - * ace/Handle_Set.cpp: Changed the macro - - ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to - - ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) - ACE_Handle_Set::WORDSIZE)). This seems to be a better - fix. Thanks to David Allen <dallen@storm.com> for suggesting - this. - + <bala@cs.wustl.edu> + + * ace/Handle_Set.cpp: Changed the macro + + ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to + + ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) + ACE_Handle_Set::WORDSIZE)). This seems to be a better + fix. Thanks to David Allen <dallen@storm.com> for suggesting + this. + Tue Jan 9 09:53:53 2001 Carlos O'Ryan <coryan@uci.edu> * tests/MEM_Stream_Test.cpp: @@ -93,10 +174,10 @@ Thu Jan 04 17:07:48 2001 Luther Baker <luther@cs.wustl.edu> Thu Jan 4 15:34:14 2001 Luther J Baker <luther@cs.wustl.edu> - * ace/ace_dll.dsp + * ace/ace_dll.dsp - Added PACE library to the ACE DLL project file. - (also changed the library search path) + Added PACE library to the ACE DLL project file. + (also changed the library search path) Wed Jan 3 17:24:11 2001 Darrell Brunsch <brunsch@uci.edu> diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index be14fe401c9..7226f77fa7f 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,84 @@ +Wed Jan 10 23:30:21 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/FILE_Addr.cpp (set): Replace (sizeof this->filename_) + with (sizeof this->filename_ / sizeof (ACE_TCHAR)). Thanks to + Matthias Wittig <m.wittig@com-on.de> for reporting this. + +Tue Jan 9 07:27:19 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Containers_T.h: Clarified that the ACE_Ordered_Multiset class + allows duplicates. Thanks to Albert Wijna + <albert.wijnja@meco.nl> for clarifying this. + +Sat Jan 6 10:20:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/File_Lock.{h,inl}: Made the get_handle() method const. + Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for + reporting this. + + * ace/TP_Reactor.h: + * ace/Get_Opt.h: + * ace/Caching_Utility_T.h: Added "ACE_UNIMPLEMENTED_FUNC" macros + for all copy constructors and assignment operators. Thanks to + Johnny Willemsen <johnny.willemsen@meco.nl> for reporting this. + +Fri Jan 5 01:09:28 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * performance-tests/Misc/context_switch_time.cpp (get_options), + * performance-tests/Misc/preempt.cpp (open), + * examples/Reactor/Misc/pingpong.cpp (run_svc), + * examples/Reactor/Misc/notification.cpp (main), + * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp (main), + * examples/Shared_Malloc/Options.cpp (print_usage_and_die), + * examples/Service_Configurator/IPC-tests/client/: Updated all + these programs so that don't abort via %a, but instead call + ACE_OS::exit(). Thanks to Mike Curtis <mccurry@my-deja.com> for + suggesting this. + + * apps/Gateway/Peer/Options.cpp (print_usage_and_die): Make sure to + actually *die* when we're done with this function! Thanks to + Mike Curtis <mccurry@my-deja.com> for suggesting this. + +Thu Jan 4 00:10:26 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Select_Reactor_T.i: The cancel_timer() method should return the + number of events canceled, rather than 0 or 1. Thanks to Joe + Guan <jguan@mistwireless.com> for reporting this and providing + the fix. + + * ace/Synch.h: Added an acquire (ACE_Time_Value &) method to ACE_Null_Mutex + so that this will work properly when + ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is enabled. Thanks to Yuriy + Zaporozhets <zaz@internet-zahav.net> for reporting this. + +Wed Jan 3 23:00:52 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu> + + * ace/Lib_Find.cpp (ldfind), + * ace/Makefile.bor (CFLAGS), + * include/makeinclude/outputdir.bor (OBJDIR), + * ace/config-win32-msvc.h: Added support for the new ACE_LD_DECORATOR_STR + macro which is used to work around the fact that Borland + attaches a so-called "decorator suffix" to all library names. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/Lib_Find.h: Fixed a typo where ACE_LIB_FIND_H was misspelled. + Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting + this. + + * ace/SOCK_Stream.i, + ace/MEM_Stream.i: Updated the calls to ACE_OS::shutdown() to use + the new macros described below! + + * ace/OS.h: Added better support for the ACE_OS::shutdown() second + parmeter in the form of new macros ACE_SHUTDOWN_READ, + ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH. Thanks to Mike + Curtis <mccurry@my-deja.com> for suggesting this. + + * ace/SOCK_Stream.h: Clarified the role of the timeout parameters in + the various methods. Thanks to Allen Broadman + <broadmana@plural.com> for motivating this. + Thu Jan 11 17:24:30 2001 Carlos O'Ryan <coryan@uci.edu> * Makefile: @@ -14,17 +95,17 @@ Thu Jan 11 05:38:24 2001 Balachandran Natarajan <bala@cs.wustl.edu> 5.1 compilers. The change that was reverted is this Thu Jan 4 17:14:33 2001 Balachandran Natarajan - <bala@cs.wustl.edu> - - * ace/Handle_Set.cpp: Changed the macro - - ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to - - ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) - ACE_Handle_Set::WORDSIZE)). This seems to be a better - fix. Thanks to David Allen <dallen@storm.com> for suggesting - this. - + <bala@cs.wustl.edu> + + * ace/Handle_Set.cpp: Changed the macro + + ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to + + ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int) + ACE_Handle_Set::WORDSIZE)). This seems to be a better + fix. Thanks to David Allen <dallen@storm.com> for suggesting + this. + Tue Jan 9 09:53:53 2001 Carlos O'Ryan <coryan@uci.edu> * tests/MEM_Stream_Test.cpp: @@ -93,10 +174,10 @@ Thu Jan 04 17:07:48 2001 Luther Baker <luther@cs.wustl.edu> Thu Jan 4 15:34:14 2001 Luther J Baker <luther@cs.wustl.edu> - * ace/ace_dll.dsp + * ace/ace_dll.dsp - Added PACE library to the ACE DLL project file. - (also changed the library search path) + Added PACE library to the ACE DLL project file. + (also changed the library search path) Wed Jan 3 17:24:11 2001 Darrell Brunsch <brunsch@uci.edu> diff --git a/TAO/docs/index.html b/TAO/docs/index.html index 101380a0e71..337fe854ab0 100644 --- a/TAO/docs/index.html +++ b/TAO/docs/index.html @@ -20,23 +20,23 @@ HREF="http://www.omg.org/library/c2indx.html">CORBA</a> Documentation</h3> <dt>TAO <a HREF="http://www.cs.wustl.edu/~schmidt/corba-research-realtime.html">Technical Papers</a> </dt><P> <dt>TAO <a HREF="http://www.cs.wustl.edu/~schmidt/TAO/index.html">Tutorials</a></dt><P> - <dt>TAO <a HREF="releasenotes/index.html">Release Notes</a> </dt><P> + <dt>TAO <a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/releasenotes/index.html">Release Notes</a> </dt><P> <dt><A HREF="http://www.theaceorb.com">OCI</A> TAO <a HREF="http://www.theaceorb.com/faq/">FAQ</a> </dt><P> - <dt><a HREF="components.html">ORB Configuration Options</a> </dt><P> - <dt>TAO <a HREF="compiler.html">IDL Compiler Options</a> </dt><P> - <dt><a HREF="orbsvcs.html">ORB Services Directories</a> </dt><P> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/components.html">ORB Configuration Options</a> </dt><P> + <dt>TAO <a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/compiler.html">IDL Compiler Options</a> </dt><P> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/orbsvcs.html">ORB Services Directories</a> </dt><P> </dl> </td> <td><font SIZE="+1"><dl> - <dt>TAO <a href="rtcorba/index.html">Real-Time CORBA</a> </dt> + <dt>TAO <a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/rtcorba/index.html">Real-Time CORBA</a> </dt> <dt> </dt> - <dt><a HREF="INS.html">Interoperable Naming Service</a> </dt><P> - <dt><a HREF="implrepo/">Implementation Repository</a> </dt><P> - <dt>ACE+TAO <a HREF="minimumTAO.html">Subsetting</a></dt><p> - <dt>TAO <a href="../../docs/exceptions.html">Exception Handling</a></dt><p> - <dt><a HREF="Tags.html">Tags and Magic Numbers</a> </dt><P> - <dt><a HREF="pluggable_protocols/index.html">Writing Pluggable Protocols</a> </dt><P> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/INS.html">Interoperable Naming Service</a> </dt><P> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/implrepo/">Implementation Repository</a> </dt><P> + <dt>ACE+TAO <a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/minimumTAO.html">Subsetting</a></dt><p> + <dt>TAO <a href="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/exceptions.html">Exception Handling</a></dt><p> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/Tags.html">Tags and Magic Numbers</a> </dt><P> + <dt><a HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/pluggable_protocols/index.html">Writing Pluggable Protocols</a> </dt><P> </dl> </font> </td> diff --git a/TAO/docs/minimumTAO.html b/TAO/docs/minimumTAO.html index 66a65a3c243..6603055f8b4 100644 --- a/TAO/docs/minimumTAO.html +++ b/TAO/docs/minimumTAO.html @@ -17,16 +17,26 @@ <strong>Minimum TAO</strong> <p> -We have added support for the new <a href = -"http://www.omg.org/cgi-bin/doc?orbos/98-08-04.pdf"><em>minimumCORBA +In addition to our work on <A +HREF="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/ACE-subsets.html">ACE +subsetting</A>, we have also been reducing the footprint of TAO. We +are pursuing two complementary strategies to reduce TAO's footprint: + +<OL> + +<LI> <B><EM>Implicit subsetting</EM></B>, e.g., by reducing + dependencies in the TAO library so that programs need not link + unused TAO components. <P> + +<LI> <B><EM>Explicit subsetting</EM></B>, e.g., by supporting the <a +href="http://www.omg.org/cgi-bin/doc?orbos/98-08-04.pdf"><em>minimumCORBA </em></a> specification to <a href = "http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>. The <em> minimumCORBA </em> specification removes the following features from -the CORBA <a href = "http://www.omg.org/library/c2indx.html">2.2</a> -specification. - +the <a href +="http://www.omg.org/technology/documents/formal/">CORBA</a> +specification. <P> <ul> - <li>Dynamic Skeleton Interface<br> <li>Dynamic Invocation Interface<br> <li>Dynamic Any<br> @@ -34,24 +44,25 @@ specification. <li>Interface Repository<br> <li>Advanced POA features<br> <li>CORBA/COM interworking<br> - </ul> -<p> +</OL> -To minimize the footprint of TAO, we first <a href= +The implicit subsetting of TAO requires no explicit application +programmer intervention. In contrast, to minimize the footprint of +TAO explicitly, you must first <a href= "http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html">configure</a> ACE to support only those <a href = "http://www.cs.wustl.edu/~schmidt/ACE_wrappers/docs/ACE-subsets.html">components</a> -that are required by TAO. Secondly, we <a href = +that are required by TAO. Second, you must <a href = "http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/TAO-INSTALL.html">configure</a> TAO to only support the components specified by the <em>minimumCORBA</em> specification. The following two tables show -the footprint reduction achieved. Note that the IDL Compiler column -refers to the code required to collaborate between the IDL compiler -and the ORB, and not to the code for the IDL compiler itself. -<p> -<hr> -<p> +the footprint reduction achievable via explicit subsetting. Note that +the IDL Compiler column refers to the code required to collaborate +between the IDL compiler and the ORB, and not to the code for the IDL +compiler itself. + +<p><hr width=50% align=left> <p> Note: All measurement are for ACE 5.0 and TAO 1.0 using egcs-2.91.60 on SunOS5.7<P> @@ -77,9 +88,7 @@ ACE, as well). If you're using recent versions of GNU GCC, you can use the <A HREF="../ACE-INSTALL.html#repo">-frepo</A> option, which typically reduces the footprint by another 25 percent. <P> -<p> -<hr> -<p> +<p><hr width=50% align=left> <p> <center><table cellpadding=4 border=4> <tr> @@ -182,11 +191,9 @@ typically reduces the footprint by another 25 percent. <P> <td align=center>0 <td align=center>100 <td align=center>100 -</table></center><p> +</table></center> -<hr> - -<p> +<p><hr width=50% align=left> <p> <center><table cellpadding=4 border=4> <tr> @@ -255,5 +262,213 @@ typically reduces the footprint by another 25 percent. <P> <td align=center>100 </table></center><p> +<HR> + +<h3><a name="Status">ACE+TAO Subsetting Work in Progress</a></h3> + +We've been tracking the footprint reduction of ACE+TAO periodically +since April, 2000. All the statistics are available <A +HREF="http://doc.ece.uci.edu/Stats/">online</A>. As the result of +this prior work, we've identified various areas for improvement that +we're now addressing. For example, the following are the remaining +areas for ACE subsetting: + + <ul> + <li><EM><B>Log_Msg decoupling</EM></B> -- We have a good start on this, but it needs work + to finish. It might be easiest to make an abstract + base class, then have ACE_Log_Msg derive from it. That way + we could remove the exposure of all the #includes in Log_Msg.cpp + to applications that don't need it. Another alternative would + be to disable compilation of Log_Msg.cpp when ACE_NLOGGING is + enabled.<p> + + <li><EM><B>Higher layer interdependencies</EM></B> -- We haven't + exhaustively tested all possible combinations of subsets. It's possible + that there are interdependencies between some layers that + we haven't yet identified and removed.<p> + + <li><EM><B>Remove reliance on multiple inheritance</EM></B> -- Multiple + inheriance is only used in a few + places in ACE. This + isn't really a subsetting problem, but is necessary to + fully take advantage of optimizations available on C++ compilers for + embedded systems.<p> + </ul> + +We anticipate that these changes should reduce the default size of ACE +by around 100-200 kbytes.<P> + +As the effort to reduce TAO's footprint continues, we are planning +several modifications for TAO that should reduce the footprint for +both the full CORBA and minimum CORBA configurations by around 300-400 +Kbytes. The list below contains an estimate of the impact of each one +of these changes, along with the estimated effort to implement them. +</P> + +<P> + <TABLE CELLPADDING=4 BORDER=4> + <TR> + <TD>Component</TD><TD>Impact</TD><TD>Effort</TD> + <TD>Description</TD> + </TR> + <TR> + <TD>TAO</TD><TD>~95 Kb</TD><TD>2 weeks</TD> + <TD> + Make RT CORBA 1.0 support optional, thereby allowing CORBA-compliant + applications to link without incurring the overhead of TAO's + RT CORBA features. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>~50 kB</TD><TD>3 weeks</TD> + <TD> + Make the CORBA Messaging components optional. + This change requires making RT-CORBA optional first. + </TD> + </TR> + <TR> + <TD>ACE</TD><TD>14 Kb</TD><TD>4 weeks</TD> + <TD> + Implement a TAO-specific Reactor. + ACE's reactor supports a number of features that TAO does not + require. Thus, a TAO-specific implementation is an important way to + reduce the footprint. + </TD> + </TR> + <TR> + <TD>ACE</TD><TD>20 Kb</TD><TD>4 weeks</TD> + <TD> + Implement a TAO-specific Service Configurator. + TAO uses the ACE Service Configurator to dynamically configure + its strategies. In many embedded applications the set of + strategies are selected at design-time, on those platforms it + would be appropriate to disable all the features to + dynamically load components into the ORB. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>10-15 Kb</TD><TD>1-2 weeks</TD> + <TD> + Eliminate duplicate code due to instantiations of string -> + pointer maps. TAO uses several such maps, they could be replaced by a + generic version, wrapped with a fully inlined (i.e. zero + footprint) adapter for type-safety. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>3-10 Kb</TD><TD>1-2 weeks</TD> + <TD> + Make message buffering strategies optional. + TAO supports policy extensions to control the outgoing oneway and AMI + request buffers. Those policies are not used by all + applications. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>10 Kb</TD><TD>2 weeks</TD> + <TD> + Make support for multiple ORBs optional. + TAO can support multiple ORBs in the same process, but most + applications only require one. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD><20 Kb</TD><TD>1 weeks</TD> + <TD> + Use lower footprint alternatives to the + <CODE>ACE_Strategy_Acceptor</CODE> and + <CODE>ACE_Strategy_Connector</CODE> classes. + TAO is using the most flexible classes in ACE to implement + acceptors and connector, but does not take advantage of this + flexibility. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>5 Kb</TD><TD>1 week</TD> + <TD> + Move the less common transport muxing and reply waiting + strategies to an optional library. + </TD> + </TR> + <TR> + <TD>ACE+TAO</TD><TD>30 Kb</TD><TD>8 weeks</TD> + <TD> + Decouple ACE (and then TAO) from the + <CODE>ACE_Thread_Manager</CODE> component. + This component is only used in the thread-per-connection + model, if we could decouple it in ACE then TAO could be + modified to only link this component when that concurrency + model is enabled. + </TD> + </TR> + <TR> + <TD>TAO</TD><TD>>50 Kb</TD><TD>6 weeks</TD> + <TD> + Move <CODE><<=</CODE> and <CODE>>>=</CODE> + operators to separate files. + Currently TAO includes nearly 500 such operators, moving them + to separate files (grouped by component?) would eliminate them + from most applications. + </TD> + </TR> + </TABLE> +</P> + +<P>In parallel with the activities described above we are pursuing +other avenues of research to find sources of rarely used or unused +code in ACE+TAO, and to modify the software to eliminate such code. +These activities include the following:</P> + +<UL> + <LI><P> + Using profiling tools, such as gprof, Quantify and True Coverage + to find unreachable code, or code only reachable in certain + applications. + </P></LI> + <LI><P> + The code TAO's IDL compiler generates for <CODE>CORBA::Any</CODE> + operators is large, so we are evaluating designs that reduce the impact of the <CODE>CORBA::Any</CODE> + type support. TAO's IDL compiler already makes that support optional. + However, for applications that require <CODE>Anys</CODE> it may be useful to separate that code + in another file to reduce the size of generated stubs and skeletons, + without losing the opportunity to use more dynamic CORBA invocation + modes. + </P></LI> + <LI><P> + The Notification Service currently depends on the Trading service to + implement the Trader Constraint Language. We are planning to break that + dependency and factor the TCL parser into a smaller library shared + by both services. + </P></LI> + <LI><P> + TAO still contains features that are rarely or never used. + Examples include the interfaces to query the well-known services and + to dynamically discover the level of security support. Those + components should only be linked (dynamically) in applications that require them. + </P></LI> + <LI><P> + The support for interceptors currently generated by the IDL compiler + can be partially refactored into common ORB code. + Moreover, we evaluating a new implementation of interceptors + that can be configured dynamically, thereby eliminating the need for + compile-time configuration flags. + </P></LI> + <LI><P> + We are planning to provide compile-time flags to eliminate certain mandatory features + in CORBA that are not used in all applications, such as IOR + parsers (corbaloc, corbaname, etc.). + </P></LI> + <LI><P> + Finally, we will perfom more code inspections to determine if template code can be + refactored into base classes and thereby shared by many objects in + the ACE+TAO implementations. + </P></LI> +</UL> + +Although we do not yet have sufficient insights to know how much +footprint reduction these activities will afford, we anticipate these +enhancements could reduce the default footprint of TAO by another +100-200 Kbytes. + </body> </html> diff --git a/TAO/docs/releasenotes/index.html b/TAO/docs/releasenotes/index.html index 3dd2e11a667..41ebda669a4 100644 --- a/TAO/docs/releasenotes/index.html +++ b/TAO/docs/releasenotes/index.html @@ -1871,7 +1871,7 @@ Add persistence and then to add event notification</li> Point of contact: <a href="mailto:ossama@uci.edu">Ossama Othman</a> <h4>Current Status:</h4> -<p>TAO's Load Balancer currently implements the following load +<p>TAO's <A HREF="http://www.cs.wustl.edu/~schmidt/PDF/load_balancing.pdf">Load Balancer</a> currently implements the following load balancing algorithms: <ul> <li><FONT COLOR=BLUE>Round Robin</FONT> @@ -1039,7 +1039,7 @@ Caleb Epstein <cae@home.com> Bruno Marconi <bmarconi@jetstream.com> Ken Childress <kchildre@uccs.jpl.nasa.gov> Michael Kramer <kramer@ave.ac.agit.de> -Johnny Willemsen <jwillemsen@remedy.nl> +Johnny Willemsen <jwillemsen@meco.nl> Jonathan Astle <JNASTLE@dera.gov.uk> Javier Lopez Sanchez <jlopez@uida.es> Nir Drang <Nir@bandwiz.com> @@ -1111,7 +1111,14 @@ Bogdan Jeram <bjeram@eso.org> Sebastian Schubert <sschuber@et.htwk-leipzig.de> Li Zhou <lizhou@doc.ece.uci.edu> Shivakumar Patil <shivakumar.patil@stdc.com> +Steve Olson <Steve_Olson@illinova.com> +Allen Broadman <broadmana@plural.com> +Yuriy Zaporozhets <zaz@internet-zahav.net> +Joe Guan <jguan@mistwireless.com> +Attilio Dona <dona@sodalia.it> McGanahan Skjellifetti <cmeier@concentus-tech.com> +Matthias Wittig <m.wittig@com-on.de> +Sharath R. Cholleti <sharath@cs.wustl.edu> David Allen <dallen@storm.com> I would particularly like to thank Paul Stephenson, who worked with me diff --git a/ace/Caching_Utility_T.h b/ace/Caching_Utility_T.h index 3714215f148..5a6ba2239cc 100644 --- a/ace/Caching_Utility_T.h +++ b/ace/Caching_Utility_T.h @@ -75,6 +75,9 @@ protected: /// Whether the cleanup_strategy should be destroyed or not. int delete_cleanup_strategy_; + + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Pair_Caching_Utility (const ACE_Pair_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) }; //////////////////////////////////////////////////////////////////////////////// @@ -132,6 +135,9 @@ protected: /// Whether the cleanup_strategy should be destroyed or not. int delete_cleanup_strategy_; +private: + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Recyclable_Handler_Caching_Utility (const ACE_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) }; /////////////////////////////////////////////////////////////////////////// @@ -197,6 +203,9 @@ protected: */ size_t marked_as_closed_entries_; +private: + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Refcounted_Recyclable_Handler_Caching_Utility (const ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) }; //////////////////////////////////////////////////////////////////////////////////////// @@ -257,6 +266,9 @@ protected: /// Whether the cleanup_strategy should be destroyed or not. int delete_cleanup_strategy_; +private: + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Handler_Caching_Utility (const ACE_Handler_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) }; /////////////////////////////////////////////////////////////////////////// @@ -314,6 +326,10 @@ protected: /// Whether the cleanup_strategy should be destroyed or not. int delete_cleanup_strategy_; + +private: + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Null_Caching_Utility (const ACE_Null_Caching_Utility<KEY,VALUE,CONTAINER,ITERATOR,ATTRIBUTES> &)) }; #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) diff --git a/ace/Containers_T.cpp b/ace/Containers_T.cpp index a2095a1b2fe..381fe443d23 100644 --- a/ace/Containers_T.cpp +++ b/ace/Containers_T.cpp @@ -2180,22 +2180,14 @@ ACE_Ordered_MultiSet<T>::remove (const T &item) if (node && (result == 0)) { if (node->prev_) - { - node->prev_->next_ = node->next_; - } + node->prev_->next_ = node->next_; else - { - head_ = node->next_; - } + head_ = node->next_; if (node->next_) - { - node->next_->prev_ = node->prev_; - } + node->next_->prev_ = node->prev_; else - { - tail_ = node->prev_; - } + tail_ = node->prev_; this->cur_size_--; diff --git a/ace/Containers_T.h b/ace/Containers_T.h index 5f21d5fd841..6bde6d71662 100644 --- a/ace/Containers_T.h +++ b/ace/Containers_T.h @@ -1624,15 +1624,11 @@ private: /** * @class ACE_Ordered_MultiSet * - * @brief Implement a simple ordered multiset of <T> of unbounded size. - * This class template requires that < operator semantics be - * defined for the parameterized type <T>, but does not impose - * any restriction on how that ordering operator is implemented. - * - * This implementation of an unordered set uses a circular - * linked list with a dummy node. This implementation does not - * allow duplicates, but it maintains FIFO ordering of - * insertions. + * @brief Implement a simple ordered multiset of <T> of unbounded size + * that allows duplicates. This class template requires that < + * operator semantics be defined for the parameterized type <T>, but + * does not impose any restriction on how that ordering operator is + * implemented. */ template <class T> class ACE_Ordered_MultiSet diff --git a/ace/FILE_Addr.cpp b/ace/FILE_Addr.cpp index 77906851333..53c27bf7856 100644 --- a/ace/FILE_Addr.cpp +++ b/ace/FILE_Addr.cpp @@ -73,7 +73,7 @@ ACE_FILE_Addr::set (const ACE_TCHAR *filename) ACE_OS::strlen (filename) + 1); (void) ACE_OS::strncpy (this->filename_, filename, - sizeof this->filename_); + sizeof this->filename_ / sizeof (ACE_TCHAR)); return 0; } diff --git a/ace/File_Lock.h b/ace/File_Lock.h index f1d438e5734..c68b944056a 100644 --- a/ace/File_Lock.h +++ b/ace/File_Lock.h @@ -110,7 +110,7 @@ public: int tryacquire_read (short whence = 0, off_t start = 0, off_t len = 1); /// Get underlying <ACE_HANDLE> for the file. - ACE_HANDLE get_handle (void); + ACE_HANDLE get_handle (void) const; /** * Set underlying <ACE_HANDLE>. Note that this method assumes diff --git a/ace/File_Lock.inl b/ace/File_Lock.inl index 47e97c045ab..a0dc79dcc7b 100644 --- a/ace/File_Lock.inl +++ b/ace/File_Lock.inl @@ -74,7 +74,7 @@ ACE_File_Lock::remove (int unlink_file) } ACE_INLINE ACE_HANDLE -ACE_File_Lock::get_handle (void) +ACE_File_Lock::get_handle (void) const { // ACE_TRACE ("ACE_File_Lock::get_handle"); return this->lock_.handle_; diff --git a/ace/Get_Opt.h b/ace/Get_Opt.h index 4c9bb421908..6d11c90fb14 100644 --- a/ace/Get_Opt.h +++ b/ace/Get_Opt.h @@ -140,6 +140,9 @@ private: /// Holds the option string. const ACE_TCHAR *optstring_; + + ACE_UNIMPLEMENTED_FUNC (ACE_Get_Opt (const ACE_Get_Opt &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Get_Opt &operator= (const ACE_Get_Opt &)) }; #if defined (__ACE_INLINE__) diff --git a/ace/Lib_Find.cpp b/ace/Lib_Find.cpp index e42541ae61b..edda500268a 100644 --- a/ace/Lib_Find.cpp +++ b/ace/Lib_Find.cpp @@ -26,7 +26,12 @@ ACE_Lib_Find::ldfind (const ACE_TCHAR filename[], ACE_TCHAR tempcopy[MAXPATHLEN + 1]; ACE_TCHAR searchpathname[MAXPATHLEN + 1]; - ACE_TCHAR searchfilename[MAXPATHLEN + 2]; +#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) + ACE_TCHAR decorator[] = ACE_LD_DECORATOR_STR; + ACE_TCHAR searchfilename[MAXPATHLEN + sizeof(decorator) / sizeof (ACE_TCHAR)]; +#else + ACE_TCHAR searchfilename[MAXPATHLEN + 1]; +#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ // Create a copy of filename to work with. if (ACE_OS::strlen (filename) + 1 @@ -97,20 +102,18 @@ ACE_Lib_Find::ldfind (const ACE_TCHAR filename[], return -1; } -#if defined (ACE_WIN32) && defined (_DEBUG) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) +#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) size_t len_searchfilename = ACE_OS::strlen (searchfilename); if (! got_suffix) - { - searchfilename [len_searchfilename] = 'd'; - searchfilename [len_searchfilename+1] = 0; - } + ACE_OS_String::strcpy (searchfilename + len_searchfilename, + decorator); for (int tag = 1; tag >= 0; tag --) { if (tag == 0) searchfilename [len_searchfilename] = 0; -#endif /* ACE_WIN32 && _DEBUG && !ACE_DISABLE_DEBUG_DLL_CHECK */ +#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ // Use absolute pathname if there is one. if (ACE_OS::strlen (searchpathname) > 0) { @@ -313,15 +316,15 @@ ACE_Lib_Find::ldfind (const ACE_TCHAR filename[], ACE_OS::free (ld_path_temp); #endif /* ACE_WIN32 */ ACE_OS::free ((void *) ld_path); -#if defined (ACE_WIN32) && defined (_DEBUG) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) +#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) if (result == 0 || tag == 0) -#endif /* ACE_WIN32 && _DEBUG && !ACE_DISABLE_DEBUG_DLL_CHECK */ +#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ return result; } } -#if defined (ACE_WIN32) && defined (_DEBUG) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) +#if defined (ACE_WIN32) && defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK) } -#endif /* ACE_WIN32 && _DEBUG && !ACE_DISABLE_DEBUG_DLL_CHECK */ +#endif /* ACE_WIN32 && ACE_LD_DECORATOR_STR && !ACE_DISABLE_DEBUG_DLL_CHECK */ errno = ENOENT; return -1; diff --git a/ace/Lib_Find.h b/ace/Lib_Find.h index d2f275b122a..bfdc9cf5eb6 100644 --- a/ace/Lib_Find.h +++ b/ace/Lib_Find.h @@ -11,7 +11,7 @@ #ifndef ACE_LIB_FIND_H -#define ACE_LIB_FINE_H +#define ACE_LIB_FIND_H #include "ace/pre.h" #include "ace/OS.h" diff --git a/ace/MEM_Stream.i b/ace/MEM_Stream.i index 7aa77710e49..07f68fafdd0 100644 --- a/ace/MEM_Stream.i +++ b/ace/MEM_Stream.i @@ -29,7 +29,7 @@ ACE_MEM_Stream::close_reader (void) { ACE_TRACE ("ACE_MEM_Stream::close_reader"); if (this->get_handle () != ACE_INVALID_HANDLE) - return ACE_OS::shutdown (this->get_handle (), 0); + return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_READ); else return 0; } @@ -41,7 +41,7 @@ ACE_MEM_Stream::close_writer (void) { ACE_TRACE ("ACE_MEM_Stream::close_writer"); if (this->get_handle () != ACE_INVALID_HANDLE) - return ACE_OS::shutdown (this->get_handle (), 1); + return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_WRITE); else return 0; } diff --git a/ace/Makefile.bor b/ace/Makefile.bor index 9cb551ea380..22bd08b9b30 100644 --- a/ace/Makefile.bor +++ b/ace/Makefile.bor @@ -226,8 +226,8 @@ OBJFILES = \ RESOURCE = $(OBJDIR)\ace.res -CFLAGS = $(ACE_CFLAGS) -DACE_BUILD_DLL -DACE_OS_BUILD_DLL - +CFLAGS = $(ACE_CFLAGS) -DACE_BUILD_DLL -DACE_OS_BUILD_DLL \ + -DACE_LD_DECORATOR_STR=ACE_LIB_TEXT(\"$(LIB_DECORATOR)\") CPPDIR = . INCDIR_NAME = ace @@ -4970,6 +4970,30 @@ inline char *ace_cuserid(char *user) } #endif /* !ACE_LACKS_CUSERID && !ACE_HAS_ALT_CUSERID && ... */ +#if defined (SD_RECEIVE) +#define ACE_SHUTDOWN_READ SD_RECEIVE +#elif defined (SHUT_RD) +#define ACE_SHUTDOWN_READ SHUT_RD +#else +#define ACE_SHUTDOWN_READ 0 +#endif /* SD_RECEIVE */ + +#if defined (SD_SEND) +#define ACE_SHUTDOWN_WRITE SD_SEND +#elif defined (SHUT_WR) +#define ACE_SHUTDOWN_WRITE SHUT_WR +#else +#define ACE_SHUTDOWN_WRITE 1 +#endif /* SD_RECEIVE */ + +#if defined (SD_BOTH) +#define ACE_SHUTDOWN_BOTH SD_BOTH +#elif defined (SHUT_RDWR) +#define ACE_SHUTDOWN_BOTH SHUT_RDWR +#else +#define ACE_SHUTDOWN_BOTH 2 +#endif /* SD_RECEIVE */ + /** * @class ACE_OS * @@ -2906,7 +2906,7 @@ ACE_OS_TRACE ("ACE_Recursive_Thread_Mutex::release"); // the mutex into a known state... m->owner_id_ = ACE_OS::NULL_thread; - // Inform waiters that the lock is free. + // Inform a waiter that the lock is free. if (ACE_OS::cond_signal (&m->lock_available_) == -1) result = -1; } diff --git a/ace/SOCK_Stream.h b/ace/SOCK_Stream.h index 3dce7f71eb2..185f8ae6ce2 100644 --- a/ace/SOCK_Stream.h +++ b/ace/SOCK_Stream.h @@ -39,8 +39,8 @@ * blocking sockets, the call will block until action is possible; * for non-blocking sockets, EWOULDBLOCK will be returned if no * action is immediately possible. - * If <timeout> != 0, the call will wait until the relative time - * specified in *<timeout> elapses. + * If <timeout> != 0, the call will wait for data to arrive no longer + * than the relative time specified in *<timeout>. * The "_n()" I/O methods keep looping until all the data has been * transferred. These methods also work for sockets in non-blocking * mode i.e., they keep looping on EWOULDBLOCK. <timeout> is used diff --git a/ace/SOCK_Stream.i b/ace/SOCK_Stream.i index b20a07b6e56..4f483f43a03 100644 --- a/ace/SOCK_Stream.i +++ b/ace/SOCK_Stream.i @@ -27,7 +27,7 @@ ACE_SOCK_Stream::close_reader (void) { ACE_TRACE ("ACE_SOCK_Stream::close_reader"); if (this->get_handle () != ACE_INVALID_HANDLE) - return ACE_OS::shutdown (this->get_handle (), 0); + return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_READ); else return 0; } @@ -39,7 +39,7 @@ ACE_SOCK_Stream::close_writer (void) { ACE_TRACE ("ACE_SOCK_Stream::close_writer"); if (this->get_handle () != ACE_INVALID_HANDLE) - return ACE_OS::shutdown (this->get_handle (), 1); + return ACE_OS::shutdown (this->get_handle (), ACE_SHUTDOWN_WRITE); else return 0; } diff --git a/ace/Select_Reactor_T.i b/ace/Select_Reactor_T.i index 6adfe6aa8e2..6241c735589 100644 --- a/ace/Select_Reactor_T.i +++ b/ace/Select_Reactor_T.i @@ -123,8 +123,10 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::cancel_timer (ACE_Event_Handler int dont_call_handle_close) { ACE_TRACE ("ACE_Select_Reactor_T::cancel_timer"); - return this->timer_queue_ != 0 && - this->timer_queue_->cancel (handler, dont_call_handle_close); + if (this->timer_queue_ != 0) + return this->timer_queue_->cancel (handler, dont_call_handle_close); + else + return 0; } template <class ACE_SELECT_REACTOR_TOKEN> /* ACE_INLINE */ int diff --git a/ace/Synch.h b/ace/Synch.h index 6ad851c1c86..481d6d398a9 100644 --- a/ace/Synch.h +++ b/ace/Synch.h @@ -577,6 +577,7 @@ public: int remove (void); int acquire (void); + int acquire (ACE_Time_Value &timeout); int tryacquire (void); int release (void); int acquire_write (void); diff --git a/ace/TP_Reactor.h b/ace/TP_Reactor.h index d591e51f184..4f5b8d76d7b 100644 --- a/ace/TP_Reactor.h +++ b/ace/TP_Reactor.h @@ -65,6 +65,10 @@ public: ACE_EH_PTMF callback_; int dispatch_; + +private: + ACE_UNIMPLEMENTED_FUNC (ACE_EH_Dispatch_Info (const ACE_EH_Dispatch_Info &)) + ACE_UNIMPLEMENTED_FUNC (ACE_EH_Dispatch_Info &operator= (const ACE_EH_Dispatch_Info &)) }; /** diff --git a/ace/config-win32-msvc.h b/ace/config-win32-msvc.h index 58fb04fb903..a1a09b380a5 100644 --- a/ace/config-win32-msvc.h +++ b/ace/config-win32-msvc.h @@ -208,6 +208,9 @@ inline void *operator new (unsigned int, void *p) { return p; } # define ACE_INT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64d") # define ACE_UINT64_FORMAT_SPECIFIER ACE_LIB_TEXT ("%I64u") +# if !defined (ACE_LD_DECORATOR_STR) && defined (_DEBUG) +# define ACE_LD_DECORATOR_STR ACE_LIB_TEXT ("d") +# endif #endif /* _MSC_VER */ #include "ace/post.h" diff --git a/apps/Gateway/Peer/Options.cpp b/apps/Gateway/Peer/Options.cpp index 5112888b384..80c0256b619 100644 --- a/apps/Gateway/Peer/Options.cpp +++ b/apps/Gateway/Peer/Options.cpp @@ -14,7 +14,9 @@ Options *Options::instance_ = 0; void Options::print_usage_and_die (void) { - ACE_DEBUG ((LM_DEBUG, "%n [-a {C|S}:acceptor-port] [-c {C|S}:connector-port] [-C connection-id] [-h gateway-host] [-q max-queue-size] [-t timeout] [-v]\n")); + ACE_DEBUG ((LM_DEBUG, + "%n [-a {C|S}:acceptor-port] [-c {C|S}:connector-port] [-C connection-id] [-h gateway-host] [-q max-queue-size] [-t timeout] [-v]\n")); + ACE_OS::exit (1); } Options::Options (void) diff --git a/docs/ACE-subsets.html b/docs/ACE-subsets.html index bcdb7e01aeb..611c73d0105 100644 --- a/docs/ACE-subsets.html +++ b/docs/ACE-subsets.html @@ -16,7 +16,9 @@ We are currently subsetting ACE+TAO to make them more flexible and to reduce their footprint for embedded systems. This document describes -what we're doing and how to leverage our efforts. <P> +what we've done thus far, what we're planning to do next, and how to +leverage our efforts to minimize the size of your ACE+TAO +applications. <P> <HR><P> <font size=+2><strong>Contents</strong></font> @@ -25,12 +27,12 @@ what we're doing and how to leverage our efforts. <P> Libraries</a> <li><a href="#Configuration Management">Configuration Management</a> <li><a href="#Classes">Classes in Each ACE Library Subset</a> - <li><a href="#Status">Current ACE Subsetting Status</a> <li><a href="#ACE Library Size Breakdown">ACE Library Size Breakdown</a> <li><a href="#Building ACE Subsets">Building ACE Subsets</a> <li><a href="#ACE_OS Adaptation Layer">ACE_OS Adaptation Layer</a> - <li><a href="#minimumTAO">Minimum TAO</a> <li><a href="#PACE">POSIX ACE (PACE)</a> + <li><a href="#minimumTAO">Minimum TAO</a> + <li><a href="#Status">ACE+TAO Subsetting Work in Progress</a> </ol><p> @@ -434,32 +436,6 @@ XtReactor </code></pre> <hr><p> -<h3><a name="Status">Current ACE Subsetting Status</a></h3> - -The ACE subsetting effort has identified a few areas for -improvement. These will be addressed in the future:<p> - - <ul> - <li>Log_Msg cleanup: We have a good start on this, but it needs work - to finish. It might be easiest to make an abstract - base class, then have ACE_Log_Msg derive from it. That way - we could remove the exposure of all the #includes in Log_Msg.cpp - to applications that don't need it. Another alternative would - be to disable compilation of Log_Msg.cpp when ACE_NLOGGING is - enabled.<p> - - <li>Higher layer interdependencies: we haven't exhaustively - tested all possible combinations of subsets. It's possible - that there are interdependencies between some layers that - we haven't yet identified.<p> - - <li>Remove use of multiple inheritance: its only used in a few - places, in one of the SOCK classes and Service Config. This - isn't really a subsetting problem, but is necessary to - support Embedded C++.<p> - </ul><P> - - <hr><p> <h3><a name="ACE Library Size Breakdown">ACE Library Size Breakdown</a></h3> @@ -829,8 +805,6 @@ the <code>ACE_OS</code> member functions, ACE's <a href="../tests/Basic_Types_Test.cpp">Basic_Types_Test.cpp</a> for an example of usage.<p> -<a name="minimumTAO"><!--#include virtual="../TAO/docs/minimumTAO.html" --></a> - <P><HR><P> <a name="PACE"> The <A @@ -841,18 +815,20 @@ verified systems. When complete, it will offer these benefits: <P> <OL> <LI> A strict POSIX.1-like, low-level interface. Its interface is ``POSIX compatible'' by that we mean as close to POSIX.1 - as it can be, given that PACE is not an operating system. And, - to avoid name conflicts with OS APIs, all low-level - PACE function names have the <CODE>pace_</CODE> prefix. + as it can be, given that PACE is not an operating system. + To avoid name conflicts with OS APIs, all low-level + PACE function names have the <CODE>pace_</CODE> prefix. <P> <LI> The low-level interface is a C file, so that it can be used in - both C and C++ programs. + both C and C++ programs. <P> <LI> The low-level interface is partitioned into multiple files, one per POSIX.1 section, which will help linkers reduce the footprint for - statically linked applications. + statically linked applications. </OL><P> +<a name="minimumTAO"><!--#include virtual="../TAO/docs/minimumTAO.html" --></a> + <P><HR><P> Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A> home page.<BR> diff --git a/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp b/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp index b17e8a1c51e..b252488a278 100644 --- a/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp +++ b/examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp @@ -72,9 +72,12 @@ main (int argc, char *argv[]) ACE_LOG_MSG->open (argv[0]); if (argc != 2) - ACE_ERROR ((LM_ERROR, - "usage: %n input-file\n%a", - 1)); + { + ACE_ERROR ((LM_ERROR, + "usage: %n input-file\n", + 1)); + ACE_OS::exit (1); + } ACE_FIFO_Recv fifo_reader (FIFO_NAME, O_RDONLY | O_CREAT, PERMS, 0); diff --git a/examples/Reactor/Misc/notification.cpp b/examples/Reactor/Misc/notification.cpp index 556ed24089b..9183692a8b5 100644 --- a/examples/Reactor/Misc/notification.cpp +++ b/examples/Reactor/Misc/notification.cpp @@ -351,10 +351,12 @@ main (int argc, char *argv[]) ACE_LOG_MSG->open (argv[0]); if (argc < 4) - ACE_ERROR ((LM_ERROR, - "usage: %s delay interval n_threads [iterations]%a\n", - argv[0], - 1)); + { + ACE_ERROR ((LM_ERROR, + "usage: %s delay interval n_threads [iterations]\n", + argv[0])); + ACE_OS::exit (1); + } int delay = ACE_OS::atoi (argv[1]); int interval = ACE_OS::atoi (argv[2]); diff --git a/examples/Reactor/Misc/pingpong.cpp b/examples/Reactor/Misc/pingpong.cpp index 07e25a0dc53..05214da6722 100644 --- a/examples/Reactor/Misc/pingpong.cpp +++ b/examples/Reactor/Misc/pingpong.cpp @@ -209,10 +209,12 @@ run_svc (ACE_HANDLE handle) || reactor.schedule_timer (&callback, 0, SHUTDOWN_TIME) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n%a", - "reactor", - 1)); + { + ACE_ERROR ((LM_ERROR, + "%p\n", + "reactor")); + ACE_OS::exit (1); + } // Main event loop (one per process). diff --git a/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp index 48b1c7a1e0b..cec2daa0dd7 100644 --- a/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp @@ -20,7 +20,7 @@ static void print_usage_and_die (void) { ACE_OS::fprintf (stderr, "usage: %s [-p broadcast portnum]\n", - program_name); + program_name); ACE_OS::exit (1); } diff --git a/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp index ebd419aed02..c1810bf57a0 100644 --- a/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp @@ -24,9 +24,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-r rendezvous_dgram] [-c rendezvous_codgram] [-f file]\n%a", - program_name, - -1)); + "usage: %s [-r rendezvous_dgram] [-c rendezvous_codgram] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp index 58cd18df361..67460ae6712 100644 --- a/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp @@ -25,8 +25,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-d] [-f rendezvous_fifo]\n%a", - program_name, -1)); + "usage: %s [-d] [-f rendezvous_fifo]\n", + program_name)); + ACE_OS::exit (1); } static void diff --git a/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp index 92820417a4c..600bc09c5a8 100644 --- a/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp @@ -24,8 +24,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-r rendezvous] [-f file]\n%a", - program_name, -1)); + "usage: %s [-r rendezvous] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp index 05dd74dc6b3..711b1fdd581 100644 --- a/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp @@ -26,9 +26,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-d] [-r rendezvous_spipe]\n%a", - program_name, - -1)); + "usage: %s [-d] [-r rendezvous_spipe]\n", + program_name)); + ACE_OS::exit (1); } static void diff --git a/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp index 0c28532906f..764ba8d1d5e 100644 --- a/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp @@ -22,9 +22,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-r rendezvous] [-f file]%a\n", - program_name, - -1)); + "usage: %s [-r rendezvous] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp index 762b2ed9df4..efa28f3ec98 100644 --- a/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp @@ -25,9 +25,9 @@ static const char *file_name = "./remote_data"; static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-p portnum] [-h host_name] [-f file]\n%a", - program_name, - -1)); + "usage: %s [-p portnum] [-h host_name] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp index 287a0feb7e1..9aaf18995b1 100644 --- a/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp @@ -22,8 +22,8 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %n [-p portnum] [-h host_name] [-r]\n%a", - 1)); + "usage: %n [-p portnum] [-h host_name] [-r]\n")); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp index 215e507ebc2..d5c91b394a6 100644 --- a/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp @@ -27,9 +27,9 @@ static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-p portnum] [-h host_name] [-f file]\n%a", - program_name, - -1)); + "usage: %s [-p portnum] [-h host_name] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp index 5f113accefd..4a08d085254 100644 --- a/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp +++ b/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp @@ -27,9 +27,9 @@ static const char *file_name = "./remote_data"; static void print_usage_and_die (void) { ACE_ERROR ((LM_ERROR, - "usage: %s [-p portnum] [-h host_name] [-f file]\n%a", - program_name, - -1)); + "usage: %s [-p portnum] [-h host_name] [-f file]\n", + program_name)); + ACE_OS::exit (1); } void diff --git a/examples/Shared_Malloc/Options.cpp b/examples/Shared_Malloc/Options.cpp index 1870d07d1ae..90a84b458e0 100644 --- a/examples/Shared_Malloc/Options.cpp +++ b/examples/Shared_Malloc/Options.cpp @@ -105,7 +105,8 @@ Options::print_usage_and_die (void) "[-s] (use SysV shared memory rather than mmap)\n" "[-t number of threads or processes to spawn]\n" "[-T] (enable tracking)\n" - "[-n iteration_count]\n%a", -1)); + "[-n iteration_count]\n")); + ACE_OS::exit (1); /* NOTREACHED */ } diff --git a/include/makeinclude/outputdir.bor b/include/makeinclude/outputdir.bor index 705c433d43e..d56853f8027 100644 --- a/include/makeinclude/outputdir.bor +++ b/include/makeinclude/outputdir.bor @@ -61,7 +61,7 @@ MAKE_BINDIR=if not exist "$(BINDIR)" mkdir "$(BINDIR)" # PASCAL/non-PASCAL build configurations use the same object directory # since their compiler options are identical. !ifndef OBJDIR -OBJDIR=$(BASE_OBJDIR)\$(NAME)\$(STATIC_DIR)\$(DEBUG_DIR) +OBJDIR=$(BASE_OBJDIR)\$(NAME)\$(STATIC_DIR)\$(DEBUG_DIR)\$(PASCAL_DIR) !endif !ifdef MKDIR diff --git a/performance-tests/Misc/context_switch_time.cpp b/performance-tests/Misc/context_switch_time.cpp index 0178b04c427..611fc67ab6f 100644 --- a/performance-tests/Misc/context_switch_time.cpp +++ b/performance-tests/Misc/context_switch_time.cpp @@ -1102,7 +1102,9 @@ get_options (int argc, char *argv[]) new_lwp = THR_NEW_LWP; break; case '?': - ACE_DEBUG ((LM_ERROR, "usage: %n %s\n%a", usage, 0)); + ACE_DEBUG ((LM_ERROR, "usage: %n %s\n", usage)); + ACE_OS::exit (1); + /* NOTREACHED */ break; default: ACE_DEBUG ((LM_ERROR, "%n: unknown arg, %c\n", opt)); diff --git a/performance-tests/Misc/preempt.cpp b/performance-tests/Misc/preempt.cpp index f824ab17027..843e5572ba4 100644 --- a/performance-tests/Misc/preempt.cpp +++ b/performance-tests/Misc/preempt.cpp @@ -131,8 +131,8 @@ High_Priority_Task::open (void *) // Become an active object. if (this->activate (flags, 1, 0, this->priority_) == -1) { - ACE_DEBUG ((LM_ERROR, "(%P|%t) task activation failed, exiting!\n%a", - -1)); + ACE_DEBUG ((LM_ERROR, "(%P|%t) task activation failed, exiting!\n")); + ACE_OS::exit (1); } return 0; |