Thu Dec 31 13:25:53 1998 James CE Johnson * docs/tutorials/019/server[2].cpp: Test that the segment was created. If it already existed, the malloc() will return 0 and we'll crash. Thu Dec 31 12:10:46 1998 Carlos O'Ryan * tests/RB_Tree_Test.cpp: Added missing template instantiation, actually it seems that the IRIX MIPSPro compiler was not doing recursive instantiation. * ace/ACE.cpp: Use ACE_NOTREACHED in ACE::set_handle_limit(), the IRIX compiler was complaining again. Thu Dec 31 10:58:11 1998 David L. Levine * ace/Containers_T.cpp (ACE_Fixed_Set::insert): removed blank line between function header and body. Thu Dec 31 09:40:09 1998 Douglas C. Schmidt * ace/SOCK_Stream: Added a new ACE_SOCK_Stream constructor that initializes the underlying ACE_HANDLE automagically. Wed Dec 30 17:07:21 1998 Douglas C. Schmidt * ace/Containers_T.h: Clarified that the insert() method on ACE_Unbounded_Stack doesn't allow duplicates. Thanks to Susan Liebeskind for reporting this. Wed Dec 30 14:41:56 1998 Carlos O'Ryan * ace/ACE.cpp: Sometimes the get_ip_interfaces routine was returning 0.0.0.0 as a valid address, we explicitly avoid that now. Wed Dec 30 14:34:44 1998 Nanbor Wang * bin/GenExportH.BAT: Added '\$\I\d\$' string in generated file. Also in generated file, make XXX_HAS_DLL defined to 1 if it isn't defined already. Wed Dec 30 13:22:50 1998 Chris Gill * ace/Functor.{cpp, h, i} ace/Functor_T.{cpp, h, i} ace/Hash_Map_Manager.{h, i} ace/Hash_Map_Manager_T.{h, i}: Moved ACE_Hash and ACE_Equal_To STL-style functors from the Hash_Map_Manager files into the Functor files (so other containers can use these from a central place). Added ACE_Less_Than STL-style functor. Thanks to Doug Schmidt, Carlos O'Ryan, and Irfan Pyarali for comments on the distinctions between GOF command pattern functors and STL-style functors. * ace/RB_Tree.{cpp, h, i}: Reworked templates so RB_Tree can take advantage of template specialization for strcmp semantics without the overhead of a virtual function call. Thanks to Carlos O'Ryan for his suggestions on how to achieve this. * ace/OS.h ace/config-psos-diab.h include/makeinclude/platform_psos_diab.GNU tests/Handle_Set_Test.cpp tests/Process_Strategy_Test.cpp tests/RB_Tree_Test.cpp tests/Reactor_Performance_Test.cpp tests/TSS_Test.cpp: A number of fixes to allow ACE pSOS tests to compile and link successfully. Wed Dec 30 10:36:36 1998 David L. Levine * tests/Env_Value_Test.cpp: protected tests of doubles with #ifndef ACE_LACKS_FLOATING_POINT, so that the test will build for our Chorus platform. Tue Dec 29 16:24:24 1998 David L. Levine * bin/Service_Config.perl,auto_ptr.perl,corba-boolean.perl, rename-ace.pl: use perl from user's path, so we don't have to hard-code its location. * tests/Time_Value_Test.cpp: don't test ACE_U_LongLong if the platform defines ACE_LACKS_LONGLONG_T, e.g., GreenHills, because it makes a big mess. * bin/Hash_Map_Manager.pl,Hash_Map_Manager_Helper.csh: translated Hash_Map_Manager_Helper.csh from csh to sh. Renamed Hash_Map_Manager_Helper.csh to Hash_Map_Manager_Helper. * docs/ACE-guidelines.html: specifically disallow csh scripts. Tue Dec 29 15:09:15 1998 Douglas C. Schmidt * ACE version 4.6.10 released. Tue Dec 29 14:57:24 1998 Douglas C. Schmidt * docs/tutorials/{019,020}: Checked out the two new tutorials from James Johnson. Tue Dec 29 14:37:57 1998 Douglas C. Schmidt * ACE version 4.6.9 released. Tue Dec 29 13:32:50 1998 Nanbor Wang * ace/OS.h (ACE_SELF): Changed it's definition from -1 to 0 on NT to avoid warings from Intel C++. ACE_SELF is not used on NT. Thanks to Karel Zuiderveld for reporting this. Tue Dec 29 10:29:03 1998 Douglas C. Schmidt * ace: Fixed a bunch of warnings produced by Intel's C++ 4.0 compiler. Thanks to Karel Zuidrveld for reporting these. Tue Dec 29 09:47:48 1998 David L. Levine * ace/config-sunos*.h,README: restored ACE_TIMER_SKEW, with explanatory comment. Mon Dec 28 23:12:59 1998 Douglas C. Schmidt * ace/DLL.h, ace/Mem_Map.h, ace/Read_Buffer.h: Added ACE_UNIMPLEMENTED_FUNC() macros to these headers. Wed Dec 28 22:55:55 1998 Kirthika Parameswaran * ace/DLL.h: Prevent copying and assignment by putting these methods in the private part of the class. Mon Dec 28 17:57:25 1998 James CE Johnson * docs/tutorials/020/*: Sooner than expected... A brief and basic intro to using ACE_Shared_Memory_MM. * docs/tutorials/online-tutorials.html: Linked in 019 and 020 Mon Dec 28 16:32:42 1998 James CE Johnson * docs/tutorials/019/*: At long last, a basic Tutorial on ACE_Shared_Memory_SV. With luck, 020 will be added soon to cover ACE_Shared_Memory_MM Mon Dec 28 11:21:40 1998 Douglas C. Schmidt * ace/Strategies.h: Put the "virtual" keyword in from of the ~ACE_Reactor_Notification_Strategy to make it clear that this destructor is virtual. Thanks to Greg Gallant for pointing this out. Mon Dec 28 11:12:08 1998 David L. Levine * ACE-INSTALL.html: added SunOS 5.7 (Solaris 7) info. Mon Dec 28 10:52:20 1998 Carlos O'Ryan * */Makefile: Updated dependencies. Mon Dec 28 02:34:59 1998 Nanbor Wang * examples/Service_Configurator/IPC-tests/server/server_test.cpp (main): Allow loading in static services in this application. Thanks to Peter J. Mason for reporting this. * ace/Service_Config.{h,i,cpp} (ACE_Service_Config): Changed the default value of to 1. Otherwise, it is not consistent with the initial value of ACE_Service_Config::no_static_svcs_ and that's very confusing. (open): Added one more argument with default value of 1. This allow us to turn off this behavior when opening Service_Config. Otherwise, the only other way is to create a fake ACE_Service_Config and use that to change the static variable . Sun Dec 27 21:51:10 1998 David L. Levine * etc/purify.solaris2: added a couple of MIU suppressions for SunOS 5.7's thread library. Fri Dec 25 08:23:51 1998 Douglas C. Schmidt * ACE-INSTALL.html: Fixed a broken link to the ACE FAQ. Thanks to Barry Hoggard for reporting this. Fri Dec 25 01:55:32 1998 Irfan Pyarali * ace/Hash_Map_Manager: There are two problems with the current implementation of Hash_Map_Manager: (a) It requires a hash() method on the key type. If it is not possible for the key type to have a hash() function (e.g., the key is a primitive type such as an int, or is a pointer type, or a three party class), the usual solution is to do partial template specialization. This is usually not a very good option since some compilers do not support partial template specialization. (b) The second problem is with comparing two keys. Hash_Map_Manager assumes that keys can be compared using operator==. This assumption causes problems in some cases, e.g., when using char * as the key. Usually with char *, you want to use strcmp and not compare pointers. Solution to these two problems is the new Hash_Map_Manager_Ex class. Problem (a) is addressed by using a function object - the type of which is specified by the user as an additional template parameter. Problem (b) is addressed by using another function object - the type of which is specified by the user as an additional template parameter. So the new Hash_Map_Manager_Ex takes five template parameters: Backward compatibility: Hash_Map_Manager now inherits from Hash_Map_Manager_Ex, fixing the hash_key function object (which simply calls key.hash()) and fixing compare_keys (which simply uses operator== on the keys). There will be one problem: Users of compilers that do not implicitly instantiate templates will have to update their list of template instantiations. To help with this, please see $ACE_ROOT/bin/Hash_Map_Manager_Helper.csh Other miscellaneous changes: Added two new classes: ACE_Hash and ACE_Equal_To. ACE_Hash assumes a hash() method on T. ACE_Equal_To compares by using operator==. However, the ACE_Hash class has been specialized to work with: char, signed char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, const char *, char *, const wchar_t *, wchar_t *, const ACE_USHORT16 *, ACE_USHORT16 *, Also, ACE_Equal_To has been specialized to work with: const char *, char *, const wchar_t *, wchar_t *, const ACE_USHORT16 *, ACE_USHORT16 *, Remember, you don't have to use these specialization. You can always create your own. If we had default template parameters, we could default hash_key to ACE_Hash and compare_keys could default to ACE_Equal_To. BTW, note that the specialization with ACE_Hash and ACE_Equal_To is not partial template specialization. It is complete template specialization, and we don't know of compilers that cannot handle complete template specialization. Since we now have template specialization, Hash_Map_Manager_T.* files were created. I also took this opportunity to inline most of the Hash_Map_Manager functions. Also, update the makefiles and project files. BTW, these changes grossly simplified tests/Hash_Map_Manager_Test.cpp and tests/Map_Manager_Test.cpp. These tests will now work with compilers that do not support partial template specialization. Maybe James can change Filecache to take advantage of these changes. Updated the following files with the new template instantiations: ace/Filecache.cpp ace/Local_Name_Space.cpp ace/Template_Instantiations.cpp tests/Conn_Test.cpp tests/Hash_Map_Manager_Test.cpp tests/Map_Manager_Test.cpp TAO/examples/Callback_Quoter/Notifier_i.cpp TAO/examples/POA/On_Demand_Loading/Servant_Manager.cpp TAO/examples/Simple/bank/AccountManager_i.cpp TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp TAO/orbsvcs/orbsvcs/Log/Logger_i.cpp TAO/orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.cpp TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp TAO/orbsvcs/orbsvcs/Trader/Trader.cpp TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.cpp TAO/tao/ORB.cpp TAO/tao/ORB_Core.cpp TAO/tao/Object_Table.cpp TAO/tao/Operation_Table.cpp TAO/tao/POA.cpp examples/Map_Manager/test_hash_map_manager.cpp Thanks to Carlos for suggesting these changes. Most of these were inspired by SGI's STL. If these changes are successful (i.e., nobody is hunting me down for breaking their code ;-)), we should add a similar comparison function object to Map_Manager, Collections in Containers_T that require an operator==() (typically for remove() and find()) and the RB_Tree. * ace/ACE (hash_pjw): hash_pjw is now available for char *, wchar_t *, and ACE_UINT16 *. * ace/OS (strlen, strcpy, strcmp): These functions are now available for char *, wchar_t *, and ACE_UINT16 *. * ace/SString.cpp (ACE_WString::strlen): Simply calls ACE_OS::strlen. * ace/config-win32-common.h (ACE_HAS_WCHAR_TYPEDEFS_USHORT): Since Win32 typedefs wchar_t as a 16 bit unsigned short, this can potentially cause problems with function overloading. Therefore, I added ACE_HAS_WCHAR_TYPEDEFS_USHORT to the Win32 config file. This is very similar to ACE_HAS_WCHAR_TYPEDEFS_CHAR. Thanks to David Levine for helping with this. Thu Dec 24 09:37:32 1998 Douglas C. Schmidt * ACE version 4.6.8 released. Thu Dec 24 00:59:46 1998 Nanbor Wang * ace/Thread_Manager.h (ACE_Thread_Manager): Added a more complete documentation of the deprecated method. Thanks to Keith Brown for reporting this. Wed Dec 23 16:37:52 1998 David L. Levine * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU: updated so that links succeed. Wed Dec 23 15:58:53 1998 Nanbor Wang * ace/ACE.cpp (ldfind): Supress changing the 'dll' name if a customized dll extension is used. Tue Dec 22 22:34:32 1998 David L. Levine * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU: added GreenHills compiler support. * ace/OS.h: don't use hrtime_t for ACE_hrtime_t if ACE_LACKS_LONGLONG_T. Mon Dec 21 16:06:07 1998 Douglas C. Schmidt * ace/Shared_Memory_MM.i: Changed the remove() method to call ACE_Mem_Map::remove() rather than ACE_Mem_Map::unmap() so the code is consistent with the documentation. Thanks to James Johnson for reporting this. Mon Dec 21 13:55:33 1998 David L. Levine * ace/Containers_T.{i,cpp} (ACE_Bounded_Set::is_full): On LynxOS only, uninlined this function to avoid Internal Compiler Error with native (3.0.0) compiler. Thanks to Carlos for this fix, it had us stumped for quite a while. Sat Dec 19 18:27:07 1998 Douglas C. Schmidt * ace/Timer_Queue_Adapters.cpp (handle_signal): Cleaned up an unused variable. Thanks to David Levine for reporting this. Fri Dec 18 09:30:57 1998 David L. Levine * ace/High_Res_Timer.h (elapsed_time_incr): added missing const to member function declaration. * ace/config-sunos5.5.h: removed redundant ACE_HAS_XPG4_MULTIBYTE_CHAR #define. * ace/config-sunos5.7.h: added this config, for Solaris 7. * apps/Gateway/Gateway/Gateway.cpp, examples/ASX/Event_Server/Transceiver/transceiver.cpp (handle_signal): added ACE_UNUSED_ARG (signum). Fri Dec 18 06:08:47 1998 Douglas C. Schmidt * ace/High_Res_Timer: Made several methods const. Thanks to Ulf Jaehrig for reporting this. * ace/Thread.h (ACE_Thread): Removed a stray join(ACE_Thread_ID) method. Thanks to Jody Hagins for reporting this. Thu Dec 17 21:06:30 EST 1998 James CE Johnson * docs/tutorials/000: Removed. This is redundant with the Chap* directories. Thu Dec 17 17:18:21 1998 Douglas C. Schmidt * include/makeinclude/platform_sco5.0.0-{nothread,fsu-pthread}.GNU: This file was been modified to get rid of thread related stuff until we can obtain the FSU threads library. Thanks to Michael Preobrazhensky for this. Thu Dec 17 16:56:28 1998 David L. Levine * bin/create_ace_build: try /bin/find if /usr/bin/find doesn't exist. * ace/High_Res_Timer.cpp (elapsed_time): rearranged terms in nanoseconds calculation to avoid overflow on machines that don't have native 64-bit ints. Thanks to Greg Holtmeyer for helping to track this problem down. Thu Dec 17 12:43:11 1998 Douglas C. Schmidt * ace: Removed the use of ACE_DEBUG within handle_signal() methods to avoid portability problems. Thanks to Susan Liebeskind for reporting this. Tue Dec 15 14:45:49 1998 David L. Levine * *.h: removed () from #pragma implementation argument. Thanks to Christian v. Mueffling for reporting this. * docs/ACE-guidelines.html: added Doug's warning about side effects in ACE_DEBUG statements. Tue Dec 15 14:43:47 1998 Ossama Othman * ace/OS.{h,i},README: added lstat() and readlink() methods. Use ACE_LACKS_LSTAT and ACE_LACKS_READLINK if lstat() and readlink() aren't supported. Tue Dec 15 11:55:51 1998 Steve Huston * ace/ACE_Library.(mak mdp): Added Message_Queue.cpp to the files list. * examples/NT_Service/NT_Service.(mak mdp): MSVC 4.2 project file for the NT_Service example. Tue Dec 15 11:27:24 1998 David L. Levine * ace/config-chorus.h: added ACE_LACKS_READLINK. * ace/config-psos*.h,config-vxworks-5.x.h: added ACE_LACKS_READLINK and ACE_LACKS_LSTAT. Tue Dec 15 08:44:18 1998 Steve Huston * examples/NT_Service: New example program, shows how to create, manipulate, and run an NT Service using the ACE_NT_Service class. Muchas gracias to Gonzalo Diethelm for smashing this code into a good example - useful enough to show how things work, but simple enough to show all the useful functionality in one concise program. Tue Dec 15 07:32:49 EST 1998 Aniruddha Gokhale * OS.h: Moved the definition of IOV_MAX after we have included the limits.h file. Before make ing this change, we were getting lots of warnings on SunOS 5.6 about redefinition of IOV_MAX. Mon Dec 14 15:39:39 1998 Carlos O'Ryan * tests/Makefile: Updated dependencies. Mon Dec 14 10:49:29 1998 Nanbor Wang * Static_Performance.dsw: Quick and dirty workspace to build several static version's performance tests. * ace/ace_lib.dsp: Removed "__ACE_INLINE__=0" from the default static release build settings. * performance-tests/Misc/basic_perf.dsp: * performance-tests/Misc/context_switch_time.dsp: Added static build configurations. * tests/RB_Tree_Test.dsp: Redid the project file. A VC 6 only compiler option somehow got into the file. Thanks to Ulf Jaehrig for reporting this. Mon Dec 14 10:24:59 1998 Fred Kuhns * ace/OS.h: Added #define for IOV_MAX 16 Mon Dec 14 08:35:11 1998 David L. Levine * BUG-REPORT-FORM: added a few FMMs. Mon Dec 14 08:27:11 1998 Steve Huston * tests/run_tests.sh: Enabled MT_Reactor_Timer_Test. Sun Dec 13 16:40:18 1998 Nanbor Wang * tests/MT_Reactor_Timer_Test.dsp: * tests/tests.dsw: Added the new project file - MT_Reactor_Timer_Test. * tests/run_tests.bat: Added MT_Reactor_Timer_Test into one-button test for NT. * tests/MT_Reactor_Timer_Test.cpp: Changed the use of ACE_OS::{read,write} to ACE::{recv,send}. Sat Dec 12 17:19:17 1998 Irfan Pyarali * ace/ACE.cpp (ldfind): If we specified a suffix which is not the default suffix on the platform, the ldfind() operation should not try to add the default platform suffix but use ours. Sat Dec 12 07:44:02 1998 John Lindal * ace/config-mklinux.h: added. Fri Dec 11 23:26:20 1998 Nanbor Wang * tests/Message_Queue_Test.cpp: Generalize the test to perform "platform specific" message queue tests when applicable. Currently, this only applies to VxWorks and Windows NT 4.0 or above. * tests/DLL_Test.cpp (main): STL's implementation of auto_ptr doesn't define an assignment operator that takes a pointer of T. Changed to use constructor to initialize the auto_ptr my_hello. Fri Dec 11 16:30:44 1998 Ossama Othman * tests/Time_Value_Test.cpp: Removed the ACE_DISABLE_AUTOCONF_LONGLONG macro. It broke ACE+autoconf on non-sun platforms. 1998-12-11 Nanbor Wang * test/DLL_Test.dsp: Fixed configuration settings. Most of the time, it's easier to add new projects by using the bin/dsp2dsp.pl. * ace/Message_Queue.{h,cpp} (enqueue): Made sure all bytes in a message block chain are accounted for. (enqueue_tail,dequeue_head): Added two more methods into ACE_Message_Queue_Base. They are the prefered methods to use. Fri Dec 11 15:09:43 1998 Ossama Othman * tests/Time_Value_Test.cpp: define ACE_DISABLE_AUTOCONF_LONGLONG before including ace/inc_user_config.h. This will prevent an automatically generated ACE Configuration Project config.h header from defining ACE_UINT64, and thus allowing Time_Value_Test.cpp to compile on platforms that define ACE_HAS_STHREADS. Please read the comment in Time_Value_Test.cpp. ACE_DISABLE_AUTOCONF_LONGLONG is not meant for general use! Fri Dec 11 14:05:11 1998 Steve Huston * tests/MT_Reactor_Timer_Test.(cpp h): Replaced the multithread timer set/cancel test with sensible tests. Fri Dec 11 08:51:07 1998 David L. Levine * ACE-INSTALL.html: updated egcs version information. * VERSION: added ace-users/comp.soft-sys.ace info. * include/makeinclude/platform_osf1_4.0.GNU: added suppression of warning 1136, conversion to integral type of smaller size could lose data. cxx V6.1-029 spews out a bunch of them, otherwise. * tests/Time_Value_Test.cpp: protected definition of __ACE_INLINE__. Thanks to Ossama for reporting this. 1998-12-11 Nanbor Wang * ace/Message_Queue.{h,i,cpp} (ACE_Message_Queue_Base): Added a bunch of pure virture functions in the class to define the common interface functions of a message queue. This allows up to experiment different message queue implementations easily. Most significantly, all queueing operations are simplified into and method in ACE_Message_Queue_Base as "standard" queueing operations. Inherited class, of course, can add fancier queueing operations (as in ACE_Message_Queue.) (ACE_Message_Queue_NT): A new adapter class inherited from ACE_Message_Queue_Base that implement a message queue using NT's IO completion ports. As it's name implies, this is a specialized version for NT. It is not as versatile as ACE's general MQ implementation. However, this implementation consumes less NT handles which in some circumstances may be a big win (because ACE_Message_Queue uses cv and on NT, cv is simulated and consumes 4 handles per cv. ACE_Message_Queue_NT only uses one handle and one critical section.) Several features inherited from IO completion port are, the waiting threads are release in LIFO order, and you can control (at initialization time,) the max number of threads that can be release by the message queue to run concurrently. Notice that the constructor and the method have different signature compared with those of ACE_Message_Queue. You should use ACE_Message_Queue_Factory to create a message queue on the fly if so desired. Thanks to Mark Lucovsky and Karlheinz Dorn for providing the idea. * ace/Message_Queue_T.h (dequeue): Added the new method to match with the changes in ACE_Message_Queue_Base. (create_NT_message_queue): A wrapper function to manufacture an ACE_Message_Queue_NT. Thu Dec 10 09:08:26 1998 David L. Levine * ace/config-chorus.h: added ACE_LACKS_FSYNC. * ACE-INSTALL.html: ACE/TAO build on Linux RedHat 5.2 as well as 5.1. * ace/config-osf1-3.2.h: added getpgid () prototype, because an old comment said that it was missing from the system headers. * ace/config-linux-common.h: replaced ACE_LACKS_GETPGID with a getpgid () prototype. Thanks to Ivan Pascal for motivating the above two getpgid () updates. * ace/config-sunos5.5.h: updated comment on why explicit instantiation isn't used with Sun CC. Thanks to William A. Hoffman for introducing us to -instances=explicit. Wed Dec 09 22:59:38 1998 David L. Levine * ACE version 4.6.7 released. Wed Dec 09 18:03:58 1998 Irfan Pyarali * examples/Reactor/WFMO_Reactor/test_network_events.cpp (main): Removed global variables and cleaned up some minor things. Wed Dec 09 07:02:06 1998 David L. Levine * README, VERSION: expanded mention of BUG-REPORT-FORM. * docs/ACE-guidelines.html: strengthened mention of ACE_ASSERT danger. Thanks to Irfan for the example. * tests/run_tests.vxworks: re-enabled Timeprobe_Test, now that ACE_ASSERTs have been fixed in ACE's Containers. * ace/config-linux-common.h,config-osf1-{3.2,4.0}.h: removed ACE_LACKS_GETPGID. Thanks to Ivan Pascal for reporting that getpid () is supported on those platforms. * ace/config-linux-common.h: restored ACE_LACKS_GETPGID, because ::getpgid () isn't found on Alpha with glibc 2.0.7. * tests/Timeprobe_Test.cpp: disabled ACE_ENABLE_TIMEPROBES, because the ACE lib is built by default without them. * performance-tests/Misc/context_switch_time.cpp: disabled Yield_Test on VxWorks, because it doesn't run properly there. * ace/config-tandem.h,README: removed ACE_HAS_STRUCT_PROTOENT_DATA, because it is no longer used. Thanks to Ossama for reporting this. * tests/Collection_Test.cpp, examples/Reactor/Misc/test_early_timeouts.cpp: removed unused parameter names argc and argv. * tests/DLL_Test.cpp: added ACE_Auto_Basic_Ptr template instantiation. 1998-12-09 Irfan Pyarali * tests/Collection_Test.cpp: Added new test for ACE collections. * ace/Map_Manager.cpp (operator*): * ace/Containers_T.cpp (operator*): * ace/SPIPE_Acceptor.cpp (create_new_instance): Fixed ACE_ASSERT usage. * ace/config-vxworks5.x.h: Added ACE_LACKS_FSYNC. * ace/OS.i (fsync): Added ACE_NOTSUP_RETURN (-1). Tue Dec 08 21:39:16 1998 David L. Levine * include/makeinclude/platform_osf1_4.0.GNU,ACE-INSTALL.html: enable DU 4.0 cxx 6.x warnings by default. To disable, if you're using cxx 5.x, set CXX_VER to CXX_5 either on the make command line, or in your environment. Thanks to Gary York for being that last cxx 6.x user to trip over this :-) * include/makeinclude/platform_lynxos.GNU: override ACE_HAS_GNUG_PRE_2_8 to allow builds of all TAO tests on LynxOS 3.0.0. Its g++ can handled nested classes, even though it's in the 2.7 family. Thanks to Patty Hair for suggesting that we try to build the tests on LynxOS. Tue Dec 8 19:50:49 1998 Douglas C. Schmidt * ace/Shared_Object.cpp: Changed the various default implementations of init()/fini()/info() to return 0 rather than -1 so that users won't have to subclass Service_Object just to change the return value. Thanks to Eric Newton for motivating this. Tue Dec 8 16:52:57 1998 Ossama Othman * ace/OS.{h,i}, ace/README: Added a fsync() method. Define ACE_LACKS_FSYNC if ::fsync() isn't supported. Tue Dec 08 15:03:25 1998 Steve Huston * ace/NT_Service.{h cpp i}: Added a number of methods which can be used to register, remove, and control an NT service. Also, another macro, ACE_NT_SERVICE_RUN, which simplifies the setting up and running the most common case, a single service. Huge thanks to Gonzalo Diethelm for contributing the bulk of this code! Tue Dec 08 11:22:56 1998 Chris Gill * ACE version 4.6.6 released. Tue Dec 08 10:45:56 1998 Nanbor Wang * ace/System_Time.h: Removed redundant ACE_Time_Date definition. Thanks to Martin Krumpolec for reporting this. Mon Dec 07 22:58:53 1998 Irfan Pyarali * examples/Reactor/Misc/test_early_timeouts.cpp: On some platforms, select() returns before the time value specified. This tests counts the number of times this happens and the max early timeout. * ace/DLL.cpp (open): Added a call to ACE::ldopen() before calling ACE_OS::dlopen(). The allows us to find the library is predefined places and also expand the file name to the correct syntax (prefix and suffix) according to the platform. Also, fixed a bug where the flag has not being consulted on a reopen. * ace/ACE.cpp (ldfind): Moved the code that calls ExpandEnvironmentStringsA() from ACE_Location_Node::open_handle() to ACE::ldfind(). This code is more general and therefore belongs in ACE::ldfind(). * ace/Parse_Node.cpp and ace/Svc_Conf_y.cpp: Fixed the incorrect use of ASYS_WIDE_STRING. Remember that the string returned from ASYS_WIDE_STRING is only valid for that line of code ;) Mon Dec 7 19:10:24 EST 1998 James CE Johnson * docs/tutorials/ * docs/tutorials/001/001.dsp * docs/tutorials/002/002.dsp * docs/tutorials/003/003.dsp * docs/tutorials/004/004.dsp * docs/tutorials/005/005.dsp * docs/tutorials/006/006.dsp * docs/tutorials/007/007.dsp * docs/tutorials/008/008.dsp * docs/tutorials/008/008-server/008-server.dsp * docs/tutorials/008/008-direct/008-direct.dsp * docs/tutorials/008/008-broadcast/008-broadcast.dsp * docs/tutorials/009/009-directed/009-directed.dsp * docs/tutorials/009/009-server/009-server.dsp * docs/tutorials/009/009-broadcast/009-broadcast.dsp * docs/tutorials/010/010.dsp * docs/tutorials/011/011.dsp * docs/tutorials/012/012.dsp * docs/tutorials/013/013.dsp * docs/tutorials/014/014.dsp * docs/tutorials/018/018.dsp * docs/tutorials/015/015-client/015-client.dsp * docs/tutorials/015/015-server/015-server.dsp * docs/tutorials/016/016.dsp * docs/tutorials/017/017.dsp * docs/tutorials/tutorials.dsw Contributed by: Stefan Ericsson Mon Dec 07 14:11:00 1998 Chris Gill * ace/README: added entries for ACE_LACKS_IOSTREAMS_TOTALLY and ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS. Thanks to Ossama Othman for reminding me to do this. Mon Dec 07 09:27:04 1998 David L. Levine * ace/Stats.cpp (std_dev): added comments to not reformat some code. It compiles with the Diab compiler for pSoS the way it is. Sun Dec 06 23:59:29 1998 Irfan Pyarali * config-sunos5.5.h: Added back ACE_HAS_TIMER_SKEW. It is really required. See me for an example that illustrates this need. Sun Dec 06 16:05:00 1998 Chris Gill Changes for pSOS port: ACE now compiles for pSOSystem 68k targets using the Diab D-C++ 4.2a compiler release, and links with all but the following ACE tests: Conn_Test, Handle_Set_Test, OrdMultiSet_Test, Priority_Reactor_Test, Process_Strategy_Test, Reactor_Performance_Test, and TSS_Test. * ace/Log_Msg.cpp ace/Log_Record.{cpp, h} ace/streams.h ace/SString.cpp ace/config-WinCE.h ace/config-psos-diab.h tests/test_config.h: Rearranged log print methods so that logging can still be done on platforms where iostreams are not sufficiently supported. Added ACE_LACKS_IOSTREAMS_TOTALLY to select this behavior, and defined it in pSOS Diab config header (also added to Windows CE config header, to simplify factoring out Win CE specific logging methods). * include/makeinclude/platform_psos_diab.GNU ace/OS.{cpp, h, i}: Removed Diab supplied library calls so ACE now links directly to pSOSystem libraries. * ace/Parse_Node.cpp ace/Stats.cpp: Modifications to circumvent bugs in the Diab 4.2a compiler's handling of conditional operators. Sun Dec 06 08:32:36 1998 David L. Levine * ace/Containers_T.cpp,Local_Name_Space_T.cpp, Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp, Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp, Time_Request_Reply.cpp,Trace.cpp: use ACE_NLOGGING instead of ACE_NDEBUG. Sat Dec 05 21:45:00 1998 David L. Levine * ace/Containers_T.cpp,Local_Name_Space_T.cpp, Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp, Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp, Time_Request_Reply.cpp,Trace.cpp: added if NDEBUG protection to some local variables and ACE_UNUSED_ARG to some parameters to avoid compiler warnings when ACE_DEBUG is disabled. Thanks to Faron Dutton for reporting this. * ace/Makefile (Svc_Conf_Tokens.h): escaped $\I\d$ string so that it doesn't get expanded in the Makefile itself. Sat Dec 5 16:06:27 1998 Darrell Brunsch * ace/Local_Name_Space_T.cpp: Protected some of the ACE_DEBUG statements with a ACE::debug () check. Fri Dec 04 13:46:12 1998 David L. Levine * ace/Stats.cpp (std_dev): fixed difference calculation so that it always calculates a non-negative value. * performance-tests/Misc/context_switch_time.cpp (High_Priority_Synchronized_Task::svc): check if nsec is >= mutex_acquire_release_time, to avoid adding in negative context_switch_times. * ace/config-vxworks5.x.h, include/makeinclude/platform_vxworks5.x_g++.GNU, include/makeinclude/platform_vxworks5.x_ghs.GNU: moved -DVXWORKS from platform_vxworks5.x_* files to config-vxworks5.x.h, to reduce command-line clutter a bit. Fri Dec 4 12:45:04 1998 James CE Johnson * docs/tutorials/linify: * docs/tutorials/combine: * docs/tutorials/fixMakefile: Ensure that perms are 755 and that #!/.../perl is not used Wed Dec 02 14:21:34 1998 Nanbor Wang * ace/OS.i (fstat): This function needs to close down the c handle opened by _open_osfhandle to avoid resource leaks on Win32. Thanks to Christian Korn for reporting this. Tue Dec 01 13:48:51 1998 Nanbor Wang * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added ifdef section to prevent threaded ACE from compiling on FreeBSD under 3.0 (excluded.) Tue Dec 1 22:22:42 1998 Douglas C. Schmidt * ace/Synch.h: Added a comment to clarify the semantics of ACE_RW_Process_Mutex. Thanks to Stanislav Meduna for reporting this. Tue Dec 01 17:22:00 1998 Kirthika Parameswaran * tests/DLL_Test: Added the .dsp and tests.dsw to the repository. * tests/run_tests.bat: Added an entry for DLL_Test. Tue Dec 01 13:54:35 1998 David L. Levine * ace/OS.h: added ESUCCESS definition (to 0), if not #defined. Tue Dec 01 13:48:51 1998 Nanbor Wang * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added ifdef section to prevent threaded ACE from compiling on FreeBSD under 3.0 (excluded.) * ace/OS.i (sigwait): FreeBSD 3.0 supports sigwait. Changed the ifdef condition to support sigwait for 3.0 or above. Thanks to Bob McWhirter and Russell L. Carter for helping to track this down. Tue Dec 01 12:59:57 1998 James CE Johnson * ace/IOStream_T.i (recv,recv_n): set errno to ESUCCESS because it was never being set to ETIME when the read timed out. (Before entering the peer_->recv/recv_n, errno was ENOENT from previous activities and was the same after in both positive & negative tests until I did the reset.) (eof): cleaned up a bit. I tested against IOStream_Test for both positive and negative. For the positive test, I changed the sleep() at line 363 to a much larger value. The client worked fine. For the negative test, I replaced the spleep() with a close() & return() pair. The client saw the closure and exited as expected. Tue Dec 1 08:55:48 PST 1998 James Hu * ace/Memory_Pool.cpp: Since type key_t might be something other than int (e.g., a long), some additional code was needed to support the sscanf. Tue Dec 01 10:49:00 1998 Chris Gill * tests/Win32clerk.conf tests/Win32server.conf tests/Win32tokens.conf: removed explicit path for netsvcs dll, as this dll is now being moved to ACE_wrappers/bin after it is built and the explicit path was causing dlopen to fail rather than searching the path on NT, which caused Time_Service_Test to fail. Tue Dec 01 10:07:48 1998 David L. Levine * ACE version 4.6.5 released. Tue Dec 1 00:07:05 PST 1998 James Hu * ace/Containers_T.h: * ace/Containers_T.i: Fixed a bug introduced when someone genericized the creation strategy for ACE_DLList. The removal routing had not been similarly genericized. Thanks goes to Martin Krumpolec for spotting the problem. Mon Nov 30 19:10:23 1998 Kirthika Parameswaran * examples/DLL/Makefile: * examples/DLL/Makefile.Today: * examples/DLL/Makefile.Newsweek: Added the above makefiles. Makefile internally uses Makefile.Today and Makefile.Newsweek to build the libraries seperately. Mon Nov 30 13:54:04 1998 Douglas C. Schmidt * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_input): There was a friggin' bug in this code that is a violation of Reactor framework design rule #2, i.e., we were returning a non-0 value from handle_input(), which is a no-no... Thanks to Steve Huston for reporting this. Mon Nov 29 13:16:53 EST 1998 James CE Johnson * docs/tutorials/001/logger.h: * docs/tutorials/001/page04.html: * docs/tutorials/003/client.cpp: * docs/tutorials/003/page01.html: Added a blurb about the additional parameters to the recv(), recv_n(), send() and send_n() method calls of ACE_SOCK_Stream. Sun Nov 29 22:14:32 1998 David L. Levine * ace/OS.i,cpp (exit): with ACE_HAS_NON_STATIC_OBJECT_MANAGER, call ACE_Object_Manager::fini (). Uninlined to avoid circular include problems with Object_Manager.h. The ACE_Object_Manager instantiation on main's stack is not destroyed by ::exit (), so this addition causes the ACE_Object_Manager to be properly shutdown. Thanks to Jeff Greif for pointing out that automatic objects are not destroyed by ::exit (). * ace/Object_Manager.h: added Jeff Greif's ACE_OS::exit () recommendations in comments. Sun Nov 29 20:13:15 1998 Kirthika Parameswaran * examples/DLL/Today.cpp: * examples/DLL/Newsweek.cpp: Added ACE_BUILD_SVC_DLL and ACE_Svc_Export directives needed for the extern "C" create_magazine function. Sun Nov 29 18:22:52 1998 Nanbor Wang * tests/Thread_Pool_Reactor_Test.cpp: Removed the use of "main_reactor". The "main_reactor" was added to handle incoming connections because this test was not working correctly without moving out the acceptor to another reactor. However, I recently found that the problem was actually due to the deadlocked notify_handler which I fixed a while back. * ace/OS.h: Added forward declarations of ACE_Time_Value's operator{+,-} so VC 6.0 won't get confused with the operator{+,-} in namespace std. Thanks to Victor Yu for reporting this. 1998-11-29 James CE Johnson * docs/tutorials/007/page09.html: Added warnings about a possible core dump when an event handler exists in the thread pool's message queue after the handler has been destroyed. Jeff Donner's work with Tutorial 007 on Win32 lead to this discovery. Sat NOv 28 20:02:08 1998 Kirthika Parameswaran * examples/DLL/Today.cpp: * examples/DLL/Newsweek.cpp: Added the #ifdef directive needed to seperate out the functionality on NT and UNIX platforms. Sat NOv 28 20:02:08 1998 Kirthika Parameswaran * examples/DLL/Dll.dsw: * examples/DLL/Test_dll.dsp: * examples/DLL/Today.dsp: * examples/DLL/Newsweek.dsp: Added to the repository. The test successfully executes on NT. * examples/DLL/README: Modified to add information on how to execute this test example on NT. Fri Nov 27 13:32:38 1998 Kirthika Parameswaran * examples/DLL/test_dll.cpp (main): Added right arguments to the ACE_ERROR_RETURN macro. Thu Nov 26 21:04:05 1998 Kirthika Parameswaran * examples/DLL/Makefile: * examples/DLL/Today.{h,cpp}: * examples/DLL/Newsweek.{h,cpp}: * examples/DLL/Magazine.h: Placed the comments at the right place and added an descriptive header wherever missing in the .h files. * examples/DLL/test_dll.cpp (main): Added auto_ptr for the Magazine class object pointer. * examples/DLL/README: Added to the repository. Wed Nov 25 02:02:32 1998 Kirthika Parameswaran * examples/DLL/Makefile: * examples/DLL/Today.{h,cpp}: * examples/DLL/Newsweek.{h,cpp}: * examples/DLL/Magazine.h: * examples/DLL/test_dll.cpp: Added these files. This test example shows how dynamically linked library objects can be loaded on demand and their methods accessed on getting an pointer to these objects. Wed Nov 25 22:28:44 1998 Carlos O'Ryan * ace/INET_Addr.cpp: Reverted the behavior to version 4.35, we don't use the first alias as the hostname, but the value returned in the h_name field. This change was to support TAO in our local site, but it caused many problems for other configurations of /etc/hosts and DNS. We found another workaround for our local site which makes more sense to the rest of the world. Wed Nov 25 20:34:12 1998 Kirthika Parameswaran * tests/DLL_Test.cpp (main): Removed ACE_OS::strcat which was concatenating a string literal with a defined string. Wed Nov 25 12:01:20 1998 Ossama Othman * apps/gperf/gperf.texi: * apps/gperf/gperf.info: * apps/gperf/texinfo.tex: * apps/gperf/version.texi: updated gperf.texi to work with recent versions of makeinfo (e.g. 1.68, available in GNU texinfo-3.12). Regenerated gperf.info with latest makeinfo (1.68). Added texinfo.tex to make available certain TeX macros for texinfo to TeX converters. Added version.texi to centralize gperf update dates and versions (gets included by gperf.texi). Wed Nov 25 12:01:20 1998 David L. Levine * performance-tests/Misc/context_switch_time.cpp (main): fixed printouts by performing floating point division, instead of converted integer division to double. Added checks of activate () return values. * ace/OS.cpp (sched_params,lwp_getparams,lwpsetparams): set LWP priority on Suns, even if only using the ACE_HAS_PTHREADS interface. Though, we still don't get preemption if only using that interface. performance-tests/Misc/preempt.cpp demonstrates that. * ace/config-osf1-4.0.h: removed ACE_LACKS_THREAD_PROCESS_SCOPING. DU 4.0 seems to have process scoping, though I think only the superuser can use it. Wed Nov 25 10:48:42 1998 Douglas C. Schmidt * ace/Task.cpp: Fixed a bug whereby we weren't inheriting the group id correctly when joining a group of existing threads. Thanks to Valery Arkhangorodsky for pointing this out. Tue Nov 24 03:50:09 1998 Kirthika Parameswaran * tests/DLL_Test.cpp: Renamed DLL_Wrapper_Test.cpp to DLL_Test.cpp. Also, added ACE_OBJ_SUFFIX which takes care of the object code convention on NT and UNIX platforms. Changed the messages in ACE_ERROR to come from ACE_DLL::error(). This is a running version tested using CC compiler too. Tue Nov 24 17:45:26 1998 Steve Huston * netsvcs/clients/Naming/Dump_Restore/Makefile: Added a LIBS += $(ACELIB) to help this build on AIX. Thanks to Jon Lindgren for reporting this problem. * README: Added Jon Lindgren to the contributor's list. Welcome, Jon! Tue Nov 24 09:34:58 1998 David L. Levine * include/makeinclude/platform_chorus.GNU: added support for exceptions=0/1 make option. Thanks to Wei Chiang for requesting this. * include/makeinclude/platform_chorus_ghs.GNU: removed trailing / from MVME_DIR definition. * include/makeinclude/platform_vxworks5.x_ghs.GNU: added optimize=1, to enable optimization by default. * performance-tests/Misc/context_switch_time.cpp (main): don't print suspend-resume results if the suspend-resume test isn't run (because thr_suspend isn't supported). Process command line options before calulating hi-res timer scale factor. * ace/OS.h: replaced ENOTSUP with EDEADLK in a comment, to fix a copy-and-paste error. * ace/Stats.* (mean): removed caching. It didn't account for the fact that it could be called with different scale factors. (std_dev): fixed sum_of_squares calculation to always use 64-bit arithmetic. (print_summary): if the std dev calculation overflows, retry with smaller scale factor, until 0 is reached. * tests/Conn_Test.cpp: replaced #include of ace/Auto_Ptr.h, because ACE_Auto_Basic_Array_Ptr is used. Mon Nov 24 03:30:36 1998 Kirthika Parameswaran * tests/DLL_Wrapper_Test.cpp: Added a test example for the DLL wrapper class. * tests/Makefile: Added an entry for DLL_Wrapper_Test example. Mon Nov 23 23:49:36 1998 Kirthika Parameswaran * ace/DLL.h: Made the default value of the close_on_destruction equal to 1. * ace/DLL.cpp (~ACE_DLL): Checked whether the member variable, close_on_destruction_ is non-zero instead of comparing it to 1. Mon Nov 23 21:14:22 1998 Kirthika Parameswaran * ace/DLL.h (ACE_DLL): Set the default of close_on_destruction to 1 instead of 0. * ace/DLL.cpp (~ACE_DLL): In the close operation, made a check for whether the close_on_destruction_ flag was equal to 1 instead of 0. * ace/DLL.cpp (get_handle): Made the close_on_destruction_ flag equal to 0 when it gets orphaned as now the new owner has to explicitly close the library. Mon Nov 23 20:29:52 1998 Douglas C. Schmidt * ace/DLL: Cleaned up the comments and also fixed an unnecessary check to see if dll_name == 0. Mon Nov 23 10:20:22 1998 Kirthika Parameswaran * ace/DLL.h: Added a comment which specified that by default the library would be closed before the ACE_DLL object gets destroyed. * ace/DLL.cpp (get_handle): Changed the value for the member variable, close_on_destruction_ to 1 on orphaning the handle and giving it to the new owner. Mon Nov 23 17:14:40 1998 Alexander Babu Arulanthu * examples/Reactor/Proactor/test_proactor.cpp (open): It is even more neat to do this for faking the result. // for Accept would have already moved the // forward. Update it to the beginning position. duplicate.wr_ptr (duplicate.wr_ptr () - bytes_transferred); Mon Nov 23 17:16:46 1998 Irfan Pyarali * ace/OS.h: Set the value of ACE_SHLIB_INVALID_HANDLE to 0 for HP. Thanks to Steve Huston for providing this information. Mon Nov 23 16:16:26 1998 Alexander Babu Arulanthu * examples/Reactor/Proactor/test_proactor.cpp: Updated the code to show that adjusting wr_ptr () to the place of rd_ptr () is the better way to fake results properly. Thanks to "James A. Risinger" for reporting this problem. Mon Nov 23 12:58:47 1998 Douglas C. Schmidt * examples/ASX/Message_Queue, tests: Replaced the improper (though technically correct) use of the rd_ptr() with wr_ptr(). Thanks to Susan Liebeskind for reporting this. Mon Nov 23 10:47:38 1998 David L. Levine * bin/generate_man_pages: added this script, which generates the ACE man and html pages. * Makefile (release): added call to bin/generate_man_pages. Sun Nov 22 22:58:39 1998 Douglas C. Schmidt * ace/SPIPE_Addr.h: Replaced the use of an anonymous struct so that class2man will be happy. Thanks to David Levine for reporting this. Sun Nov 22 22:07:04 1998 David L. Levine * ace/Functor*: removed trailing // EOF because class2man choked on it. Sun Nov 22 14:36:26 1998 Alexander Babu Arulanthu * examples/Reactor/Proactor/test_proactor.cpp (open): Updated the test to show the correct way to 'fake' call. Sun Nov 22 13:57:28 1998 Douglas C. Schmidt * ace/Makefile: Added Env_Value_T to the TEMPLATE_FILES macro in the Makefile. Thanks to Ossama for reporting this. Sat Nov 21 14:32:53 1998 Douglas C. Schmidt * ace/DLL: Cleaned up the DLL logic to handle "close on destruction" properly. Sat Nov 21 08:34:44 1998 David L. Levine * ace/OS.h: added ACE_LACKS_IP_ADD_MEMBERSHIP, for internal use only. If IP_ADD_MEMBERSHIP isn't defined, ACE defines ACE_LACKS_IP_ADD_MEMBERSHIP for subsequent use in determining whether to define ip_mreq. * bin/html-windex: updated to match Doug's ~/bin version. Fri Nov 20 00:58:35 1998 Kirthika Parameswaran * ace/DLL.h (ACE_DLL): Added a new constructor which allows auto opening of the dynamically linked library. * ace/DLL.h (get_handle): Added a method which returns teh handle to the user. * ace/DLL.cpp (ACE_DLL): Added the auto-open feature taking care of more than one open calls. * ace/DLL.cpp (get_handle): The orphan flag decides whether the handle is orphaned or given to the user temporarily. * ace/DLL.cpp (open): Added a check so that a already existing handle is closed before the next open is done. Fri Nov 20 23:40:12 1998 James CE Johnson * docs/tutorials/00[567]/client_handler.cpp : * docs/tutorials/00[56]/page0[45].html * docs/tutorials/007/page0[56].html Rework the interaction of handle_input(), handle_close() and close(). I had this all wrong by making handle_close() invoke remove_handler() when it was unnecessary. Fri Nov 20 22:12:03 1998 Kirthika Parameswaran * ace/Makefile: Added an entry for DLL.{h,cpp}. Fri Nov 20 15:49:04 1998 Irfan Pyarali * ace/OS.h: Added ACE_SHLIB_INVALID_HANDLE which is used to indicate a invalid shared library handle. * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: This application tests whether handle_close() gets called and if the correct masks are passed along. The handler should get handle_close() called for all three masks (READ, WRITE, and EXCEPT). * ace/WFMO_Reactor.cpp (remove_handler_i, remove_suspended_handler_i, and remove_to_be_added_handler_i): There was a bug in WFMO_Reactor where handle_close() was not called when it is not a complete removal. Added a call to handle_close() for all the masks that were removed. Note that partial removals do not change the state of the internal tables of the reactor. * ace/OS.i (recvfrom): There is a bug in the Win32 implementation of this function. It reports an error (with errno=WSAEMSGSIZE), even MSG_PEEK is specified, when the message was too large to fit into the specified buffer and was truncated. So we fixed it by returning the length of the recv request when errno=WSAEMSGSIZE and the MSG_PEEK flag was specified. Fri Nov 20 11:15:40 1998 David L. Levine * ace/config-sunos5.5.h: changed comment to use -D_POSIX_PTHREAD_SEMANTICS to specify POSIX threads only. Just commenting out ACE_HAS_STHREADS in insufficient. See the Intro (3) man page for information on -D_POSIX_PTHREAD_SEMANTICS; it's the Sun-recommended way to specify use of POSIX threads. Thanks to Rich Christy for pointing out that removal of ACE_HAS_STHREADS doesn't work. * ACE-INSTALL.html: added notes on thread flavors on Solaris. * include/makeinclude/platform_sunos5_g++.GNU: added support for threads=0. * ace/OS.cpp (thr_create): added static cast of PTHREAD_STACK_MIN to size_t, to avoid signed/unsigned comparison on g++ 2.7.2.3/Solaris86 2.6. Thu Nov 19 23:04:37 1998 Irfan Pyarali * ace/Functor.h (ACE_Command_Base): Added missing ACE_Export. Thu Nov 19 18:01:00 1998 Kirthika Parameswaran * ace/DLL.cpp (ACE_DLL): Made base-member initialisation change to member variable close_mode_. Thu Nov 19 10:28:11 1998 David L. Levine * performance-tests/Misc/context_switch_time.cpp: fixed 64-to-32 bit casts to work with unsigned 64 bit ACE_hrtime_t on NT. Wed Nov 18 20:56:38 1998 Kirthika Parameswaran * ace/DLL.{cpp,h} (ACE_DLL): Added the close-on-destruction feature in the constructor of the ACE_DLL class. Thu Nov 19 00:18:26 1998 Irfan Pyarali * ace/OS.i (strnstr): Added a check to see if the substring is longer than the string being searched. Fixed both the char and wchar_t versions in OS.i and the ACE_USHORT16 version in SString.cpp. Thanks to Knut Johannessen for pointing out the bug and providing a fix. * ace/SString.i (find): The argument to strnstr() should be the length of instead of len_ - pos>. * tests/SString_Test.cpp (main): Added tests to make sure that find() and strstr() work even when the substring is longer that the original string. * ace/Timeprobe_T.h (ACE_Timeprobe): Added accessors to the class so that the user can get to the internals. This allows the users to format the output of collecting the timeprobes according to their liking. Wed Nov 18 15:51:42 1998 David L. Levine * ace/Basic_Types.h (ACE_UINT64_DBLCAST_ADAPTER): on other than Win32 and without ACE_LACKS_LONGLONG_T, wrapped the "n" macro definition with parenthesis, to avoid insidious errors in equations due to removing the grouping. g++ 2.7.2.3 noticed this on the latest context_switch_time.cpp. * ace/Svc_Handler.cpp (cleanup_hint): fixed ACE_TRACE string. * *.cpp: changed include protection from #if !defined to ifndef. Added #pragma once, if possible, i.e., after #include of an ace/ header. It can only be done after ace/config.h is included, because some platforms don't allow #pragma once. Wed Nov 18 15:54:09 EST 1998 James CE Johnson * docs/tutorials/007/client_handler.cpp * docs/tutorials/007/page06.html Jeff Donner (jdonner@schedsys.com) points out that Susan Liebskind's fix to Tutorial 6 should also be applied to this one. The fix is: Don't call baseclass close() from Client_handler::close(). Doing so will result in double-delete of the handler object. Wed Nov 18 00:25:08 1998 Kirthika Parameswaran * ace/DLL.{h,cpp} (ACE_DLL): Wrapper for dynamically linked library operations. Tue Nov 17 11:15:00 1998 Chris Gill * tests/version_tests/RB_Tree_Test.dsp tests/version_tests/version_tests.dsw : created RB_Tree_Test project for NT version tests and added it to version tests workspace. Tue Nov 17 10:15:10 1998 Nanbor Wang * ace/Map_Manager.cpp (resize_i): Made sure the new elements in resize_i get constructed properly so we can use more complex classes with it. Thanks to Knut Johannessen for providing the patch. Also changed to use copy constructor to move data across rather than construct/assign pair. Tue Nov 17 09:37:32 1998 David L. Levine * ace/config-linux-common.h: removed ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR because it caused compilation failure with egcs 1.0.2. * ace/config-g++-common.h: added ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR, with egcs >= 1.1 only. Thanks to James Johnson for helping to sort this out. * ace/config-osf1-4.0.h: moved ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR from common area to DEC CXX area, because config-g++-common.h now handles g++. * ace/IOStream_T.i (eof): fixed return value calculation logic. Thanks to Arturo and James Johnson for providing and verifying the fix. * include/makeinclude/platform_vxworks5.x_ghs.GNU: added -DVXWORKS to CFLAGS, because GHS 1.8.9 needs it. (GHS 1.8.8 had a built-in processor define for it. Adding -DVXWORKS doesn't seem to bother 1.8.8.) Thanks to Steve Kay for reporting this. * ace/OS.h: even if ACE_HAS_IP_MULTICAST is not defined, if IP_ADD_MEMBERSHIP is defined, assume that the ip_mreq struct is also defined (presumably in netinet/in.h). This allows compilation to succeed on GHS 1.8.9/VxWorks. Thanks to Steve Kay for reporting it. Tue Nov 17 09:12:00 1998 Chris Gill * ace/SString.{h, i}: added < , > operators to string classes * apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp tests/RB_Tree_Test.cpp: added missing template instantiations * tests/Makefile tests/run_tests.sh : added RB_Tree test to UNIX makefile, test script Mon Nov 16 17:55:00 1998 Chris Gill * ace/Functor_T.{h, i} ace/RB_Tree.{cpp, h, i} : added less-than comparison functor (aka function object aka GOF Command Pattern) to allow ACE_RB_Tree to be used with key types that do not support a < operator. Thanks to Mark De Jong for reporting the less-than problem and suggesting part of the solution. Also cleaned up class naming and comments to conform to ACE coding standards, fixed an access violation that occurred when deleting items from a tree. * tests/RB_Tree_Test.{cpp, dsp} tests/run_tests.bat tests.dsw: Added a test to verify correct tree behavior under insertion and deletion for different key and item types and insertion orders. * apps/JAWS/PROTOTYPE/HTTPU/http_headers.{cpp, h}: Changed type names for ACE_RB_Tree and associated classes. Sun Nov 15 16:34:11 1998 David L. Levine * ace/config-osf1-4.0.h,config-linux-common.h: added ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR #define. Thanks to James Johnson for reporting that it is necessary. * ace/config-kcc-common.h: removed commented-out ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #define. Sun Nov 15 12:40:35 1998 James CE Johnson * docs/tutorials/018/* * docs/tutorials/online-tutorials.html A new tutorial on ACE_Token. Sun Nov 15 12:10:39 1998 James CE Johnson * docs/tutorials/013/* A few more tweeks now that the sun is up. Mostly simple documentation changes but a couple of cleanups on the code as well. Sat Nov 14 23:15:58 EST 1998 James CE Johnson * docs/tutorials/013/message_queue.cpp docs/tutorials/013/block.cpp docs/tutorials/013/block.h docs/tutorials/013/combine.shar docs/tutorials/013/*.html Something changed between 4.5.x and 4.6 with the calling order for ACE_Lock_Adapter<>::release() and ::destroy(). Specifically: In the older release, the data block's lock was being held across its destruction. That required some odd things to prevent the lock's deletion until it was released. In the new version, it appears that release() is called on the lock before the data block's destructor is called. Data_Block::Lock::destroy() can now simply 'delete this' The funky destroy_ flag is no longer necessary. Thanks to Bob McWhirter for causing me to look back on this and get it fixed. I've also taken this opportunity to convert the tutorial to the new style colorized HTML. Sat Nov 14 22:01:52 1998 David L. Levine * bin/make_release (diff): fixed logic that determines when to use ../diffs/ instead of diffs/. Thanks to Doug for reporting this. Sat Nov 14 14:21:49 1998 Douglas C. Schmidt * ACE version 4.6.4 released. Fri Nov 13 12:03:18 1998 Carlos O'Ryan * ace/config-irix6.x-sgic++.h: * ace/config-irix6.x-sgic++-nothreads.h: Under some versions of IRIX 6.X the readdir_r() prototype does not show up unless threads support (actually POSIX1c support) is enabled. I've change the config file to only use readdir_r() if threads are enabled. Thanks to Bob Olson for reporting this problem. Fri Nov 13 08:55:18 1998 David L. Levine * tests/Pipe_Test,Process_Mutex_Test.cpp: wrapped some variables and functions with #ifndef ACE_LACKS_FORK, to avoid warnings on g++/VxWorks. Thu Nov 12 09:07:28 1998 David L. Levine * bin/make_release: use ../diffs if building ace+tao kit, so we no longer need a ../diffs symlink in TAO directory. Thanks to Hans Rohnert for motivating this. * ace/README: removed ACE_LACKS_STREAM_MODULES. Thanks to Ossama for reporting that it's no longer used. Wed Nov 11 23:11:15 1998 Darrell Brunsch * bin/ACEutils.pm: Updated to include $EXEPREFIX, which is used in front of executables in the run_test.pl's. Wed Nov 11 01:08:32 1998 Nanbor Wang * ACE-INSTALL.html: Added a link to Ossama's ACE Configuration Project. Tue Nov 10 22:29:00 1998 Douglas C. Schmidt * ACE version 4.6.3 released. Tue Nov 10 22:24:59 1998 Douglas C. Schmidt * docs/tutorials: Integrated Umar's code examples from the ACE programmers manual. Tue Nov 10 21:53:01 1998 David L. Levine * ace/Process.cpp: added const to loop index, in CHORUS code. Tue Nov 10 19:27:32 1998 Darrell Brunsch * ace/OS.[i,cpp]: Added checks for ACE_HAS_WINNT4 != 0 when checking for ACE_HAS_WINNT4 like we do elsewhere. Thanks to Valery Arkhangorodsky for pointing this out. Tue Nov 10 14:56:38 EST 1998 James CE Johnson * docs/tutorials/index.html Including #17 now * docs/tutorials/017/*.html docs/tutorials/017/combine.shar Completed! Commented and converted into standared Tutorial format. Tue Nov 10 10:09:06 1998 David L. Levine * tests/Env_Value_Test.cpp (main): replaced hard-coded "/" with ACE_DIRECTORY_SEPARATOR_STR. * ace/config-vxworks5.x.h: removed ACE_HAS_VERBOSE_NOTSUP #define. Thanks to Margherita Vittone Wiersma and Ramiro Penataro Blanco for complaining about it. Mon Nov 9 23:27:59 1998 Douglas C. Schmidt * examples/ASX/Message_Queue/buffer_stream.cpp (main): Fixed an off-by-one bug. Thanks to Rainer Blome for reporting this. Mon Nov 09 21:31:56 1998 David L. Levine * tests/Env_Value_Test.cpp (main): prepended "./" to name of file to spawn. With the last round of changes to ace/Process.cpp, that's necessary if "." isn't in the user's PATH. That's because we're now using only execvp, and no longer using execve. * tests/Atomic_Op_Test.cpp,Barrier_Test.cpp,Buffer_Stream_Test.cpp, Future_Test.cpp,IOStream_Test.cpp,MT_Reactor_Timer_Test.cpp, Map_Manager_Test.cpp,Message_Block_Test.cpp, Message_Queue_Notifications_Test.cpp,Notify_Performance_Test.cpp, Pipe_Test.cpp,Priority_Buffer_Test.cpp,Priority_Task_Test.cpp, Process_Mutex_Test.cpp,Reactor_Exceptions_Test.cpp, Reactor_Notify_Test.cpp,Reactor_Performance_Test.cpp, Reactors_Test.cpp,Reader_Writer_Test.cpp,SPIPE_Test.cpp, SV_Shared_Memory_Test.cpp,Semaphore_Test.cpp,TSS_Test.cpp, Task_Test.cpp,Thread_Manager_Test.cpp,Thread_Mutex_Test.cpp, Thread_Pool_Reactor_Test.cpp,Thread_Pool_Test.cpp, Tokens_Test.cpp,UPIPE_SAP_Test.cpp,Upgradable_RW_Test.cpp, XtReactor_Test.cpp: changed Log_Priority of "not supported" messages to LM_INFO. Hopefully, it will help avoid confusion, especially among new ACE users. Thanks to Gonzo for suggesting this. * tests/run_tests.sh: added ACE version number printouts. * BUG-REPORT-FORM: added phase (compilation/linking/execution/other), and ACE+TAO/application/both. Mon Nov 9 02:52:11 1998 Douglas C. Schmidt * ace/Signal.cpp: handle_close() wasn't being called when handle_signal() returns -1. It is now... Thanks to Vicentini Emanuele for reporting this. * ace/Event_Handler.h (ACE_Event_Handler): Added a SIGNAL_MASK so that we can pass this to handle_close() when handle_signal() returns -1. * README: Fixed a typo where ACE-install.html was misspelled as ACE-Install. Thanks to Michael Thomas for reporting this. Sun Nov 08 22:00:22 1998 David L. Levine * ace/Message_Block.h: changed ACE_Message_Type to int, to avoid overload ambiguity when it's unsigned. Sun Nov 8 10:42:38 1998 Douglas C. Schmidt * ace/Message_Block.h: Changed the ACE_Message_Type from being an enum to being an ACE_UINT32 so that it's easier for users to add their own message types to an ACE_Message_Queue. Thanks to Martin Krumpolec for this suggestion and to David Levine for catching that it should be an ACE_UINT32. Fri Nov 6 23:08:16 1998 Douglas C. Schmidt * ace/Process.cpp (spawn): Set result correctly when execvp() is called. Also, make sure to check for putenv() failing. Thanks to David Levine for pointing this out. * tests/Env_Value_Test.cpp: Reformatted the test a bit. Fri Nov 06 22:41:21 1998 David L. Levine * ace/Process.cpp (spawn): initialized local "result" to 0 to avoid egcs warning about possible unitialized use. Added const to loop index to avoid egcs warning about discarding const. * ace/OS.h,Basic_Types.h: moved ACE_UINT64_FORMAT_SPECIFIER from OS.h to Basic_Types.h, because other 64-bit int support is there. Changed default ACE_UINT64_FORMAT_SPECIFIER to "%llu", because that's what Solaris 2.x uses. * ace/config-win32-common.h,ace/config-linux-common.h: added ACE_UINT64_FORMAT_SPECIFIER overrides. * ace/Log_Msg.cpp (log): added ACE_U_LongLong support. Fri Nov 6 13:29:11 1998 Douglas C. Schmidt * ace/OS.h (ACE_UINT64_FORMAT_SPECIFIER): Changed #define ACE_UINT64_FORMAT_SPECIFIER "%I64d" to: #define ACE_UINT64_FORMAT_SPECIFIER "%I64u" to handle the signed/unsigned stuff correctly. Thanks Zoran! * ace/Process.cpp (spawn): Replaced the use of execve() with execvp() by copying the environment variables manually first. Thanks to Avi Nash for this fix. * ace/Log_Msg.cpp (log): Added support for a `%Q' format specifier to the log() method. This prints out quad words, i.e., ACE_UINT64's. Thanks to Zoran Ivanovic for contributing this. * Updated the "site map" for ACE so that it doesn't use absolute links. Thanks to Rainer Blome for contributing this. * ace/Process.h: Clarified the behavior of ACE_Process and ACE_Process_Options on UNIX because of the use of execve(), which doesn't search the path. Thanks to Avi Nash for reporting this. Fri Nov 06 15:01:20 1998 Rainer Blome * tests/run_tests.sh: augmented to make, run, and discard each test for which it doesn't find an executable. Thus, if you first say make to build the executables, all tests will just run (or not ;-), nothing is changed. If you start run_tests.sh without having built the executables, it will make, run and discard the tests one by one instead. Any compiler output goes to log/compilation.log. Fri Nov 06 12:58:24 1998 Nanbor Wang * ace/Thread_Manager.cpp: Removed several superfluous parens so the code looks clearer and less error-prone. 1998-11-06 James CE Johnson * docs/tutorials/013/block.cpp * docs/tutorials/013/page05.html * docs/tutorials/015/Compressor.cpp * docs/tutorials/015/Crypt.cpp * docs/tutorials/015/Recv.cpp * docs/tutorials/015/Xmit.cpp * docs/tutorials/015/*.html Susan Liebeskind (susan.liebeskind@gtri.gatech.edu) discovered that you can't use the 'inherited' typedef to initialize a baseclass if you use the AIX C++ compiler. Fri Nov 06 08:57:49 1998 David L. Levine * tests/Mem_Map_Test.cpp (reverse_file): put the volatile qualifier back in. LynxOS 3.0.0/PowerPC needs it with -O2 and without ACE_HAS_INLINE. * VERSION: added reference to BUG-REPORT-FORM. Thanks to Peter Nordlund for providing the new text. * ace/SOCK_Dgram_Mcast.cpp (unsubscribe): fixed ACE_TRACE string. * ACE-INSTALL.html: added note on possibly having to change -G to -shared in platform_macro.GNU's SOFLAGS with GNU linker. Thanks to Andy Gokhale and James Megquier for reporting this. If anyone knows of an automagic fix, that would be appreciated. * ACE-INSTALL.html: added note on how to enable IP multicast on LynxOS. Thu Nov 5 23:10:46 1998 Nanbor Wang * ace/Thread_Manager.cpp (wait_task): Fixed a wrong parenthesis pair. Thanks to Bob McWhirter for figuring this out. Thu Nov 5 21:41:26 1998 James CE Johnson * docs/tutorials/017 Began the ACE_Barrier tutorial. So far, it's just code but I'll add the usual heavy comments & commentary in the next few days or so. I'll update the docs/tutorials/index.html after that. Thu Nov 5 14:42:59 1998 Douglas C. Schmidt * ACE-INSTALL.html: Cleaned up a typo in the ACE-INSTALL.html file. Thanks to James Megquier for reporting this. * ace/config-sunos5.5.h: Cleaned up the comments a bit to make it more clear how to enable/disable threads. Thanks to Russ Noseworthy for reporting this. * ace/Stream.h: Clarified some subtleties with subclassing from ACE_Stream. Thanks to Stephen Coy for reminding me of this. * include/makeinclude: Updated the platform_linux_kcc.GNU file. Thanks to Joseph Weihs for reporting this. * ACE.FAQ.html: Pointed out that ACE is Y2K compliant. Thanks to Fredrik Lindahl for suggesting this. Thu Nov 05 13:23:29 1998 David L. Levine * include/makeinclude/platform_lynxos.GNU: default VERSION to 3.0.0. We no longer build/test for LynxOS 2.5.0. Added usage comments. * ACE-INSTALL.html: for LynxOS, added link to platform_lynxos.GNU file, for usage information. Replaced some absolute paths in URLs with relative paths. Wed Nov 4 23:28:55 1998 Douglas C. Schmidt * ace/Stream.h: Made all the methods of ACE_Stream virtual to enable subclasses. Thanks to Bob McWhirter's for this suggestion. Tue Nov 3 16:06:23 1998 Douglas C. Schmidt * examples/Logger/simple-server: Fixed the server so that it shuts down cleanly when ^C is given. Thanks to Avi Nash for reporting this. Tue Nov 03 13:17:49 1998 Nanbor Wang * ace/Thread_Manager.{h,i,cpp} (thread_desc_self): Changed this method to an inline function. Removed outdated comments and instead of searching thru the list when the current thread's descriptor is not found in TSS cache, place an assertion there for this should never happen. Thanks to Terry Rosenbaum for motivating the change. Mon Nov 2 22:54:08 1998 Darrell Brunsch * ace/config-win32.h: * ace/config-win32-common.h: Only define ACE_LACKS_RECVMSG/SENDMSG for non-WinSock2 systems. Before, it was being defined for all non-NT configurations. Thanks to Irfan for suggesting this change. Mon Nov 2 18:18:04 1998 Douglas C. Schmidt * examples/Reactor/Dgram/CODgram.cpp, examples/Reactor/Dgram/Dgram.cpp: Fixed these programs so that they will work across processes/machines, as well as within the same process. Thanks to Larry for reporting this. * Added a "site map" for ACE. Thanks to Rainer Blome for contributing this. Mon Nov 2 18:13:29 EST 1998 James CE Johnson * docs/ACE-FMM.html Updated from Bob's latest. Mon Nov 02 11:22:30 1998 Nanbor Wang * tests/Thread_Pool_Reactor_Test.{h,cpp}: Renamed Acceptor_Handler to Request_Handler to better reflect what the class actually does. * docs/ACE-categories.html: Fixed erroneous html tags. Thanks to Rainer Blome for reporting this. Mon Nov 02 00:26:59 1998 Irfan Pyarali * ace: Since connectors really don't have any state, they don't need to inherit from the SAP classes. Therefore, modified the following to be simpler: TLI_Connector DEV_Connector SPIPE_Connector UPIPE_Connector Sun Nov 01 21:18:24 1998 Irfan Pyarali * ace/WFMO_Reactor.cpp (upcall): Before handle_input is called because of FD_CLOSE, we check the return value of handle_input because of FD_READ. If the user had returned -1, we won't call handle_input again. Thanks to Gonzalo Diethelm for suggesting this change. * examples/Reactor/WFMO_Reactor/test_network_events.cpp (handle_input): Changed this method to keep reading from the socket until EWOULDBLOCK occurs. Sun Nov 1 17:32:50 1998 Douglas C. Schmidt * tests/Hash_Map_Manager_Test.cpp (run_test): Oops, we need to account for compilers that lack template specialization! Thanks to David Levine for reporting this. Sun Nov 01 17:24:56 1998 David L. Levine * ace/config-win32-borland.h,config-win32-common.h,README: removed ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER because it's no longer used. Thanks to Ossama for reporting this. Sun Nov 01 08:54:08 1998 Douglas C. Schmidt * ACE version 4.6.2 released. Sat Oct 31 18:12:36 1998 Douglas C. Schmidt * tests/Hash_Map_Manager_Test.cpp (run_test): updated the test to validate that the trybind() operation works correctly. Thanks to Bill Fulton for this fix. * ace/Hash_Map_Manager.cpp: trybind() was doing the "Wrong Thing"[TM] by overwritting the INT_ID even if the entry was already in the map! It's fixed now... Thanks to Bill Fulton for reporting this. Sat Oct 31 17:15:42 1998 Douglas C. Schmidt * ACE version 4.6.1 released. 1998-10-31 Nagarajan Surendran * ace/Select_Reactor_T.cpp (dispatch): Added signal_occurred at the right return to indicate that a handle_signal () has been dispatched. Fri Oct 30 20:31:27 1998 Darrell Brunsch * tests/Semaphore_Test.cpp: Cleaned up the #if's to make it easier to understand, and fixed a related problem. Thanks to Ossama for finding this. Fri Oct 30 15:47:39 1998 Douglas C. Schmidt * ace/Select_Reactor_T.cpp (dispatch): Make sure to include a count of 1 if the Reactor dispatched a handle_signal() method. This ensures we don't return 0 from handle_events() in cases where we didn't timeout... Thanks to Naga for chasing this down! Fri Oct 30 11:53:16 1998 David L. Levine * ace/config-sunos5.6.h: removed ACE_HAS_POSIX_SEM #define because it caused a seg fault in Reactor_Notify_Test on g++ 2.7.2.3/Solaris86 (with -D_POSIX_C_SOURCE=199506L -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__). The seg fault is at the end of the test: #0 0xdfd5a809 in realfree () #1 0xdfd5ad16 in cleanfree () #2 0xdfd5a43a in _malloc_unlocked () #3 0xdfd5a2e9 in malloc () #4 0xdfd61a25 in _strdup () #5 0xdfeffcd5 in ACE_Log_Msg::log (this=0x8052ec0, format_str=0x804f0af "(%P|%t) Ending %s test at %D\n", log_priority=, argp=0x80476ac "\n\004\bԁ\177\023\004\bv\004\b\004\b\001") at /export/home/conga/levine/ACE_wrappers/ace/OS.i:1399 #6 0xdfeffbfa in ACE_Log_Msg::log (this=0x8052ec0, log_priority=, format_str=0x804f0ac "d\n") at Log_Msg.cpp:601 #7 0x804c935 in main () at Reactor_Notify_Test.cpp:297 It's hard to imagine how ACE_HAS_POSIX_SEM could cause that. But, it's perfectly repeatable. And, we can live without ACE_HAS_POSIX_SEM. * tests/run_tests.sh: really commented out Thread_Pool_Reactor_Test. It _wasn't_ commented out in the 4.6 release. * tests/Mem_Map_Test.cpp (reverse_file): removed volatile qualifier because it no longer seems to be necessary for LynxOS 3.0.0/PowerPC. Fri Oct 30 09:23:55 1998 Douglas C. Schmidt * ace/SString.h: Cleaned up the ACE_SString comments to be more helpful. Thanks to Ivan Murphy for motivating this. Thu Oct 29 22:19:19 1998 James CE Johnson * docs/ACE-FMM.html: Updated from Bob's latest version. Thanks Bob! Thu Oct 29 21:13:41 1998 James CE Johnson * docs/tutorials/016/Condition_i.cpp: Fixed messed-up the signature on Condition::operator Condition::value_t(void) Thu Oct 29 18:51:19 1998 Steve Huston * ace/ACE.cpp: Added "|| defined (_AIX)" to decision to do template instantiations at end of file. Thanks to Ian Wright for this fix. * ace/config-aix-4.1.x.h: Added ability to use g++ in addition to xlC. Thanks again to Ian Wright for this addition. * include/makeinclude/platform_aix_g++.GNU: New platform_macros file for building on AIX with g++. And, once again, thanks to Ian Wright for this contribution. * ace/NT_Service.i: Added ACE_INLINE to the methods in this file. Thanks to Goran Lowkrantz for this fix. Thu Oct 29 17:36:29 1998 Darrell Brunsch * tests/Semaphore_Test: Removed the timed acquire stuff from the worker thread and the display at the end of the test. Now it shouldn't output the confusing "100% of threads timed out" message on platforms without timed acquire. Thu Oct 29 15:25:19 1998 Nanbor Wang * ace/Svc_Handler.cpp (open): Added a trailing newline to the error message. Thu Oct 29 15:13:07 EST 1998 James CE Johnson * docs/tutorials/index.html * docs/tutorials/016/* Added Tutorial 016. This discusses ACE_Condition<> and ways to make it more manageable in an application. Thu Oct 29 11:44:21 1998 David L. Levine * ace/config-sunos5.6.h: changed ACE_THREAD_POSIX_SEM to ACE_HAS_POSIX_SEM. It looked like a typo. Only #define ACE_HAS_POSIX_SEM if _POSIX_PTHREAD_SEMANTICS is #defined. Thanks to Ossama for help with this. Also, removed ACE_HAS_PTHREADS_STD because it's #defined in config-sunos5.5.h. Wed Oct 28 14:30:01 1998 Rainer Blome * ace/Makefile: added AIX_TEMPLATE_HACK support. This patch helps using Rob Jordan's trick described in the ACE-INSTALL file. The existing description in the ACE-INSTALL is a little misleading. Creating a ACE_All_Tmp.h will not really help, because the Makefile will look for a ACE_All_Tmp.cpp. Here's how to use the patch: Use `make ACE_All' to create 0_ACE_All_Src.h, 0_ACE_All_Src.cpp and 0_ACE_All_Tmp.cpp. These files contain include directives for each of the files mentioned in the makefile variables FILES and TEMPLATE_FILES. Then `make AIX_TEMPLATE_HACK=1' to compile the library in one go. Compilation is fast then, but `ar' will still take a long time. Wed Oct 28 09:13:10 1998 David L. Levine * ACE-INSTALL.html: expanded discussion of non-static ACE_Object_Manager, including the fact that it's the default config on Win32 and VxWorks. And that not declaring main () with two arguments will lead to link failure due to unresolved ace_main_i. * tests/Time_Service_Test.cpp,Tokens_Test.cpp: display filename if ACE_Process::spawn () fails. * tests/run_tests.sh: only run Time_Service_Test if ../netsvcs/server/main exists. Also, exit if a command line argument is provided to run_tests.sh, and the argument is not a Chorus hostname. * ace/Object_Manager.h: declare the ACE_Object_Manager_Base methods to be public, instead of protected, for DEC CXX 5.6 (in addition to Diab for PSoS). Thanks to Doug Anderson for suggesting this. * ace/config-sunos5.5.h: removed ACE_HAS_TIMER_SKEW. Thanks to Russ Noseworthy for verifying that it no longer seems to be necessary. * ace/config-linux-common.h: added ACE_HAS_PROCFS. Tue Oct 27 22:14:18 1998 David L. Levine * ACE version 4.6 released. Tue Oct 27 21:54:17 1998 Douglas C. Schmidt * man: Added the ACE_Service_Repository_Iterator.{html,3} files. Thanks to Erik Koerber for reporting this. * Updated the manual pages to reflect the latest APIs in the new release. Tue Oct 27 14:16:27 1998 James CE Johnson * docs/tutorials/015/Recv.cpp : Changed atoi() to ACE_OS::atoi() * docs/tutorials/015/page22.html: Ensure that the correct cpp and header files are HREF'd Thanks to Susan Leibeskind for catching these. Tue Oct 27 12:31:28 1998 Nanbor Wang * ace/OS.i (cond_timedwait): Made sure the broadcaster always gets signaled no matter what the "wait" function return if this is the last waiter for this cv. In any case, the calling thread is no longer waiting on the cv any more. Tue Oct 27 08:22:41 1998 David L. Levine * ace/config-win32.h: fixed typo in comment: ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER instead of ACE_DONT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER. Thanks to Olivier Lau for reporting this. * tests/Semaphore_Test.cpp (test_timeout_count,test_timeout): put these in #ifndef STHREADS && #ifndef POSIX_SEM protection to avoid compiler warnings about unused variable/function. * ace/config-sunos5.5.h: added comment to comment out ACE_HAS_REGEX if there are link problems with g++ or egcs on SunOS 5.5. Thanks to Hakan Kallberg for reporting this. * ACE-INSTALL.html: added Sun C++ version/patchlevel information, including a link to Sun's tech patches home patch. Thanks to Susan for recommending this, and for providing the URL. * ACE-INSTALL.html: added note about segfault when attempting to register a signal handler on LynxOS 3.0.0/PowerPC. * ace/Object_Manager.cpp (fini): added check of instance_->shutting_down_ on entry. This will avoid reentrance if fini () is called before the Object_Manager is (explicitly) destroyed. Thanks to Gonzo for reporting it. Tue Oct 27 05:47:21 1998 Douglas C. Schmidt * ACE version 4.5.65 released. Tue Oct 27 03:24:36 1998 Nanbor Wang * ace/TP_Reactor.h: Added an description for TP_Reactor. * ace/OS.i (cond_timedwait): When emulating cv, there're chances that the "wait for being signaled" function times out and return an error. In this rare case, we must also signal the broadcasting thread to bail out of cond_broadcast to avoid deadlock since we are no longer waiting on the cv anymore. Thanks to Detlef Becker for noticing the problem and providing the patch. Mon Oct 26 20:59:15 1998 David L. Levine * ace/Synch_T.{i,cpp} (ACE_Lock_Adapter): uninlined the ACE_Lock_Adapter default constructor. SunPRO C++ 4.2 + patch 104631-07 has trouble compiling TAO with it inline. Thanks to Terry Rosenbaum for tracking this problem down and providing the fix. Mon Oct 26 18:33:28 1998 Carlos O'Ryan * Updated the dependencies in all the Makefiles, this was required after the new Message_Block_T.{h,i,cpp} files. Mon Oct 26 19:16:27 1998 James CE Johnson * docs/tutorials/000/index.html: This index is has a layout similar to Umar's ACE Tutorial document. As time progresses, we will be merging the examples in his document into the online tutorials. The current free-form tutorials will not go away but will be supplimented with Umar's more structured approach. Mon Oct 26 17:37:55 1998 Carlos O'Ryan * ace/OS.h: * ace/config-sunos5.4-sunc++-4.x.h: * ace/config-sunos5.5.h: Sun/CC throws the ::xalloc exception when operator new cannot allocate the memory, thanks to Terry Rosenbaum for reporting this and providing a patch. * ace/Makefile: Updated dependencies. Mon Oct 26 17:02:48 1998 Nanbor Wang * tests/Thread_Pool_Reactor_Test.cpp: Reduced the number of connector threads _ONLY_ on platforms that couldn't handle too many simultaneous connection. Changed to use dotted-decimal format to specify connection endpoint for some platforms don't have a decent DNS support. Mon Oct 26 12:04:10 1998 Nanbor Wang * ace/ace_lib.dsp: Added TP_Reactor into the project. Mon Oct 26 11:29:55 1998 Darrell E. Brunsch * tests/Semaphore_Test.cpp: Changed behavior for ACE_HAS_STHREADS and ACE_HAS_POSIX_SEM so it still tests everything but doesn't test the timed waits. Mon Oct 26 08:22:18 1998 David L. Levine * docs/ACE-guidelines.html: added recommendation and explanation re. use of #pragma once. * docs/ACE-guidelines.html: recommend avoiding g++ 2.8.1. * tests/SV_Shared_Memory_Test.cpp: don't try to run this test if ACE_LACKS_FORK, because it uses ACE_OS::fork (). It allocates the shared memory segment before the fork, of course, so that was leaked if the fork was attempted but failed. * tests/Pipe_Test.cpp,Process_Mutex_Test.cpp: don't try to run these tests if ACE_LACKS_FORK, either. * tests/Mem_Map_Test.cpp (reverse_file): use a local, volatile variable for the array index. Without it, the test core dumps on LynxOS 3.0.0/PowerPC with -O2. * tests/run_tests.sh: run Timer_Queue_Test and Upgradeable_RW_Test on LynxOS. * tests/run_tests.vxworks: changed Message_Queue_Notifications_Test.cpp to Message_Queue_Notifications_Test. Mon Oct 26 01:49:44 1998 Nanbor Wang * tests/Env_Value_Test.cpp (main): Changed argv and envp to type LPTSTR[]. Sun Oct 25 23:52:40 1998 Douglas C. Schmidt * ACE version 4.5.64 released. Sun Oct 25 22:18:26 1998 Douglas C. Schmidt * ace/Select_Reactor_T.cpp (dispatch): Be more careful in how we handle dispatching when signals occur. In general, if we're interrupted by a non-Reactor-aware signal handler we need to bail out... Thanks to Naga for reporting this. * examples/Reactor/Misc/test_signals_1.cpp: Cleaned up this test so that it'll show off the signal handling capabilities of the ACE Reactor better. Sun Oct 25 14:13:31 1998 Darrell Brunsch * ace/OS.i: Changed ACE_OS::sigaction to work with a null value for on Windows. Thanks to Jim Buck for reporting this. * examples/Reactor/Misc/reactors.dsp: * examples/Reactor/Misc/signals_1.dsp: * examples/Reactor/Misc/signals_2.dsp: Corrected the include and library paths. Thanks to Zoran Ivanovic for reporting this. * ChangeLog: Removed all the trailing spaces and tab characters so CVS's commit-check will be happy. Sun Oct 25 10:59:21 1998 Douglas C. Schmidt * ace/config-sunos5.5.h: Added #if defined (i386) #define ACE_HAS_X86_STAT_MACROS #endif /* i386 */ to check for the [f]stat macros on Solaris for Intel. Thanks to Daniel Nieten for reporting this. Sun Oct 25 00:15:03 1998 Nanbor Wang * ace/Service_Config.cpp (process_directives): We should use ASYS_WIDE_STRING to convert a to a UNICODE string. Sat Oct 24 18:39:11 1998 Steve Huston * ace/ACE.cpp (get_ip_interfaces, get_handle): Add _AIX to the list of macros which enable the proper code for these to work. ACE::get_ip_interfaces still doesn't work right on AIX, though - it reports one link-level interface. May need to get IBM's help with this. Sat Oct 24 18:07:00 1998 Nanbor Wang * ace/OS.h (ACE_TEXT): Consolidated various ACE_TEXT definitions into one and place it near the beginning of the file. Re-indented macros. Sat Oct 24 17:47:15 1998 Arturo Montes * ace/OS.i (sigwait): Sigwait is little different with FSU pthreads, sigwait take two arguments and return -1 if error, 0 in otherwise. Sat Oct 24 17:26:41 1998 Darrell Brunsch * ace/OS.h (ACE_TEXT): Moved Nanbor's changes outside of ACE_PSOS block. * ace/config-win32.h: Defined ACE_HAS_TEXT_MACRO_CONFLICT, seeing that MSVC already defines __TEXT. Sat Oct 24 15:21:32 1998 Nanbor Wang * ace/OS.h (ACE_TEXT): Changed the macro __TEXT to ACE_TEXT to avoid conflicting with OS/390. __TEXT is still available for backward compatibility unless ACE_HAS_TEXT_MACRO_CONFLICT is defined. However, using ACE_TEXT is prefered for obvious reason. Thanks to Paul K. Fisher for reporting this. * ace/README: Added documentation for ACE_HAS_TEXT_MACRO_CONFLICT. * *.cpp: Replaced a bunch of __TEXT to ACE_TEXT. Sat Oct 24 08:34:08 1998 Douglas C. Schmidt * ace/OS.i: Updated the fstat() and stat() calls to work properly on the Solaris for Intel platform, which does weird things to the fstat() and stat() functions to handle 32 and 64 bit file offsets. Thanks to Daniel Nieten for reporting this. Sat Oct 24 02:13:11 1998 Detlef Backer * ace/OS.cpp (invoke): ACE_Thread_Adapter::invoke() swapped the nesting level of __except() and __finally() because if the selector returns EXCEPTION_EXECUTE_HANDLER a global unwind takes place, activating nested __finally blocks and in this case terminating the thread before having a chance to execute the handler. After reversing the logic, now the exception handler gets called first before the termination handler is invoked. Furthermore I added the call to GetExceptionInformation(), passing the result as a void* into the selector function. This allows a case sensitive handling startegy of the exception in the selector function. (inherit_log_msg): In ACE_Thread_Adapter::inherit_log_msg() I moved the copy operation from the selector and handler attributes outside of the "if (this->ostream_)" condition, because I don't think this condition is related to the SEH. (thr_create): In ACE_OS::thr_create() I "inherit" the current selector handler into the newly created ACE_Thread_Adapter in case that the caller did not specify one at invocation. * ace/Thread_Manager.cpp (spawn_i): In ACE_Thread_Manager::spawn_i() I added the initialization of selector and handler at the creation time of ACE_Thread_Adapter. Fri Oct 23 21:11:03 1998 Douglas C. Schmidt * ace/OS.h: Changed a comment to be consistent. Thanks to Serge Kolgan for reporting this. Fri Oct 23 20:39:00 1998 Chris Gill * Paul Christopher Gill was born Friday October 23, 1998, at 20:39 CDT, weighing 6 lbs. 7 oz., at 19 3/4 inches in length. A true hacker in the making, Paul decided to work through the evening even though it was a Friday night. ;-) Fri Oct 23 11:37:38 1998 Steve Huston * include/makeinclude/platform_aix4.2.GNU: Removed -qinitauto=5F from DCFLAGS - with it, Process_Strategy_Test was going CPU bound in an ostream operation. Fri Oct 23 00:27:11 1998 Douglas C. Schmidt * ACE version 4.5.63 released. Thu Oct 22 21:32:14 1998 Darrell Brunsch * ACE-INSTALL.html: Since we've been successfully using MSVC 6.0 for a while, might as well mention it here in the documentation. Thu Oct 22 19:48:20 1998 James CE Johnson * docs/index.html Reformatted it via emacs to make it more readable when editing. Added a comment pointing to Bob McWhirter's original FMM document to make it easier to update the repository in the future. * docs/tutorials/015/Client.h * docs/tutorials/015/Client.cpp * docs/tutorials/015/Server.h * docs/tutorials/015/Server.cpp Since Windows just *pretends* to have mixed-case names the cpp files conflict with client.cpp and server.cpp. I renamed these files to: * docs/tutorials/015/Client_i.h * docs/tutorials/015/Client_i.cpp * docs/tutorials/015/Server_i.h * docs/tutorials/015/Server_i.cpp Which necessitated changes to * docs/tutorials/015/client.cpp * docs/tutorials/015/server.cpp * docs/tutorials/015/Makefile.client * docs/tutorials/015/Makefile.server * docs/tutorials/015/Makefile * docs/tutorials/015/combine.shar * docs/tutorials/015/*.html Thanks to Darrell Brunsch for catching this. Thu Oct 22 16:52:21 1998 Steve Huston * tests/Thread_Pool_Reactor_Test.(cpp h): Adjusted debug output to learn more about what's happening; added a check to be sure that the correct number of messages are processed by each Svc_Handler. Thu Oct 22 15:46:42 1998 David L. Levine * ace/OS.cpp (ACE_TSS_Emulation::tss_base): if storage for the TSS data must be allocated off the heap, zero all of it. This avoids problems after fork in the child process on LynxOS. Wed Oct 21 22:23:06 1998 Douglas C. Schmidt * ACE version 4.5.62 released. Wed Oct 21 21:19:53 1998 Douglas C. Schmidt * ace/Service_Config.cpp (process_directives): Replaced a return -1 with a result = -1 and a break to avoid a memory leak. Thanks to David for pointing this out. Wed Oct 21 20:00:51 1998 Nagarajan Surendran * tests/Timer_Queue_Test.cpp : * tests/Map_Manager_Test.cpp: * tests/Dynamic_Priority_Test.cpp: Replaced double with ACE_timer_t everywhere so that it works on platforms like Chorus. Wed Oct 21 18:44:26 1998 Nagarajan Surendran * tests/run_tests.sh: Changed egrep Chorus to CHORUS to identify a Chorus vme board. Wed Oct 21 17:51:52 1998 Steve Huston * ace/ACE.cpp (get_ip_interfaces): If compiling on Win32 w/ Winsock 2, use WSAIoctl(SIO_GET_INTERFACE_LIST) to get the interfaces from the kernel rather than trying to fish through the registry. This should help TAO's naming service be somewhat more reliable on Win32, as well as solve some other nasties that plagued this thing. * ace/ws2tcpip.h: Filled out necessary pieces for the above change. Wed Oct 21 14:19:11 EDT 1998 James CE Johnson * docs/tutorials/007/thread_pool.cpp * docs/tutorials/007/thread_pool.h Alison Greig's question caused me to look back at these and I find that an older g++ is unhappy about the close() methods. It seems to confuse the baseclass 'close(u_long flags=0)' with my derived 'close(void)' even though I also have 'close(u_long)'. Anyway, I removed my 'close(void)' and now do all of my work in the other method. * docs/tutorials/007/client_handler.cpp:handle_input() Now using ACE_OS::thr_equal() instead of operator==() This fixes Alison's problem. (Thanks for the solution David!) Wed Oct 21 07:12:32 1998 David L. Levine * tests/Thread_Pool_Reactor_Test.cpp: moved #include of tests/Thread_Pool_Reactor_Test.h inside of ACE_HAS_THREADS protection, so that it will compile without thread support. Thanks to Jan Perman for reporting this. * tests/MT_Reactor_Timer_Test.cpp: moved "the_reactor" declaration outside of ACE_HAS_THREADS protection, so that it will compile without thread support. Thanks to Jan Perman for reporting this. * bin/g++dep: added -DACE_LACKS_PRAGMA_ONCE to keep it quiet when the config.h doesn't #define it. Thanks to Naga for reporting this. * ace/config-g++-common.h: protected #define of ACE_LACKS_PRAGMA_ONCE, because g++dep now defines it with a -D. * ACE-INSTALL.html: updated Linux and LynxOS version status, and egcs --enable-shared discussion. * ace/Hash_Map_Manager.cpp (operator *): only declare local "result" without ACE_NDEBUG, to avoid compile warning with debug=0. * ace/Synch.cpp (ACE_Recursive_Thread_Mutex::release): only declare local "t_id" without ACE_NDEBUG, to avoid compile warning with debug=0. * ace/Timer_Heap_T.cpp (reschedule): only declare local "timerID" without ACE_NDEBUG, to avoid compile warning with debug=0. * ace/SV_Message_Queue.h: fixed #ifndef protection to use ACE_SV_MESSAGE_QUEUE_H instead of ACE_MESSAGE_QUEUE_H, to prevent collision with the Message_Queue.h's protection. Thanks to Rainer Blome for reporting this. * ace/Object_Manager.cpp: removed some old, unused printouts. Tue Oct 20 19:40:41 1998 Steve Huston * include/makeinclude/platform_hpux_aCC.GNU: Added -DACE_LACKS_PRAGMA_ONCE - aCC on both 10.20 and 11.00 complain about #pragma once. Added it here rather than in config.h because (1) it can be set in one file, not two, (2) in case a #pragma gets in before config.h is included somehow. * include/makeinclude/platform_aix4.2.GNU: Revised flags passed to xlC_r - remove -qextchk because it's the cause of the mismatched type errors building netsvcs/lib (IBM reports this is fixed in compiler version 3.6.4). Removed -M - it's not needed and wastes disk space. Moved -qcheck to DCFLAGS and added -qinitauto=5F to DCFLAGS. * include/makeinclude/rules.local.GNU: Added SHLIBA to the files that get 'realclean'ed - this covers libACEshr.a on AIX. * netsvcs/lib/Makefile: * netsvcs/clients/Naming/Client/Makefile: Added ACELIB to LIBS to insure libACE is linked in. Tue Oct 20 19:37:42 1998 James CE Johnson * docs/tutorials/014/*.html: * docs/tutorials/014/Makefile: * docs/tutorials/014/combine.shar: Colorized using the new and improved 'combine' script. Also modified the Makefile so that the HTML sources won't get destroyed if the shar operation failed. * docs/tutorials/015/Makefile: Added the same Makefile modification to prevent loss of HTML sources Tue Oct 20 16:28:12 1998 David L. Levine * ACE-INSTALL.html: added recommended DU CXX version info. Thanks to Susan Liebeskind for suggesting this. * ACE-INSTALL.html: added AIX 4.2.1 xlC V3.1 patch info. Thanks to Susan Liebeskind for supplying it, in ready-to-use form. * tests/Thread_Manager._Test.cpp (main): changed debug messages for suspend_grp/resume_grp with Pthreads, which fail due to ENOTSUP. The resume_grp message was wrong (copy and paste error). In addition, I reworded the messages to that run_tests.check won't catch them. They don't indicate a problem, just that Pthreads doesn't support those operations; see Steve's Thu Oct 15 16:40:41 1998 entry. Tue Oct 20 14:31:37 EDT 1998 James CE Johnson * docs/tutorials/001/Makefile * docs/tutorials/002/Makefile * docs/tutorials/003/Makefile * docs/tutorials/005/Makefile * docs/tutorials/006/Makefile * docs/tutorials/007/Makefile * docs/tutorials/008/Makefile * docs/tutorials/009/Makefile * docs/tutorials/010/Makefile * docs/tutorials/011/Makefile * docs/tutorials/012/Makefile * docs/tutorials/013/Makefile * docs/tutorials/012a/Makefile * docs/tutorials/Makefile Updated these makefiles to remove rules.lib.GNU Added the "top-level" makefile to allow building of all tutorials in one step. Tue Oct 20 12:54:39 1998 David L. Levine * ACE version 4.5.61 released. Tue Oct 20 07:43:56 1998 David L. Levine * include/makeinclude/platform_irix6.x_g++.GNU: added LIBS += -lpthread. Thanks to Peter Nordlund for reporting that it is needed. * ace/config-irix6.x-sgic++-nothreads.h,config-irix6.x-common.h: moved ACE_HAS_GPERF from SGI C++ config to common SGI C++/g++ config. Thanks to Peter Nordlund for recommending this. * ace/config-aix-4.1.x.h,config-dgux-4.11-epc.h,config-dgux-4.x-ghs.h, config-irix5.2.h,config-irix5.3-g++.h,config-irix5.3-sgic++.h, config-m88k.h,config-tandem.h,config-osf1-3.2.h, config-sunos5.4-centerline-2.x.h,config-sunos5.4-g++.h, config-sunos5.4-sunc++-4.x-orbix.h,config-sunos5.4-sunc++-4.x.h, config-sunos5.5.h,config-unixware-2.01-g++.h, config-unixware-2.1.2-g++.h,config-irix6.x-common.h,README: removed ACE_HAS_SVR4_TIME because it is no longer used. Thanks to Peter Nordlund for reporting this. * tests/MT_Reactor_Timer_Test.cpp (handle_exception, handle_timeout): added ACE_UNUSED_ARG's. * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: added #include of ace/streams.h, because the dump () method uses ofstream. * examples/Connection/non_blocking/CPP-acceptor.cpp (handle_close): added ACE_UNUSED_ARG's. * ace/config-sunos5.5-sunc++-4.x.h,config-sunos5.5-g++.h: removed, because config-sunos5.5.h should be used instead. * performance-tests/Misc/basic_perf.cpp (iteration_time): added static cast 0 to ACE_hrtime_t to please g++ on VxWorks (which uses ACE_U_LongLong for ACE_hrtime_t). * ace/config-cygwin32-common.h: removed msg_accrights{,len} defines, because they were commented out. * OS.h,config-aix-4.1.x.h,config-linux-common.h,README: added ACE_LACKS_MSG_ACCRIGHTS support. This consolidates code that was in both of the config files. Thanks to Ossama for suggesting it. * include/makeinclude/platform_vxworks*.GNU: moved our wind installation from /project/doc/wind to /project/doc/pkg/wind. Tue Oct 20 07:09:31 1998 Steve Huston * ace/config-aix-4.2.x.h: Added ACE_HAS_GPERF. * tests/tests.(mak mdp): Fixed to build clean; Added: DLList_Test, High_Res_Timer_Test, Dynamic_Priority_Test, Thread_Pool_Reactor_Test, Upgradable_RW_Test, MT_Reactor_Timer_Test. Mon Oct 19 21:40:56 1998 David L. Levine * *.h: changed include protection from #if !defined to ifndef. Added #pragma once, if possible, i.e., after #include of an ace/ header. It can only be done after ace/config.h is included, because some platforms don't allow #pragma once. * include/makeinclude/wrapper_macros.GNU: removed -DACE_LACKS_PRAGMA for g++ because it's now in config-g++-common.h. Mon Oct 19 20:44:33 1998 James CE Johnson * docs/tutorials/015: Once again I've modified just about every file. Finally though Tutorial 015: Protocol Stream is done! * docs/tutorials/combine Get rid of that silly "links" file and add "bodies". The new file is an ordered list of files to use when assembling the HTML pages. This makes it easier to stuff source code into the pages. * docs/tutorials/index.html I could have sworn that I linked in 014 many moons ago. Appologies to Bob McWhirter for leaving this out for so long! Mon Oct 19 17:00:52 EDT 1998 James CE Johnson * docs/tutorials/015: Just about everything in this directory has been touched. I'm in the middle of documenting it and need a checkpoint so nothing gets lost! ETA for completion is later tonight or sometime tomorrow. Mon Oct 19 11:47:20 1998 David L. Levine * ace/OS.cpp (readPPCTimeBase): wrapped each line in "". Otherwise, the C++ compiler on MVS complains unterminated strings. Even though it isn't supposed to see this code :-/ Thanks to Chuck Gehr for reporting this. * ace/config-g++-common.h: added ACE_LACKS_PRAGMA_ONCE. g++ doesn't need it, because it optimizes includes if the #ifndef header protection convention is followed. And, it complains about #pragma once. * ace/config-win32-common.h: added ACE_LACKS_PRAGMA_ONCE, unless _MSC_VER < 1000. Mon Oct 19 11:13:00 1998 Chris Gill * ace/Message_Block.h: Added title and description comments to deadline and laxity message priority strategy classes. Sun Oct 18 17:22:00 1998 James CE Johnson * docs/tutorials/014/combine.shar: * docs/tutorials/015/combine.shar: The additional input files to the combine script. A shell archive seems to be the most economical way to keep their history. Individual files just create clutter and a tar.gz wouldn't be diff-able in the repository. * docs/tutorials/014/Makefile: * docs/tutorials/015/Makefile: Adjusted to create the HTML and combine.shar files. Sun Oct 18 16:51:43 1998 James CE Johnson * docs/tutorials/combine: A perl script for combining several "source" files into an HTML. It was designed to combine comment files with .cpp and .h files in the creation of tutorials. The HTML output is commited to the repository, I haven't decided yet if it's worth saving the input. * docs/tutorials/fix.Makefile: This was pulled out of one of the old tutorials and made a bit more useful. It's purpose is to pull dependency information out of a Makefile and create a .depend file instead. This keeps makfiles cleaner and less confusing. * docs/tutorials/014/Makefile * docs/tutorials/014/Task.cpp Minor changes. I attempted to add THR_JOINABLE to the activate() call but that resulted in a permanent hangup on Linux when trying to exit the application * docs/tutorials/015/Client.cpp * docs/tutorials/015/Client.h * docs/tutorials/015/Compressor.cpp * docs/tutorials/015/Compressor.h * docs/tutorials/015/Crypt.cpp * docs/tutorials/015/Crypt.h * docs/tutorials/015/Handler.cpp * docs/tutorials/015/Handler.h * docs/tutorials/015/Makefile * docs/tutorials/015/Makefile.client * docs/tutorials/015/Makefile.server * docs/tutorials/015/Protocol_Stream.cpp * docs/tutorials/015/Protocol_Stream.h * docs/tutorials/015/Protocol_Task.cpp * docs/tutorials/015/Protocol_Task.h * docs/tutorials/015/Recv.cpp * docs/tutorials/015/Recv.h * docs/tutorials/015/Server.cpp * docs/tutorials/015/Server.h * docs/tutorials/015/Xmit.cpp * docs/tutorials/015/Xmit.h * docs/tutorials/015/client.cpp * docs/tutorials/015/page01.html * docs/tutorials/015/page02.html * docs/tutorials/015/page03.html * docs/tutorials/015/page04.html * docs/tutorials/015/page05.html * docs/tutorials/015/page06.html * docs/tutorials/015/server.cpp The beginnings of a protocol stream tutorial. The code is done but the tutorializing (eg -- HTML and comments) isn't complete. Sat Oct 17 21:20:44 1998 David L. Levine * ace/OS.i (gethrtime): updated comments on Alpha rpcc instruction. Only 32 bits of high-res tick count are available, even the 64 bits are read by the rpcc instruction. The high 32 bits are for implementation-specific use, such as a virtual tick counter. Sat Oct 17 13:41:57 1998 Douglas C. Schmidt * test/Future_Test.cpp: Added more comments so that the structure and participants in the Active Object pattern would be more obvious. * ace/Message_Block: Added a priority parameter, which defaults to 0, to one of the constructor for ACE_Message_Block so that it simplifies the new Method_Request semantics. * ace/Method_Request.h: Added priority() accessor/mutator methods so that we can control where a Method_Request is placed in the Activation_Queue, which is just a Facade for an ACE_Message_Queue. * ace: Renamed ACE_Method_Object to ACE_Method_Request to correspond to the new version of the Active Object pattern at http://www.cs.wustl.edu/~schmidt/Act-Obj.ps.gz. This change involved renaming the Method_Object.h and Method_Object.cpp files to Method_Request.h and Method_Request.cpp, respectively. For backwards compatibility, I kept the Method_Object.h file, which now just includes Method_Request.h and adds a typedef of ACE_Method_Request to ACE_Method_Object so no applications should break. New applications should use the new names, however. * ace/Acceptor.h: Moved the ACE_Oneshot_Acceptor::register_handler() method into the private part of the class so that users won't be tempted to call it! Thanks to Larry for reporting this. * examples/Connection/non_blocking/CPP-acceptor: Fixed a bug that occurred when timers were used in conjunction with the ACE_Oneshot_Acceptor and handle_close(). * ace/Acceptor: Cleaned up the ACE_Oneshot_Acceptor comments. Boy, this was confusing ;-). Thanks to Larry for reporting this. Sat Oct 17 12:54:17 1998 Douglas C. Schmidt * ACE version 4.5.60 released. Sat Oct 17 12:50:44 1998 Douglas C. Schmidt * Fixed a number of warnings that crept into the release yesterday. Thanks to David Levine and DEC C++ for reporting these. Sat Oct 17 00:35:21 1998 Douglas C. Schmidt * ACE version 4.5.59 released. Sat Oct 17 00:29:37 1998 Douglas C. Schmidt * ace/Service_Config.cpp (process_directives): Only warn about a missing svc.conf file if we're debugging. Fri Oct 16 23:16:30 1998 David L. Levine * docs/ACE-guidelines.html: 1) use complete sentences for comments and 2) use prefix operators where possible, such as on an iteration loop index. Fri Oct 16 15:45:08 1998 Douglas C. Schmidt * ace/Service_Config: Added a new method called init_svc_conf_file_queue() that will properly initialize the new queue containing the list of svc.conf files. * ace/Service_Config: Added a return value to parse_args() to make sure we do a sanity check... * ace: Replaced all #if !defined (ACE_FOO_H) with #ifndef ACE_FOO_H since many C++ preprocessors can recognize this idiom and optimize for it. * ace/Service_Config.cpp (parse_args): Modified the -S option to enqueue the directives in FIFO order rather than in LIFO order. It's more intuitive to process them in the order they are received! * ace/Service_Config: It's now possible to give multiple -f options to the Service Configurator and it will open multiple files and process each one in the order specified in argv. This is useful if svc.conf are generated by automatic tools, e.g., Wizards, that are operating independently. Thanks to David O'Farrell for suggesting this. * tests/Upgradable_RW_Test.cpp: Revised the programming style ;-). * tests/Map_Manager_Test.cpp: Replaced all uses of postfix ++ operators with prefix ++ operators because they are faster when iterating over the various Maps. * ace/[Hash_]Map_Manager: Today we decided to remove the use of locking for the ACE[_Hash]_Map_Manager Iterators. The original scheme acquired the mutex of the [Hash_]Map_Manager on every ++operator++/--operator-- call. Not only was this very inefficient, but it was also essentially useless since it doesn't protect against arbitrary insertions/deletions in the underlying map during the iteration. Our first thought was to put an ACE_Read_Guard into the iterator itself and acquire this for the duration of the iteration. However, this approach is totally broken when using STL-style iterators since the postfix ++ and -- operators return a copy of the iterator, which easily causes deadlocks if non-recursive mutexes are used. After much discussion, we decided it's better to let users figure out their own locking usecase, rather than have the iterators guess wrong and either screw up their code or yield substantial inefficiencies. Therefore, the right approach is to do something like this: typedef ACE_Map_Manager MAP_MANAGER; typedef ACE_Map_Iterator ITERATOR; typedef ACE_Map_Entry ENTRY; void foo (MAP_MANAGER &map) { // ... { // Explicitly grab the lock and hold it for the duration of // the iteration. ACE_READ_GUARD (ACE_Thread_Mutex, ace_mon, map.mutex ()); ITERATOR end = map.end (); for (ITERATOR iter = map.begin (); iter != end; ++iter) { ENTRY &entry = *iter; ++i; } // ... } Note that as a general rule, it's better to use ++i rather than i++ to avoid unnecessary copies. Fri Oct 16 14:57:58 1998 Irfan Pyarali * ace/Hash_Map_Manager and Map_Manager: Fixed the operator++ and operator--. Also, moved the guard from the individual methods to the iterator. Now, the read guard is held for the life time of the iterator. Fri Oct 16 14:51:57 1998 Nanbor Wang * ace/OS.cpp (thr_create): Made sure if users don't specify whether to spawn threads detached or joinable, we'd change the creation flag for them so that they are always joinable (not detached.) This is important for unify the thread behavior on different platforms that have various default thread creation policies. Thanks to Susan Liebeskind for motivating the change. Fri Oct 16 01:28:17 1998 Douglas C. Schmidt * ACE version 4.5.58 released. Thu Oct 15 23:50:41 1998 Douglas C. Schmidt * ACE version 4.5.57 released. Thu Oct 15 22:05:02 1998 Douglas C. Schmidt * ace/ACE.cpp (unique_name): Moved the arguments around in the sprintf() in order to generate a better "unique name". Thanks to Bob McWhirter for suggesting this. Thu Oct 15 21:20:36 1998 Irfan Pyarali * ace/Hash_Map_Manager.cpp (operator-- and operator++): * ace/Map_Manager.cpp (operator-- and operator++): Fixed by value and by reference return values. Thu Oct 15 20:16:46 1998 James CE Johnson * docs/ACE-FMM.html: Updated with Bob McWhirter's latest changes. Discussion of race conditions when spawning threads from within a constructor. Thu Oct 15