Sun Jan 04 07:43:10 1998 David L. Levine * ace/config-vxworks5.x-g++.h: removed ACE_HAS_TEMPLATE_SPECIALIZATION. * tests/Hash_Map_Manager_Test.cpp (main): added casts of i->ext_id_ and i->int_id_ to (char *) to force g++/VxWorks to apply the conversion from Dumb_String to char *. Sat Jan 3 22:25:15 1998 Douglas C. Schmidt * apps/Gateway/Gateway: Changed the name of the ACE_Event_Channel class to Event_Channel since this class wasn't a part of the ACE library. * apps/Gateway/Gateway/Event_Channel.h: Updated the inheritance relationship for Event_Channel so that it inherits from ACE_Event_Handler rather than ACE_Task. ACE_Task was overkill... * apps/Gateway/Gateway: Removed the supplier_id from all the files. We didn't use this anyway and it was just confusing. Also, renamed Proxy_* to Connection_* to underscore the fact that the Supplier_Handler and Consumer_Handler work atop *connections*. The previous naming scheme was too abstract for its own good. Sat Jan 03 14:16:40 1998 Nanbor Wang * ace/Map_Manager.cpp (ACE_Map[_Reverse]_Iterator): Fixed the initial iterator position. Fri Jan 02 18:43:14 1998 Douglas C. Schmidt * ACE version 4.4.14, released Fri Jan 02 18:43:14 1998. Fri Jan 2 17:39:04 1998 Douglas C. Schmidt * apps/Gateway/Peer/Options.cpp (Options): Rearranged the order of the parameters in the base/member initialization section to make GCC happy. Thanks to David Levine for getting on me about this. * apps/Gateway/Gateway/Options.h: Changed DEFAULT_TIMEOUT to MAX_TIMEOUT to be consistent. Thanks to David Levine for reporting this. Fri Jan 2 17:25:05 1998 Nanbor Wang * tests/Map_Manager_Test.cpp: Added codes to test STL-styled functions in ACE_Map_Manager. * apps/Gateway/Gateway/Proxy_Handler.cpp: * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: * apps/Gateway/Gateway/Event_Channel.cpp: * apps/Gateway/Peer/Peer.cpp: * ace/Local_Name_Space.cpp: * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: * examples/ASX/Event_Server/Transceiver/transceiver.cpp: * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: * examples/Connection/blocking/SPIPE-connector.cpp: * examples/Connection/misc/test_upipe.cpp: * examples/Connection/non_blocking/test_sock_connector.cpp: * examples/Connection/non_blocking/test_spipe_connector.cpp: * examples/Connection/non_blocking/test_tli_connector.cpp: * examples/Connection/non_blocking/test_lsock_connector.cpp: * netsvcs/clients/Tokens/manual/manual.cpp: * netsvcs/lib/TS_Clerk_Handler.cpp: * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added some more explicit template instantiations. * ace/Map_Manager.{h,cpp}: Added back comparison operators for ACE_Map_Iterator and ACE_Map_Reverse_Iterator. * ace/Token_Invariants.cpp: * ace/Token_Collection.cpp: * ace/Token_Manager.cpp: Added missing ACE_Map_Reverse_Iterator. * ace/Map_Manager.h: Remove unnecessary method declarations from ACE_Map_Iterator adn ACE_Map_Reverse_Iterator. * examples/Connection/non_blocking/test_tli_connector.cpp: * examples/Connection/non_blocking/test_sock_connector.cpp: * examples/Connection/non_blocking/test_lsock_connector.cpp: * examples/Connection/non_blocking/test_spipe_connector.cpp: * examples/Connection/misc/test_upipe.cpp: * examples/Connection/blocking/SPIPE-connector.cpp: * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: * examples/ASX/Event_Server/Transceiver/transceiver.cpp: * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: * apps/JAWS/clients/Caching/http_handler.cpp: * apps/JAWS/clients/Blobby/Blob.cpp: * apps/Gateway/Peer/Peer.cpp: * apps/Gateway/Gateway/Event_Channel.cpp: * apps/Gateway/Gateway/Proxy_Handler.cpp: * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: * tests/Reactor_Performance_Test.cpp: * tests/Priority_Reactor_Test.cpp: * tests/Map_Manager_Test.cpp: * tests/Conn_Test.cpp: * netsvcs/lib/TS_Clerk_Handler.cpp: * ace/Token_Manager.cpp: * ace/Token_Invariants.cpp: * ace/Token_Collection.cpp: * ace/Local_Name_Space.cpp: Added explicit template instantiation for ACE_Map_Iterator_Base. * ace/Map_Manager.{h,cpp}: Added a new class ACE_Map_Iterator_Base to abstract out most common functionalities from ACE_Map_Iterator and ACE_Map_Reverse_Iterator. Added some missing functions to both iterator classes. Fri Jan 2 12:39:45 1998 Carlos O'Ryan * ace/Map_Manager.h: Another declaration removed from ACE_Map_Reverse_Iterator, operator* is defined in the base class. * tests/Conn_Test.cpp: * tests/Priority_Reactor_Test.cpp: * tests/Reactor_Performance_Test.cpp: The instantiation of ACE_Map_Manager *requires* instantiating ACE_Map_Reverse_Iterator. * ace/OS.i: Cannot use ACE_ASSERT in OS.i, at least it make SGI compiler unhappy. * ace/Map_Manager.cpp: Several methods for ACE_Map_Manager were not given their fully qualified name. * ace/OS.i: The error code should be stored in errno, not in "error". Fri Jan 2 17:02:36 1998 Chris Cleeland * tests/run_tests.sh: Added Env_Value_Test to the list of tests to run. * tests/Env_Value_Test.cpp (main): Fixed wrong test for negative values with unsigned longs. Thanks to David Levine and Linux/Alpha for finding this. * tests/Env_Value_Test.cpp (main): Changed the definition of the TEST_THIS macro to be all on one line. While ugly, this helps in locating the line when ACE_ASSERT fails, since allowing the macro to have multiple lines skews the line # reported by ACE_ASSERT. * ace/Env_Value_T.*: Fixed lots of little bugs that got past both g++ and Solaris compilers, but were caught by the ever-skeptical SGI compiler. This included providing a definition for the missing 'varname(void)' method. Fri Jan 02 10:12:28 1998 Steve Huston * ace/config-hpux-10.x-g++.h: Added #define HPUX_10 to catch OS version-dependent code correctly. Fri Jan 02 07:06:44 1998 David L. Levine * apps/Gateway/Gateway/Makefile: restored the .obj/*.o targets. They don't affect the build of the shared lib and are used if the unshared lib is built. * apps/Gateway/Gateway/Options.h: added missing , in enum definition. * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered initializers to match declaration order. * apps/Gateway/Gateway/Config_Files.cpp (read_entry): fixed syntax error, missing "if" after "else". Added #include of Options.h. * ace/OS.i (rw_trywrlock_upgrade): added ACE_UNUSED_ARG (rw) with STHREADS. * ace/Synch.i (tryacquire_write_upgrade): only define if ACE_HAS_THREADS. * tests/test_config.h: hacked ACE_INIT_LOG to work on VxWorks. VxWorks gets upset if its asked to unlink a nonexistant file. * ace/Basic_Types.*: if using ACE_U_LongLong, #define ACE_USES_ACE_U_LONGLONG and use that in the .i and .cpp files instead of repeating all of the complex preprocessor tests in Basic_Types.h. Thanks to Carlos for suggesting this. * ace/Env_Value_T.cpp: added protection against multiple inclusion. * tests/Env_Value_Test.cpp: added ACE_Env_Value instantiation. Fri Jan 02 00:47:33 1998 Douglas C. Schmidt * ACE version 4.4.13, released Fri Jan 02 00:47:33 1998. Fri Jan 2 00:17:04 1998 Douglas C. Schmidt * Reader_Writer_Test.cpp: Changed from an ACE_RW_Mutex to an ACE_RW_Thread_Mutex so that we can use the new tryacquire_write_upgrade() method. * ace/Env_Value_T.h: Reformatted the file a bit to conform to ACE coding conventions. Thu Jan 1 12:04:29 1998 Douglas C. Schmidt * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option to set the passive acceptor port from -p to -a. This is now consistent with the option for active connector port number, which is -c. * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to ACE::remove_stdin_handler(), which removes the handler for ACE_STDIN so the gatewayd will shutdown cleanly. * ace/ACE: Added a new method, remove_stdin_handler(), which is the inverse of the register_stdin_handler() method. However, I'm not sure how to make this work on NT! * examples/Reactor/Misc/notification.cpp: Removed some CHORUS-specific, which should be a no-op with our new signal() and sigaction() scheme. * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that they simply ignore signums of 0. This means that we don't need to special case all this stuff throughout ACE anymore. * ace/OS.h: Changed all the #defines for various SIG* so that they are all 0. This way, we can ensure that the signal() functions in ACE_OS can correctly ignore these signals. This should clean up a ton of platform-dependent code throughout ACE. * apps/Gateway/Gateway/File_Parser.cpp (getint): Added a new special-case check for the '*' character, which indicates "use the default value for this field." * apps/Gateway/Gateway/Options: Added a new option to provide a default max retry timeout. * tests/Reader_Writer_Test.cpp: Enhanced the test so that it exercises the new "upgrade" feature of RW_Thread_Mutexes. * ace/{OS,Synch}: Added new methods, ACE_OS::rw_trywrlock_upgrade() and ACE_RW_Thread_Mutex::tryacquire_write_upgrade() that conditionally upgrade a read lock to a write lock. This only works if there are no other readers present, in which case the method returns 0. Otherwise, the method returns -1 and sets errno to EBUSY. Note that the caller of this method *must* already possess this lock as a read lock. * apps/Gateway/{Gateway,Peer}/Makefile: Removed the $(VLIB) macro so that we don't try to build the lib*.a files by default. Thanks to David Levine for explaining this. * apps/Gateway/Gateway: Added new Options.{h,cpp} files and rearranged the program to centralize all options processing in an Options Singleton. * apps/Gateway/Peer/Options.cpp (parse_args): Changed the connector and acceptor options to use a more generalizable format. Now we can set the Consumer and Supplier port numbers independently. * apps/Gateway/Gateway/Event.h: This is currently where the macros from the following bullets have been moved, so they can be shared by the Peer and Gateway components. * ace/OS.h: Moved the ACE_DEFAULT_{GATEWAY,PEER}_SERVER_PORT macros into the Gateway application, where they belong. * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option to set the passive acceptor port from -p to -a. This is now consistent with the option for active connector port number, which is -c. * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to ACE::remove_stdin_handler(), which removes the handler for ACE_STDIN so the gatewayd will shutdown cleanly. * ace/ACE: Added a new method, remove_stdin_handler(), which is the inverse of the register_stdin_handler() method. However, I'm not sure how to make this work on NT! * examples/Reactor/Misc/notification.cpp: Removed some CHORUS-specific code, which should be a no-op with our new signal() and sigaction() scheme. * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that they simply ignore signums of 0. This means that we don't need to special case all this stuff throughout ACE anymore. * ace/OS.h: Changed all the #defines for various SIG* so that they are all 0. This way, we can ensure that the signal() functions in ACE_OS can correctly ignore these signals. This should clean up a ton of platform-dependent code throughout ACE. * apps/Gateway/Gateway/Gateway.cpp (init): Revised the code a bit to factor out platform-dependent signal handling stuff in the right place. * apps/Gateway/Gateway/gatewayd.cpp: Cleaned up the gatewayd main program so that it reuses more ACE components and so that it is more portable. Thu Jan 01 18:24:56 1998 Nanbor Wang * apps/Gateway/Gateway/Gateway.dsp: Added new file Options.cpp. * apps/Gateway/Gateway/Options.cpp (ACE_BUILD_SVC_DLL): Added #define ACE_BUILD_SVC_DLL. * netsvcs/lib/Base_Optimizer.i: Removed this file. * netsvcs/lib/Base_Optimizer.h: Added codes to include in the source file conditionally if needed. * netsvcs/lib/Base_Optimizer.cpp: Moved template implementation from .i file. Removed ACE_INLINE keyword. * netsvcs/lib/Server_Logging_Handler.cpp: Added explicit template instantiation macros. Thu Jan 01 17:13:06 1998 David L. Levine * apps/Gateway/Peer/Peer.cpp (Peer_Connector::open): added return 0 statement at end. * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered initializers to match declaration order. * apps/Gateway/Gateway/Makefile: removed LOBJ and SHOBJ macros because they're not needed. And, restored BUILD so that static lib will be built if requested. * include/makeinclude/rules.lib.GNU: added OBJEXT macro, defaulted to "o", and use it in VOBJS definition. * include/makeinclude/wrapper_macros.GNU: if building shared libs only, set OBJEXT to "so" and VDIR to .shobj/, so that only shared objects will be built. * apps/Gateway/Peer/Peer.cpp: added template instantiations. * netsvcs/lib/Base_Optimizer.*,Makefile: moved inline functions to .i file and changed inline to ACE_INLINE. * netsvcs/lib/Server_Logging_Handler_T.{h,cpp}: don't use Base_Optimizer with g++. Some versions of g++ 2.7.x have trouble with its inline template member functions, especially if __ACE_INLINE__ is disabled. Thu Jan 01 07:56:17 1998 Douglas C. Schmidt * ACE version 4.4.12, released Thu Jan 01 07:56:17 1998. Thu Jan 01 00:28:46 1998 Nanbor Wang * apps/Gateway/Peer/Peer.dsp: Added a new file "Options.cpp" into this project. * tests/Env_Value_Test.cpp (main): Changed variable name: 'environ' to 'envp'. Real OSes don't understand what the word means and Access Violations will occur. * tests/run_tests.bat: Added Env_Value_Test. * tests/version_tests/version_tests.dsw: * tests/tests.dsw: Added Env_Value_Test.dsp. * tests/version_tests/Env_Value_Test.dsp: * tests/Env_Value_Test.dsp: New file. Thu Jan 1 00:00:00 1998 Douglas C. Schmidt * Happy New Year! Here's a thought for the new year, courtesy of Sumedh: Nothing in the world is permanent, and we're foolish when we ask anything to last; but surely we're still more foolish not to take delight in it while we have it. - W.Somerset Maugham (Razor's Edge) Wed Dec 31 19:10:59 1997 Douglas C. Schmidt * apps/Gateway/Peer/Peer: Added the hooks for making the Peer a Connector, as well as an Acceptor. Now it's time to have some fun. * apps/Gateway/Peer/peerd.cpp: Cleaned up the peerd main program so that it reuses more ACE components and so that it is more portable. * netsvcs/servers/main.cpp (main): Revised the code a bit to factor out platform-dependent signal handling stuff in the right place. * apps/Gateway/Peer: Factored out some common initialization code to create an Options Singleton. Yowza! * apps/Gateway/README: Improved the documentation so that its easier to tell what's supposed to happen and how to configure the system. * apps/Gateway/Peer/Peer: Moved the Peer_Acceptor into the Peer.h file and updated the documentation to clarify what's going on better. * examples/Reactor/Dgram/: Enhanced the examples to make sure they close() the dgram endpoint when the object is removed from the Reactor. Thanks to Evgeny Beskrovny for reporting this. * ace/Obstack.cpp: Fixed a stupid bug in the ACE_Obstack constructor. Thanks to David Levine for reporting this. * ace/Local_Name_Space_T.h: Updated the documentation for class ACE_Name_Space_Map to make it more clear. Wed Dec 31 21:21:50 1997 David L. Levine * examples/Reactor/Dgram/{CO,Dgram.cpp} (handle_close): added ACE_UNUSED_ARG (handle). * tests/Env_Value_Test.cpp (main): removed unused arg argv and local envargv. undef'ed ACE_HAS_NONSTATIC_OBJECT_MANAGER because it can't deal with the three arguments to main (). Wed Dec 31 16:25:16 1997 Chris Cleeland * ace/Env_Value_T.*: Added a new template (ACE_Env_Value) which is a typesafe encapsulation of environment variables with the ability to provide a value to be used as a default if the variable isn't set. An example of its use can be seen in the corresponding test, tests/Env_Value_Test.cpp. Thanks to Carlos O'Ryan for giving me the seed that started this. * tests/Env_Value_Test.cpp: Added test for the new template added above. * tests/Makefile: Added new Env_Value_Test test to the Makefile. * ace/OS.{h,i} (strtod): Added new function for converting strings to doubles. Tue Dec 30 22:07:44 1997 David L. Levine * ace/High_Res_Timer.cpp (elapsed_time): added a cast in calculation of useconds to avoid MSVC++ warning about narrowing. Thanks to Nanbor for reporting this. * ace/OS.i (gethrtime): commented out high-res tick counter on Linux because it doesn't seem to work properly. Use ::gettimeofday () instead. * tests/Basic_Types_Test.cpp (main): replaced #ifdef VXWORKS && ghs with !ifdef ACE_HAS_WCHAR_TYPEDEFS_CHAR. * ace/Map_Manager.cpp (operator*): fixed typo in "ACE_Map_Entry". * ace/OS.h: added ACE_NSIG. In addition, I removed this: // Why is this defined? It must be a std C library symbol. #if !defined (NSIG) #define NSIG 0 #endif /* NSIG */ We #define NSIG elsewhere on platforms (VxWorks, MVS) that need it. #defining it to be 0 isn't good; it's better to catch the lack of NSIG at compile time than at run time. * ace/{Log_Msg.cpp,OS.i,Select_Reactor.cpp,Signal.*,WFMO_Reactor.i}, tests/Sigset_Ops_Test.cpp: replace NSIG with ACE_NSIG. * ace/Basic_Types.{h,i}: only use u_longlong_t on sun. Added operator++ to ACE_U_LongLong, and tweaked calculation in operator/. * tests/Time_Value_Test.cpp (test_ace_u_longlong_): added test of operator+, and one simple test of operator/. * ace/Filecache.h: removed extra , in enum ACE_Filecache_Flag definition. Tue Dec 30 20:32:03 1997 Nanbor Wang * ace/Map_Manager.{h,cpp}: Added STL-styled iterator function. Changed the references to ACE_Map_Manager within interator classes to pointers so we can check errors. Tue Dec 30 14:56:18 1997 Douglas C. Schmidt * ace/Obstack: Enhanced ACE_Obstack so that it can be given a pointer to an allocator strategy. This allows users to take complete control of where the memory comes from for the Obstack. * ace/Obstack: Changed the default value of "size" so that it is (4096 - sizeof (ACE_Obstack)). * ace/Obstack: Added a new ACE_Obchunk constructor to simplify some of the code. Mon Dec 29 20:21:32 1997 Steve Huston * include/makeinclude/rules.lib.GNU: Adjusted dependencies on building a shared library to be on the object modules it will link in, not necessarily $(VSJOBJ). Mon Dec 29 18:53:35 1997 James C Hu * ace/Filecache.h: Added an enum type, ACE_Filecache_Flag, which gets passed into the ACE_Filecache_Handle constuctor to help determine whether or not to use memory mapping (on Windows NT, we sometimes do not want to memory map). * ace/Filecache.cpp: Required modifications to accomodate the ACE_Filecache_Flag parameter. Mon Dec 29 15:37:24 1997 Nanbor Wang * ace/OS.i (event_timedwait): Added codes to guard against negative wait time since we are passing an absolute time value here, we may way past the target time when it gets called. Thanks to Norbert Rapp for pointing this. Mon Dec 29 13:57:43 1997 Carlos O'Ryan * ace/XtReactor.cpp: Fixed syntax error, apparently some kind of typo. * ace/OS.h: The ACE_*_cast() macros had (IMHO) surprizing priority, added some parenthesis to make them behave as the new cast operators are supposed to do. Mon Dec 29 08:59:28 1997 David L. Levine * ace/Basic_Types.h: Linux w/o glibc 2.0 doesn't have u_longlong_t, so use "unsigned long long" for it. * ace/Task.cpp (activate): added ACE_UNUSED_ARG (thread_handles) on non-threaded platforms. * ace/Thread_Manager.cpp (wait): added ACE_UNUSED_ARG (abandon_detached_threads) on non-threaded platforms. * performance-tests/Misc/childbirth_time.cpp (prof_ace_os_thread): added ACE_UNUSED_ARG (iteration) on non-threaded platforms. * performance-tests/Misc/preempt.cpp (main): added ACE_UNUSED_ARG for argc and argv on non-threaded platforms. * include/makeinclude/platform_linux.GNU: enabled compiler warnings by replacing -w with -Wall -Wpointer-arith in CFLAGS. * ace/ACE.cpp (count_interface,get_handle,get_ip_interfaces): use same code for LynxOS as for __unix. * ace/OS.h: on LynxOS, redefine NSIG to be one greater than the highest-numbered signal. LynxOS' signal.h #defines it to be equal to the highest-numbered signal, 64. Mon Dec 29 08:35:17 1997 Steve Huston * include/makeinclude/platform_hpux_aCC.GNU: Removed the PRELIB and PRELIB_USES_OBJ_ONLY stuff; merged in macros for building on HP-UX 11.00. * include/makeinclude/platform_hpux11_aCC.GNU - Removed this file. The 10.x and 11.x builds are now both controlled by platform_hpux_aCC.GNU. Sun Dec 28 10:50:54 1997 Douglas C. Schmidt * ACE version 4.4.11, released Sun Dec 28 10:50:54 1997. Sat Dec 27 18:03:52 1997 Nanbor Wang * ace/Log_Msg.cpp (dump): Sould test if we have a valid thr_desc before dumping the information of it. Thanks to Luca Priorelli for pointing this out. Sat Dec 27 16:13:59 1997 David L. Levine * ace/{OS.i,config-linux-common.h,README} (getrusage,{get,set}rlimit): added ACE_HAS_RUSAGE_WHO_ENUM and ACE_HAS_RLIMIT_RESOURCE_ENUM support. glibc 2.0 for Linux uses enums for the first arguments to ::getrusage and ::{get,set}rlimit. Fri Dec 26 18:04:06 1997 * ace/Containers.h: Added iterator traits for following classes. ACE_Unbounded_Set ACE_Unbounded_Queue ACE_Unbounded_Stack ACE_Double_Linked_List ACE_Fixed_Set ACE_Bounded_Set Thanks to for recommending this. Fri Dec 26 12:03:05 1997 David L. Levine * ace/config-osf1-4.0.h: added support for DCE threads, and merged in config-osf1-4.0-g++.h. Thanks to Frederic Andres for the DCE threads support #defines. * ace/config-osf1-4.0-g++.h: removed. All Digital Unix 4.0 configs are now supported by config-osf1-4.0.h. * ace/platform_osf1_4.0.GNU: added comment on how to use DCE threads instead of POSIX threads. * ace/OS.i (thr_{get,set}prio): don't apply the !defined(ACE_LACKS_SETSCHED) test if ACE_HAS_DCETHREADS. * ace/OS.cpp (thr_create): added || ACE_HAS_DCETHREADS to #ifndef ACE_LACKS_SETSCHED, so that priority is set with DCETHREADS. * ace/OS.cpp (sched_params): moved paren so that DCETHREADS block will be executed even if ACE_LACKS_SETSCHED. * ace/Sched_Params.cpp ({next,previous)_priority): added ACE_HAS_DCETHREADS check before !defined(ACE_LACKS_SETSCHED). * ace/OS.i (cond_timedwait): wrapped first arg to ACE_OSCALL in parens because it confused cxx. * examples/System_V_IPC/SV_Message_Queues/{,T}MQ_Server.cpp: renamed variable msgque because it conflicted with a symbol in the DEC cxx w/DCE threads headers. * ACE-INSTALL.html: expanded discussion of gcc config.status file. Thanks to Hans Rohnert for figuring out the role of the config.status file. Fri Dec 26 06:44:25 1997 * ace/OS.h (ACE_OS::ace_flock_t): Added a new field "lockname_" to remember the lock filename. * ace/OS.i (flock_init,flock_destroy): We need to remember the name of the lock file when initializing the lock and unlink the file when destroying the lock. Thu Dec 25 18:08:42 1997 Douglas C. Schmidt * ace/XtReactor.cpp: Removed g++ warning about initialization order, enabled read/write masks for ACE_Event_Handler::CONNECT_MASK; fixed typo that checks a write mask, but sets a read mask; removed unused variable "zero." Thanks to Eric Newton for these fixes. Thu Dec 25 17:17:16 1997 * ace/config-win32.h: * ace/config-win32-common.h: Added macro definitions not to use C++-styled castings on Win32 by default so that we don't depend on the RTTI support. Thu Dec 25 16:18:03 1997 * ace/SString.h (ACE_CString and ACE_WString): Added c_str() to make it similar to STL's string class. Wed Dec 24 19:59:15 1997 David L. Levine * tests/IOStream_Test.cpp (client): changed stream error message from "timeout" to "timed out", so that run_tests.check won't complain about it. Wed Dec 24 18:37:49 1997 * ace/Synch.i (get_thread_id,get_nesting_level): Added ACE_INLINE. Wed Dec 24 18:31:31 1997 Douglas C. Schmidt * ACE version 4.4.10, released Wed Dec 24 18:31:31 1997. Wed Dec 24 14:27:33 1997 * ace/Synch.{h,i,cpp} (ACE_Recursive_Thread_Mutex): Changed ACE_Recursive_Thread_Mutex to inherit from ACE_Thread_Mutex on Win32 because ACE_Thread_Mutex is already recusive on Win32. Wed Dec 24 08:14:32 1997 David L. Levine * ace/Log_Msg.cpp (instance): without threads, dynamically create the ACE_Log_Msg instance instead of using a static. Now, without threads, the ACE library has no statics that require destruction (at least on Solaris/g++ and Linux). And, all of the ACE tests Purify cleanly. * ace/OS.cpp (ACE_Thread_Adapter::invoke): wrapped rethrow_w32_structural_exception () call with #ifdef ACE_WIN32. It was eliminated by the ACE_SEH_EXCEPT macro on non-WIN32 platforms, but some compilers (cxx) warned about the unreachable code. This call is only supported on WIN32 anyways. * ace/OS.h: LynxOS has ACE_HAS_PTHREADS_1003_DOT_1C, but not ACE_HAS_PTHREAD_SIGMASK. * tests/Time_Value_Test.cpp: only test ACE_U_LongLong on Solaris, and other platforms with STHREADS. Wed Dec 24 04:25:49 1997 * ace/OS.i (sema_init): Added checking for initial semaphore counts and set the semaphore to non-signaled state if the initial count is zero. Changed the internal variable lock from a mutex to a thread_mutex (Critical Section.) Tue Dec 23 21:06:14 1997 David L. Levine * ace/TLI_Stream.cpp (get_remote_addr): added ACE_UNUSED_ARG for the arg if ! ACE_HAS_SVR4_TLI. * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): declare local "i" outside the for loop because it is used after the loop. Tue Dec 23 19:34:10 1997 * ace/OS.i: Added comments for semaphore simulation. Tue Dec 23 19:33:59 1997 Douglas C. Schmidt * ACE version 4.4.9, released Tue Dec 23 19:33:59 1997. Tue Dec 23 19:05:32 1997 Douglas C. Schmidt * tests/IOStream_Test.cpp (server): Changed sleep(30) to sleep(5). This seems more reasonable. Thanks to James Johnson for this suggestion. Tue Dec 23 16:43:14 1997 Steve Huston * ace/README: Added descriptions for ACE_HAS_PTHREADS_1003_DOT_1C (this was in use previously but not documented), ACE_HAS_XTI (new; XTI is the POSIX superset of TLI - this implies ACE_HAS_TLI), ACE_NEW_THROWS_EXCEPTIONS (new; the compiler throws bad_alloc if a 'new' memory allocation fails). * ace/Hash_Map_Manager.cpp - Workaround for an aC++ bug in the HP-UX 11 version of the compiler. * ace/INET_Addr.cpp: Note the failing host name in the error message from ACE_INET_Addr::ACE_INET_Addr(u_short, const char []). * ace/OS.h: Changes made while porting to HP-UX 11: - If ACE_HAS_PTHREADS_1003_DOT_1C (POSIX.1C), it implies (by way of POSIX.1C) that these also be set: ACE_HAS_PTHREAD_SIGMASK ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R This is intended to make the process of configuring a new new platform easier. - If the new config macro ACE_NEW_THROWS_EXCEPTIONS is set, include the file . The "proper" thing to do is to include ; however, at least on HP-UX 11, this will cause other things to get brought in, like , which will screw up auto_ptr. The day that all this standard library and STL stuff is finally straight, there will be dancing in the streets... - Support including the proper header file for XTI when it's supposed to use rather than (POSIX specifies XTI, a superset of TLI, to have ) - If ACE_NEW_THROWS_EXCEPTIONS is set, the ACE_NEW and ACE_NEW_RETURN macros handle the exception. * ace/OS.i: Fixed check for failure in ACE_OS::sema_init. * ace/config-hpux11.h: * ace/config-hpux11-hpc++.h: New configs for HP-UX 11.00 * include/makeinclude/platform_hpux11_aCC.GNU: Platform macros for HP-UX 11. It is set up for 32-bit build with comments for how to do a 64-bit build. * examples/Makefile: Added Naming to the directory list to build. * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Changed test from ACE_HAS_SVR4_POLL to ACE_HAS_POLL. * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: Fixed a char * being initialized by a string literal. * examples/Map_Manager/test_hash_map_manager.cpp: Added #include "ace/SString.h" * examples/Mem_Map/IO-tests/test_io.cpp: Fixed a char * being initialized by a string literal. Fixed diagnostic statements. * examples/Naming/test_multiple_contexts.cpp: * examples/Naming/test_non_existent.cpp: * examples/Naming/test_writers.cpp: Added Id line for CVS. * tests/Time_Value_Test.cpp: Added #include "test_config.h" Tue Dec 23 16:12:28 1997 * ace/OS.i: Must use ACE_OS::sema_wait instead of waiting on the singling event when using simulated semaphores. Tue Dec 23 08:32:00 1997 Chris Gill * include/makeinclude/platform_sunos5_g++.GNU Removed trailing spaces from CC and CXX macros (the trailing space behind CXX was giving the TAO_IDL make fits) Tue Dec 23 07:26:28 1997 David L. Levine * ace/TLI.cpp (get_local_addr): return -1, instead of 0, and set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI. ({set,get}_option): added ACE_UNUSED_ARfor all arguments if ! ACE_HAS_SVR4_TLI. * ace/TLI_Stream.cpp (get_remote_addr): return -1, instead of 0, and set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI. Declare and set local "name" only if ACE_HAS_SVR4_TLI. * ace/TLI_Acceptor.cpp (handle_asynch_event): initialize local "event" instead of defining it in the switch condition, to avoid compiler warning about not using it. * examples/IPC_SAP/TLI_SAP/db-server.cpp (lookup_name): removed unused local variable "len". * include/makeinclude/platform_osf1_4.0.GNU: removed some warning suppressions that are no longer needed. * ace/Log_Msg.cpp (~ACE_Log_Msg): clean up the message queue and allocated strings on non-threaded platforms. * tests/test_config.h (ACE_APPEND_LOG): added a close () of the ace_file_stream before opening it. Forked children inherit the opened file stream, and fail on their attempt to open it if it is not explicitly closed. Mon Dec 22 22:42:57 1997 Douglas C. Schmidt * ace/OS: Added a few minor changes to Nanbor's Semaphore emulation for WinCE. Mon Dec 22 11:39:19 1997 * OS.i (event_timedwait): Added code to handle timeouts. Thanks to Luca Priorelli for reporting this. Mon Dec 22 07:03:13 1997 David L. Levine * ace/IOStream_Test.cpp (spawn): changed printout from "Process_Mutex_Test-children" to "IOStream_Test-children". Mon Dec 22 03:08:22 1997 * ace/OS.i: Modified ACE_OS::cond_* for WinCE. * ace/config-win32-common.h: Prevent ACE from using NT specific API on Win CE. Sun Dec 21 16:19:40 1997 Nanbor Wang * ace/OS.{h,i} (ACE_OS::sema_*): Added semaphore simulation code for WinCE. This code is currently protected ACE_USES_WINCE_SEMA_SIMULATION for debugging the code on NT. This flag should soon be obsolete and changed to ACE_HAS_WINCE. Moved ACE_event_t macro definition for Win32 before ACE_sema_t definition for NT. I need to use it in semaphore simulation. * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed keyword struct. ACE_Cleanup_Info is a class now. * ace/Containers.h (class ACE_Double_Linked_List): Removed unused function declarations. * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class. Sun Dec 21 18:47:09 1997 Douglas C. Schmidt * ACE version 4.4.8, released Sun Dec 21 18:47:09 1997. Sun Dec 21 12:39:38 1997 Douglas C. Schmidt * ace/OS.h (ACE_OS): Made the netdb_{acquire()/release()} methods public to help ACE users stuck on weird OS platforms. Thanks to Arturo Montes for this suggestion. * ace: Changed all ACE class documentation so that it puts the =TITLE and =DESCRIPTION comments *after* the opening '{' rather than before. I did this since (1) it makes emacs C++ mode happier and (2) it makes Rational Rose reverse-engineering tool happier too. Thanks to Thomas Jordan for suggesting this. * ace/LOCK_SOCK_Acceptor.h: The accept() method of class ACE_LOCK_SOCK_Acceptor is no longer a virtual. I don't know why this was made virtual in the first place, but it was a mistake. Sun Dec 21 15:24:42 1997 Nanbor Wang * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed keyword struct. ACE_Cleanup_Info is a class now. * ace/Containers.h (class ACE_Double_Linked_List): Removed unused function declarations. * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class. Sat Dec 20 11:05:45 1997 Douglas C. Schmidt * tests/test_config.h (ACE_INIT_LOG): Added (%P|%t) to an ACE_DEBUG statement to make it consistent. * tests/IOStream_Test.cpp (spawn): Revised the test so that it prints data correctly to the child processes. * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Moved the final print statement inside one of the if blocks so that it appears only every second invocation to remind people to rerun the program to remove the leaks. Thanks to Tom Arbuckle for suggesting this. * ace/Malloc*: Changed ACE_MALLOC_STATS to ACE_HAS_MALLOC_STATS since this is more consistent with ACE conventions. Also, added ACE_HAS_MALLOC_STATS to the ace/README file. Thanks to Tom Arbuckle for suggesting this. * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Fixed the logic for naming the backing store if the sscanf() call fails. Thanks to Tom Arbuckle for suggesting this. Sat Dec 20 15:39:00 1997 Nanbor Wang * tests/IOStream_Test.cpp (spawn): Changed ACE_LACKS_EXEC to ACE_LACKS_FORK. Sat Dec 20 09:42:06 1997 David L. Levine * ace/OS.h: changed ACE_SEH_FINALLY to be if (1) on Unix, not just pSOS. Fri Dec 19 23:20:42 1997 Nanbor Wang * tests/IOStream_Test.cpp (client): Removed an extra read. * ace/OS.h: ACE_SEH_FINALLY should always be executed on UNIX platforms. Fri Dec 19 18:49:26 1997 Douglas C. Schmidt * ace/IOStream_T.i: Enhanced ACE_IOStream and its companions as follows: - ACE_Streambuf_T<> now distinguishes recv() timeout failure from a "real" stream failure - ACE_IOStream::eof() honors the streambuf's recv_timeout() value and returns FALSE if the eof() check fails on timeout. - IOStream_Test.cpp tests the streambuf timeout via the stream eof() and retrys if possible. Thanks to James Johnson for these fixes. * ace/Log_Record.i: Removed a no-op assignment to Time_Value in the encode() method. Thanks to Patrick J. McNerthney for reporting this. * ace/Log_Record.i: The time stamp put into the ACE_Log_Record gets all messed up when the ACE_Log_Record is transmitted to the Server_Logging_Handler and the client is run on a little-endian architecture. This is because the ACE_Log_Record::encode method does: this->time_stamp_ = ACE_Time_Value htonl (this->time_stamp_.sec ()), htonl (this->time_stamp_.usec ())); When the ACE_Time_Value is passed in the resulting values from "htonl", it calls "normalize" which totally messes with the values passed. Thanks to Patrick J. McNerthney for reporting this. * ace/OS.i: Fixed ctime_r() so that it doesn't crash if a NULL is returned from ctime_r(). Thanks to Patrick J. McNerthney for reporting this. Fri Dec 19 09:44:28 1997 David L. Levine * ace/OS.{h,i}: fixed sigwait for DEC cxx, yet again for cxx V6.0-010. cxx #defines sigwait, and was getting confused with ACE_OS::sigwait. I replaced Thilo's #undef sigwait, and updated the ::sigwait declaration to what cxx uses internally. * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (server): cast arg to long before casting to ACE_HANDLE, and removed function-style cast. Fri Dec 19 00:39:40 1997 Douglas C. Schmidt * ACE version 4.4.7, released Fri Dec 19 00:39:40 1997. Thu Dec 18 19:47:47 1997 Douglas C. Schmidt * examples/IPC_SAP/SOCK_SAP: Stripped the CPP-in{server,client}.cpp tests down to their bare essence to only test the core features of sockets. Thanks to Bryan and Brian for suggesting this. * ace/Message_Queue.cpp (ACE_Message_Queue_Iterator): Changed queue to q to avoid clashes with STL. Thanks to Brian Mendel for reporting this. * ace/OS.h: The server logging daemon is implemented using TCP/IP under Win32. Therefore, we can simplify the creation of the ACE_DEFAULT_LOGGER_KEY. Thanks to Patrick J. McNerthney for reporting this problem. Thu Dec 18 22:35:45 1997 David L. Levine * ace/OS.h: fixed typo in end-of-comment marker. * ace/OS.h: on Digital Unix 4.0, only declare sigwait () with cxx, not with g++. Thanks to Erik Margraf for verifying this. * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: tweaked so that they build on VxWorks (spawn needs the (ACE_THR_FUNC) cast), and without threads. * tests/run_tests.vxworks: updated VxWorks test status. * ace/Basic_Types.h: look for ULONGLONG_MAX, which Irix 6.x uses. And, hard-code ACE_SIZEOF_LONG_DOUBLE to be 16 on __sgi, because its float.h doesn't always allow us to distinguish them. Thanks to Carlos for reporting these. * ace/High_Res_Timer.cpp,Profile_Timer.cpp: removed dependence on ACE_U_LongLong. Thanks to Carlos for reporting this. * tests/Time_Value_Test.cpp: fixed #ifdefs so that ACE_ULongLong isn't tested on Irix 6.x, etc. Thanks to Carlos for tripping over this. * ace/IOStream_T.i (eof): made the return type, int, explicit. * ace/config-linux-common.h: started adding support for threads on alpha (glibc). Thu Dec 18 21:17:46 1997 * ace/ace_dll.dsp: Added project files for Windows CE on SH3 series CPU and x86 emulator. * ace/streams.h: * ace/OS.h: Added Windows CE flags. * ace/OS.cpp (invoke): Added a dummy return to shut gcc up. * ace/OS.cpp (invoke): Added a dummy return to shut gcc up. * ace/OS.{h,cpp} (rethrow_w32_structural_exception): Added this function, which prints out an error message to indicate the occurance of structural exception and rethrow it again. (ACE_Thread_Adapter::invoke): Rearranged try and except block for Win32 and added a finally block so when a structural exception occurs, a thread can clean it up properly, print out an error message, and rethrow the exception again. Thu Dec 18 15:40:50 1997 James C Hu * ace/Filecache.{cpp,h}: - debugged writing a file. - can select if mapping is desired. * ace/OS.h: Added new #defines to facilitate forward declarations of ACE_Export classes. Thu Dec 18 00:15:02 1997 Douglas C. Schmidt * ACE version 4.4.6, released Thu Dec 18 00:15:02 1997. Wed Dec 17 19:42:38 1997 Douglas C. Schmidt * examples/IPC_SAP/SOCK_SAP: Enhanced the CPP-{inserver,inclient}.cpp tests so that they will spawn multiple client and server threads to perform the data transfer. Thanks to Brian Mendel and Bryan Doerr for suggesting this. * ace/OS.i: Fixed some very subtle bugs with cond_signal() and cond_broadcast(). Thanks to Patrick J. McNerthney for reporting these and sending the fixes. Wed Dec 17 19:27:06 1997 Nanbor Wang * ACE-INSTALL.html (HREF): Added an advise not to use VC5.0 SP3. * examples/OS/Process/Makefile: Removed inclusion of rules.lib.GNU. Thanks to Avi Nash for noticing this. Tue Dec 16 22:09:42 1997 David L. Levine * tests/Time_Value_Test.cpp: restored #include test_config.h, and changed #include ace/config.h to ace/inc_user_config.h. * examples/IPC_SAP/TLI_SAP/ftp-server.cpp, examples/Reactor/Misc/test_timer_queue.cpp, examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i, examples/Shared_Malloc/test_malloc.cpp, examples/Threads/thread_specific.cpp: replaced ACE_HAS_64BIT_LONGS preprocessor logic with a cast through a long to an int. A void * is the same size as a long on all currently supported ACE platforms. The int cast is also there, to avoid compiler warnings about narrowing. As a side effect, the function-style casts were removed. * ace/config-osf1*.h,README: added comment stating that ACE_HAS_64BIT_LONGS is deprecated. * ace/config-tandem.h: removed commented-out line that mentioned ACE_HAS_64BIT_LONGS. * ace/OS.{h,i} (sigwait): removed DEC cxx version dependence. The standard two-arg POSIX ::sigwait () seems to work just fine even on older releases of Digital Unix 4.0, with the sigwait declaration that we have in OS.h. Thanks to Erik Margraf and Thilo for helping to sort this out. I did change the ACE_OS::sigwait () return value determination in OS.i. It now depends on whether or not POSIX ::sigwait () returns 0, to agree with the documenation for POSIX sigwait. Before, the code checked for a -1 return value from ::sigwait (). Tue Dec 16 21:00:49 1997 Chris Gill Single Threaded port of ACE to pSOSim - first checkin * psosim/Makefile: (new) make file for new psosim directory - builds the configured simulator components * psosim/drv_conf.c: (new) board driver configuration code for simulator * ace/sys_conf.h: (new) configuration settings for simulator, ACE * ace/config-psosim-g++.h: (new) config file for psosim w/ g++ * ace/OS.cpp: * ace/OS.h: * ace/OS.i: Added psos and psosim specific code * ace/Mem_Map.cpp: Removed function style casts which were killing g++ * ace/Message_Block.cpp: Removed function style casts which were killing g++ * ace/Containers.cpp: Removed function style casts which were killing g++ * ace/Map_Manager.cpp: Removed function style casts which were killing g++ * tests/Handle_Set_Test.cpp: Added PSOS #defines, alongside those for VXWORKS * tests/SOCK_Connector_Test.cpp: Added PSOS #defines, alongside those for VXWORKS * tests/Priority_Reactor_Test.cpp: Added PSOS #defines, alongside those for VXWORKS * tests/MM_Shared_Memory_Test.cpp: Added PSOS #defines, alongside those for VXWORKS * tests/Conn_Test.cpp: Added PSOS #defines, alongside those for VXWORKS * tests/run_tests.psosim: (new) script to run only those tests that are relevant to pSOSim, in its current single threaded state * include/makeinclude/platform_psosim_g++.GNU (new) make macros for pSOSim using g++ Tue Dec 16 17:23:49 1997 Nanbor Wang * tests/Time_Value_Test.cpp: Removed inclusion of "ace/config.h". * ace/inc_user_config.h: Added this file to prevent multiple inclusions of config.h file. Replace `#include "ace/config.h"' with `#include "ace/inc_user_config.h"'. * ace/Log_Msg.cpp: * ace/OS.h: * ace/Trace.cpp: * ace/streams.h: * ace/iosfwd.h: Replace "config.h" with "inc_user_config.h". Tue Dec 16 08:30:41 1997 Douglas C. Schmidt * examples/IPC_SAP/FILE_SAP/client.cpp (main): Fixed "lines" to "links." Thanks to Istvan Buki for reporting this. Tue Dec 16 14:15:48 1997 * ace/OS.i (fstat): Fixed Dr. Schmidt's typo. Tue Dec 16 09:17:53 1997 David L. Levine * ace/Singleton.cpp (cleanup): set instance pointer to 0 after deleting it. Thanks to Luca Priorelli for suggesting this. * ace/Basic_Types.{h,i}: (ACE_U_LongLong): use ACE_UIN32 instead of u_long for data members, to ensure that its sizeof is 8 bytes. * ace/OS.h: except on WIN32 and Solaris (ACE_HAS_HI_RES_TIMER), always typedef ACE_hrtime_t to ACE_UINT64. This changes removes the dependence on ACE_HAS_64BIT_LONGS. * ace/OS.cpp (ACE_TSS_Keys): replaced ACE_HAS_64BIT_LONGS dependence with ACE_SIZEOF_LONG == 8, and similarly for determination of 4-byte longs. * tests/TSS_Test.cpp (worker): replaced ACE_HAS_64BIT_LONGS preprocessor logic with a cast of the void * argument to a long. A void * is the same size as a long on all currently supported ACE platforms. The int cast is also there, to avoid compiler warnings about narrowing. * tests/Time_Value_Test.cpp: replaced use of ! ACE_HAS_64BIT_LONGS with ACE_SIZEOF_LONG == 4. Mon Dec 15 22:47:24 1997 Douglas C. Schmidt * ACE version 4.4.5, released Mon Dec 15 22:47:24 1997. Mon Dec 15 20:17:10 1997 Douglas C. Schmidt * ace/OS.cpp: Fixed pread() and pwrite() so that they work correctly even if we don't support threads. Thanks to Irfan for finding this. * ace/OS.i: Tried to fix the fstat() wrapper on Win32 so that it does the right think for HANDLES. Thanks to Lori Anderson for pointing this out. Mon Dec 15 15:36:07 1997 Nanbor Wang * ace/Thread_Manager.cpp (exit,wait): Changed these two functions more for Chorus. Thanks again to Wei Chian for providing the patch. Mon Dec 15 06:42:42 1997 David L. Levine * ace/Log_Msg.cpp (instance): on non-threaded platforms, only allocate a new ACE_Log_Msg_message_queue if the (static) pointer is 0. Thanks to Stephen Coy for reporting this. * ace/config-linux-common.h: updated header comments about autosensing the platform capabilities. * tests/Process_Strategy_Test.cpp: (parse_args): added DEBUG message if an unsupported concurreny strategy is provided with a -c option. Mon Dec 15 01:12:33 1997 * ace/Synch_T.h (ACE_Atmoic_Op::value_i): Explicitly return (by reference). This gives the user full, unrestricted access to the underlying value. This method will usually be used in conjunction with explicit access to the lock. Use with care ;-) Sun Dec 14 21:37:08 1997 Douglas C. Schmidt * ace/OS.i (cond_wait,cond_timedwait): Fixed a missing return to handle the case where we're using USYNC_PROCESS for the external mutexes. * ace/OS: Made the use of the waiters_lock_ mutex consistent in the ACE_cond_t implementation. This was broken since we used the external_mutex to serialize access to the waiters_ count inconsistently. Thanks to Patrick J. McNerthney for reporting this very subtle bug. Sun Dec 14 12:29:26 1997 Nanbor Wang * ace/Thread_Manager.cpp (exit,wait): Disabled thread join functionality in Chorus. Thanks to Wei Chiang for providing the fix. Fri Dec 12 21:48:38 1997 Torbjorn Lindgren * ace/config-linux*.h: All Linux platform files except the Linux-KCC modified to use the upgraded common Linux configuration file. Linux-KCC looks reasonably easy to do, if no-one that actually have KCC takes care of it I can do this one later. * ace/config-linux-common.h: Modernized and updated the common Linux configuration file to handle more of the common configuration stuff. Also added the beginning of proper glibc and egcs support for Linux. Sat Dec 13 14:22:28 1997 * ace/Basic_Types.h: Changed _M_IX386 to _M_IX86. Fri Dec 12 19:41:42 1997 * ace, tests, version_tests: Updated Win32 makefiles (VC4.2 and VC5.0) to include new Basic_Types_Tests. * tests/Basic_Types_Test.cpp (main): Updated to use ACE_OS::getpagesize(). * ace/ACE.cpp (round_to_pagesize): Updated to use ACE_OS::getpagesize(). * ace/OS.i (getpagesize): Added this to ACE_OS. Fri Dec 12 07:49:01 1997 David L. Levine * ace/OS.i (inet_addr): changed type of "valid" from bool to u_int. This code is only seen on VxWorks. * ace/IOStream.h (ACE_Quoted_String::operator <): changed return type from bool to int. * ace/config-vxworks*.h,README: removed ACE_LACKS_SOCKET_BUFSIZ; added ACE_DEFAULT_MAX_SOCKET_BUFSIZ of 32768. * examples/IPC_SAP/SOCK_SAP/C-in{client,server}.cpp: added support to optionally set socket buffer sizes. * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: removed unused constant SHMSZ. * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: removed unused constant NO_OF_IO_HANDLERS. * ace/IOStream_T.h (ipfx,ipfx1): don't call setstate () on WIN32, because MS VC++ 5.0 doesn't declare it. Thanks to Irfan for reporting this. This "fix" is temporary, maybe, until we figure out the proper fix. * ace/OS.h: cast the 1 in ACE_MSB_MASK to an fd_mask, to support 64-bit fd_masks. I suspect that with this change, the ACE_HAS_BROKEN_BITSHIFT used in config-tandem.h is no longer necessary. Added Basic_Types: * ace/Basic_Types.*,Makefile: Basic_Types defines the following preprocessor macros: Sizes of built-in types: ACE_SIZEOF_CHAR ACE_SIZEOF_WCHAR ACE_SIZEOF_SHORT ACE_SIZEOF_INT ACE_SIZEOF_LONG ACE_SIZEOF_LONG_LONG ACE_SIZEOF_VOID_P ACE_SIZEOF_FLOAT ACE_SIZEOF_DOUBLE ACE_SIZEOF_LONG_DOUBLE Wrappers for built-in types of specific sizes: ACE_INT16 ACE_UINT16 ACE_INT32 ACE_UINT32 ACE_UINT64 (Note: ACE_INT64 is not defined, because there is no ACE_LongLong for platforms that don't have a native 8-byte integer type.) Byte-order (endian-ness) determination: ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN * ace/OS.*: moved ACE_U_LongLong to Basic_Types.*. * ace/OS.h: added #include . * ace/config-linux-common.h,README: added ACE_HAS_BYTESEX_H. * tests/Basic_Types_Test.cpp,run_tests.{bat,sh,vxworks),Makefile: added new Basic_Types_Test. * tests/Time_Value_Test.cpp: removed ACE Version printout because it is now in Basic_Types_Test. Fri Dec 12 03:00:21 1997 James C Hu * ace/config-sunos5.5-egcs-1.0.h: Fundamemntally identical to g++ version, except added ACE_HAS_STDCPP_STL_INCLUDES, which is taken to mean that the Standard C++ STL include files are supported. * IOStream.h: Added #if's to handle the case where ACE_HAS_STRING_CLASS, but if ACE_HAS_STDCPP_STL_INCLUDES, then the string class is found in . Otherwise, it looks for it in . * ace/OS.i: Re-implemented strcasecmp methods. Thought bad implementations were related to a JAWS bug, but the hand implementations are not used on Solaris. Thu Dec 11 23:20:57 1997 * ace/Strategies_T.cpp (activate_svc_handler): Changed the parameter that was been passed into the open routine of Svc_Handler. The that was passed to us is passed through to open, rather than passing . Thanks to Mats Nilsson for pointing this out. * ace/Connector.cpp (activate_svc_handler): Made sure that we pass the connector pointer as the void* parameter to the svc_handler. Thu Dec 11 23:35:04 1997 Douglas C. Schmidt * ace/OS.i. The code was always calling dlsum for the _init() hook, even if dlopen() failed. In addition to fixing this, I also removed a potential handle leak. Thanks to Patrick J. McNerthney for reporting this. Thu Dec 11 13:13:17 1997 David L. Levine * ace/LSOCK.cpp (recv_handle): fixed to remove compile errors and warnings on platforms with both ACE_HAS_4_4BSD_SENDMSG_RECVMSG and ACE_HAS_THREADS. The delta from version 4.3 of this file is very small. Thanks to Kirill Rybaltchenko for reporting this problem and verifying the fix on LynxOS, the only affected platform. * ace/config-linux-kcc.h,include/makeinclude/platform_linux_kcc.GNU: added linuxthreads support with the linux KAI C++ config. Thanks to Ben Eng for the patches. * ace/IOStream_T.h: iostream fx emulation now skips whitespaces and flushes when tied. Thanks to Ben Eng for the patch. * tests/IOStream_Test.cpp (server): check for double-quote instead of newline as end-of-string character. Thanks to Ben Eng for the patch. * tests/SV_Shared_Memory_Test.cpp: renamed "allocator" to "myallocator" to avoid conflict with STL. Thanks to Ben Eng for the patch. * include/makeinclude/platform_linux_lxpthread.GNU: protect PRELIB definition with ifndef PRELIB, to allow overriding without modifying the platform_macros.GNU file. Thanks to James Johnson for this suggestion. * ace/IOStream_T.cpp: restored ACE_HAS_IOSTREAMH_INCLUSION protection around the old g++ munch hack. There's no need to trouble all (g++) platforms with its (4 byte) space penalty. * examples/IOStream/server/iostream_server.cpp (handle_input): removed unused local "addr". * examples/Reactor/Dgram/{CODgram,Dgram}.cpp (run_test): added return 0 at end so that the function always returns a value. * include/makeinclude/platform_lynxos.GNU: added comment indicator to comment describing POSTLINK. * ACE-INSTALL.html: updated DEC CXX 6.0 test status: all tests pass with the version of DIGITAL UNIX 4.0 and cxx 6.0 that we use. Wed Dec 10 23:57:00 1997 Chris Cleeland * ACE version 4.4.4, released Wed Dec 10 23:57:00 1997. Wed Dec 10 16:24:09 1997 * ace/Auto_Ptr.i: Apparently, the standard states that in order to access members of a templated superclass from a templated subclass, then the member name must be fully qualified. Therefore, changed access to p_ to ACE_Auto_Basic_Ptr::p_. Thanks to Stephen Coy for reporting this. Tue Dec 09 13:05:00 1997 * ace/Containers.cpp (copy_all_nodes): Added a temporary ACE_Node pointer to get around the macro side effects. Sun Dec 7 10:20:46 1997 Douglas C. Schmidt * ace/Service_Config.cpp (parse_args): Added an appropriate macro to switch from char * to UNICODE. Thanks to Timothy A. Brown for reporting this. * ace/config-linux-*.h: Added ACE_HAS_GETRUSAGE_PROTO to all the linux config files. Hopefully, this will help ACE to work better with glibc. Thanks to Ernie Makris and Torbjorn Lindgren for their help. Sat Dec 06 13:30:11 1997 Douglas C. Schmidt * ACE version 4.4.3, released Sat Dec 06 13:30:11 1997. Sat Dec 6 12:02:09 1997 Douglas C. Schmidt * examples/IOStream: Revised both the client and server to demonstrate the ACE_IOStream functionality correctly. Also added a README file explaining how to run the examples. Thanks to James Johnson and Dustin Laurence for suggesting this. * ace/IOStream_T: Added a new method eof() to the ACE_IOStream_T<> class. This returns 1 if we've reached the end of the socket stream, else 0. Fri Dec 5 16:58:29 1997 Douglas C. Schmidt * ace/Addr.h: Added a const ACE_Addr & instead of const ACE_Addr. This will avoid an extra copy. Thanks to Irfan for noticing this. * examples/Reactor/Dgram/CODgram.cpp: Also updated the CODgram test to be just like the Dgram test. * examples/Reactor/Dgram/Dgram.cpp (main): Fixed a bug where it was sending a huge buffer instead of just the string size. Also, exit once we've finished the send. Finally, revised the test so that it is easier to understand and so that it exits properly. Thanks to Michael Hoffman for reporting this. Fri Dec 05 13:20:09 1997 David L. Levine * include/makeinclude/platform_vxworks5.x_ghs.GNU: added OFLAGS. Thanks to Brian Mendel for suggesting these. * tests/IOStream_Test.cpp: updated to work with the standard C++ library version of iostreams. That primarily involved not using operator>>(char& c) and operator>>(char* c) for C strings. Thanks to Ben Eng for the patch. * ace/OS.{h,i},config-osf1-4.0.h: fixed sigwait on DEC CXX 6.0/ recent DEC UNIX 4.0. The fix keys off the compiler version, though it probably should depend on the OS. It adds a sigwait declaration, which is a current signal.h deficiency. With this change, ACE builds and tests cleanly on DEC UNIX. * ace/config-vxworks5.x-g++.h: restored comment that explains ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. * netsvcs/lib/Makefile: the first line of the Local Target (Server_Logging_Handler.*) override mysteriously disappeared, again. Fri Dec 5 12:15:49 1997 Chris Cleeland * ace/Select_Reactor.cpp: Made error messages on open failure more verbose. Having these in place straightaway would have helped track down some problems at Boeing much more effectively. Fri Dec 5 11:15:17 1997 Nanbor Wang * ace/Log_Msg.h (callers.): Added documentation for %I and %D flags. Thanks to John Morey for reosting this. * ace/Dynamic.h: * ace/CORBA_Ref.h: * ace/Token_Invariants.h: * ace/Token_Collection.h: * ace/Local_Tokens.h: * ace/Remote_Name_Space.h: * ace/Registry_Name_Space.h: * ace/Strategies.h: * ace/Name_Space.h: * ace/Name_Request_Reply.h: * ace/Naming_Context.h: * ace/Name_Proxy.h: * ace/Local_Name_Space.h: * ace/Local_Name_Space_T.h: Corrected erroneous comments. These files all contain incorrect filename info in the preambles which make erroneous auto-generated man pages. Fri Dec 05 00:00:53 1997 * ace/OS.h: If the user wants minimum IOStream inclusion, i.e., they have defined ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, we will just include the forward declarations, i.e., ace/iosfwd.h. Else they will get all the stream header files, i.e., ace/streams.h. The positive thing about this change is that if your code was using stream classes and you were depending on OS.h to provide you the stream header files, you will not have to change your code, unless you have defined ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. Thanks to Dr. Schmidt for suggesting this and thanks to David Levine for suggesting it to Dr. Schmidt ;-). * ace/config-vxworks5.x-g++.h: Restored ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. * ace/Asynch_IO.cpp (open): Fixed typo. Thu Dec 04 21:20:47 1997 Douglas C. Schmidt * ACE version 4.4.2, released Thu Dec 04 21:20:47 1997. Thu Dec 4 19:45:04 1997 Douglas C. Schmidt * ace/Object_Manager.cpp (ACE_Object_Manager_Destroyer): Fixed a bug in the ACE_Object_Manager_Destroyer::~ACE_Object_Manager_Destroyer thread comparison routine. Thanks to Steven Coy for this. Also renamed _saved_main_thread_id to saved_main_thread_id_, which is proper ACE style. * Updated the ACE-INSTALL.html file to explain why you don't need to build everything all the time. Thanks to Dustin Laurence for suggesting this. * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking): Added a check for ENETUNREACH. Thanks to Dustin Laurence for reporting this. * ace/Asynch_Acceptor.cpp (open): Changed the local variable named sap_any to sa to avoid conflicts with the new sap_any macro. * ace/Asynch_IO: Made the ACE_Service_Hanlder::open() method non-virtual to work around bugs with Borland C++. Thanks to Valik Solorzano Barboza for suggesting this. * ace/ACE.cpp (COMPUTE): Put parens around elements the COMPUTE macros so that it will work on Borland C++. Thanks to Valik Solorzano Barboza for suggesting this. * ace/config-win32-common.h: Added ACE_HAS_BROKEN_SAP_ANY to deal with Borland C++ bugs. Thanks to Valik Solorzano Barboza for suggesting this. * ace/Addr: Added a workaround for the Borland C++ problems. This introduces a new global macro called sap_any. However, this is only used for Borland, so it should be ok. Thanks to Valik Solorzano Barboza for suggesting this. * ace/LSOCK.cpp (recv_handle): Make the code smarter if we've got both STREAMS and 4_4BSD_SENDMSG_RECVMSG. * Reran "make depend" over all of ACE. * netsvcs/clients/Logger/indirect_logging.cpp (main): Changed LOGGING to LOGGER. Thanks to Irfan for noticing this. * netsvcs/lib/Client_Logging_Handler: Changed "rendezvous" to "logger." * netsvcs/clients/Logger/indirect_logging.cpp, netsvcs/lib/Client_Logging_Handler: Changed DEFAULT_RENDEZVOUS to DEFAULT_LOGGER_KEY. Thanks to Steven Coy for pointing out this inconsistency. * ace/OS.h: Renamed ACE_LOGGER_KEY to ACE_DEFAULT_LOGGER_KEY to make it consistent with other ACE_DEFAULT_* names. * ace/OS.h: Changed the definition for ACE_LOGGER_KEY so that it defaults to "localhost:10015" on platforms that don't support ACE STREAM Pipes. Thanks to Steven Coy for suggesting this. * ace/Service_Config.cpp: Added the -k option to parse_args() so that the user can set the logger key. Thanks to Steven Coy for suggesting this. * ace/Service_Config: Added the logger_key as a parameter to the other open() method, as well. Thanks to Steve Coy for being picky ;-). * netsvcs/clients/Logger/direct_logging.cpp (main): Modified the code to use the new framing scheme. * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record): Updated the code to take advantage of our new framing scheme. * netsvcs/lib/Client_Logging_Handler.cpp (send): We can be smarter now about sending the ACE_Log_Record across the network since the length field is now fixed and it's guaranteed to be in the first 4 bytes. Thanks to Steve Coy for suggesting this. * ace/Log_Record.h (ACE_Log_Record): Replaced the horribly non-portable "long length_" field with the "ACE_INT32 length_" field, which is nice because it is portable across platforms with different long-word sizes. Thu Dec 04 09:57:40 1997 David L. Levine * include/makeinclude/platform_osf1_4.GNU: allow enabling of WARNING_FLAGS by setting CXX_VER to POST_5X. Thanks to James Johnson for this suggestion. * ace/Svc_Conf_l.cpp: rebuilt with Doug's flex. Thu Dec 04 03:46:04 1997 * ace/Makefile (Svc_Conf_l.cpp): Changed the sed macros to produce OS.h include instead of stdcpp.h. * ace/Svc_Conf_l.cpp: Updated after code was regenerated using the new sed changes in the Makefiles. Currently there are two inclusions of OS.h in this file and an extra stdlib.h. Maybe someone more experienced in sed can take these out by updating the Makefile. * ace/IOStream_T.h (stdcpp.h): Removed inclusion of stdcpp.h. It is redundant because IOStream.h includes it. * ace/streams.h: New file. This files tries to reduce the differences between the old and new stream libraries for the user. This is done by automatically selecting the correct includes depending on the ACE_HAS_STANDARD_CPP_LIBRARY variable. This file also helps out by making commonly used classes (e.g., ios, ostream, iostream, cin, cout, etc) available in the global name space when used with the Standard C++ Library. Use this file where you would usually include or . * ace/iosfwd.h: New file. This files deals with forward declaration for the stream classes. Remember that since the new Standard C++ Library uses templates for the implementation of the streams, simple forward declaration will not work. Classes forward declared by this class include: ios streambuf istream ostream iostream filebuf ifstream ofstream fstream Use this file where you would usually forward declare the classes listed above. * ace/stdcpp.h: Removed this file from the repository. This file was trying to do too much. All the inclusion of the C Library headers were unnecessary. This is because the new C++ standard preserves the old C library include files. The functions from those files will still be in the global namescape. The new header files (e.g., cstdio), provides the same prototypes as the old files (e.g., stdio.h), except that all prototypes are in the std namespace. Since we want the old behavior and global prototypes (for backward compatibility), inclusion of the new header files was incorrect. stdcpp.h was included by OS.h. This caused almost all files to force the inclusion of the stream header files. This was changed so that OS.h only includes the ace/iosfwd.h file. This means that if your code was using stream classes and you were depending on OS.h to provide you the stream header files, you will have to change your code to either include iostream.h or iostream, or more portably ace/streams.h. * ace/OS.h: Removed stdcpp.h. Moved the standard C library includes from stdcpp.h to OS.h. Also added ace/iosfwd.h to give forward declaration for the stream classes. * ACE: Added explicit inclusion of ace/streams.h to the following files: ace/IOStream.cpp ace/Log_Record.cpp ace/OS.cpp ace/SString.cpp ace/Log_Msg.cpp tests/test_config.h examples/Log_Msg/test_log_msg.cpp examples/Reactor/Misc/test_time_value.cpp examples/Threads/task_three.cpp netsvcs/lib/Logging_Strategy.cpp examples/Logger/Acceptor-server/server_loggerd.cpp examples/ASX/UPIPE_Event_Server/event_server.cpp examples/Reactor/Ntalker/ntalker.cpp examples/Shared_Malloc/test_persistence.cpp examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp * Updated makefile dependencies throughout ACE to reflect the removal of stdcpp.h and the addition of streams.h. * examples/Threads/barrier2.cpp: Removed inclusion of stdcpp.h. * ace/IOStream_T.cpp: Reorganized include files so that inclusion of config.h is not necessary. * ace/IOStream.cpp: Changed inclusion of config.h to OS.h. * ace: Removed config.h from the following files. It was redundant. Timer_Hash.cpp Timer_Heap.cpp Timer_List.cpp Timer_Queue.cpp Timer_Wheel.cpp * ace: Added code to protect against multiple inclusions of config.h. Following files were effected: Trace.cpp Log_Msg.cpp * ace/config-win32-common.h: Removed redundant definitions of ACE_HAS_TYPENAME_KEYWORD and ACE_HAS_SIG_ATOMIC_T. Thanks to Matthias Kerkhoff for pointing this out. Wed Dec 3 21:37:47 1997 Douglas C. Schmidt * Added the new ACE-inheritance.ps and pdf files, which show the class structure of ACE. Thanks to John Lindal for generating this. * ace/Service_Config: Removed the static logger_key_ member and replaced it with a (defaulted) parameter to open(). This is more flexible. Thanks to Steve Coy for the suggestion. * ace/Service_Config.h: Addressed all the "@@" questions. * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed a subtle bug in the "quit" logic. Thanks to Michael Hoffman for reporting this. * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record), netsvcs/lib/Client_Logging_Handler.cpp (send): Changed the code so that we now always send ACE_UINT32 bytes worth of data for the length field. This ensures we're portable across platforms. Thanks to Steven Coy for noticing this. Wed Dec 03 18:02:09 1997 * performance-tests/Synch-Benchmarks/Benchmark.cpp: Added template instantiations for Atomic_Op. Wed Dec 3 10:29:58 1997 Carlos O'Ryan * ace/ACE.cpp: Use ACE_UINT32 to compute the 32-bit CRC, on Alphas (and probably other 64 bit machines) u_long seems to be longer than that. Wed Dec 03 07:39:15 1997 Steve Huston * include/makeinclude/platform_hpux.GNU: * include/makeinclude/platform_hpux_gcc.GNU: Moved some compile options from the DCFLAGS to the CCFLAGS to compile correctly with or without debugging. Wed Dec 03 06:26:14 1997 David L. Levine * ace/Future.cpp, tests/{Future_Test,Reactors_Test,Reader_Writer_Test.cpp, examples/Threads/manual_event.cpp: moved ACE_Atomic_Op instantiation from ace/Future.cpp to where it is used. * ace/OS.cpp (inet_aton): return 0 if addr argument is 0. Thanks to Wei for reporting this. * ace/config-linux.common.h: set an ACE_DEFAULT_BASE_ADDR, on Alpha for now. This might be necessary on Intel as well. * ace/OS.{h,i}, config-osf1-4.0.h: fixed use of ::sigwait with DIGITAL_UNIX's cxx 6.0, which now uses ACE_HAS_ONEARG_SIGWAIT. Also, added an ACE_DEFAULT_BASE_ADDR to the config file. * tests/{Priority_Reactor_Test,Reactor_Performance_Test}.cpp: instantiate ACE_Map_*, for use by ACE_Connector, with ACE_HANDLE instead of int. That's the way it's declared in ace/Connector.h. Wed Dec 03 00:17:50 1997 * tests/test_config.h: Removed code for ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer necessary. * ace/stdcpp.h: Removed code for ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer necessary. * ace/config-vxworks5.x-g++.h: Removed ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. This flag is no longer required. * ace/IOStream_T.cpp: Removed ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION from #if defined. * ACE: Removed the explicit iostream.h inclusion from these: examples/ASX/UPIPE_Event_Server/event_server.cpp examples/Log_Msg/test_log_msg.cpp examples/Logger/Acceptor-server/server_loggerd.cpp examples/Reactor/Misc/test_time_value.cpp examples/Shared_Malloc/test_persistence.cpp examples/Threads/task_three.cpp netsvcs/lib/Logging_Strategy.cpp * ace/IOStream.h: Darrell missed removing this explicit iostream.h inclusion. * ace/Future.cpp: Removed template instantiation of Atomic_Op since Atomic_Op is not used by Future. Fri Dec 02 11:46:17 1997 * ace/Proactor.cpp (ACE_Proactor): Reenabled Proactor's thread manager to wait on its Timer_Handler thread. * ace/Thread_Manager.cpp (close_singleton): Removed Win32 specific codes. This is no longer necessary with above changes. (wait): Close down thread handles when removing detached threads. Avoid performing wait when the program is shutting down. (remove_thr_all): Extracted out this protected member function. (close): Changed to use the new remove_thr_all function. * ace/Proactor.cpp (handle_events): Changed the magic number 258 to WAIT_TIMEOUT. Thanks to Mark Rabotnikov for pointing this out. Tue Dec 02 14:13:15 1997 Steve Huston * include/makeinclude/platform_hpux_aCC.GNU: Moved some compile options from the DCFLAGS to the CCFLAGS to compile correctly with or without debugging. Thanks to Istvan Buki for reporting the problem. Tue Dec 02 06:16:39 1997 David L. Levine * ace/Object_Manager.cpp (~ACE_Object_Manager_Destroyer): don't delete the ACE_Object_Manager if not destroyed by the main thread. That can cause problems, at least on WIN32. And it should only happen under exceptional conditions, at least on WIN32. Thanks to Ari Erev and John Neystadt for suggesting this. * ace/IOStream.cpp (underflow,overflow): moved get_mode_ and put_mode_ accesses so that it now works on KAI C++. Thanks to Ben Eng for the patch. * ace/config-linux-kcc.h: commented out ACE_TEMPLATES_REQUIRE_SOURCE. Thanks to Ben Eng for this update. * ace/Profile_Timer.cpp (elapsed_time): changed ACE_ONE_SECOND_IN_USECS to ACE_ONE_SECOND_IN_NSECS. Thanks to Wei for noticing this. * ace/OS.cpp (inet_aton): removed CHORUS specialization. Thanks to Wei for reporting this. * include/makeinclude/platform_chorus.GNU: added CHORUS = 1, for use by individual Makefiles. * examples/Shared_Malloc/test_persistence.cpp: removed ACE_Malloc instantiation because it's in ace/System_Time.cpp. * ace/config-lynxos.h: removed ACE_HAS_UALARM, because LynxOS apparently doesn't. * include/makeinclude/platform_lynxos.GNU: added -Winline and removed -fno-strict-prototypes. * tests/Message_Queue_Test.cpp (main): increased queue size from default of 16Kb to 32Kb, so that it runs on machines with 8Kb pagesizes. And, added a check to see if the queue is full before enqueuing. * ace/OS.i, config-osf1-4.0.h: DECXX 6009006 has SIGWAIT. * ACE-INSTALL.html: updated DEC_UNIX test status. Message_Queue_Test and all of the Mutex_Tests now pass. Conn_Test no longer does. Tue Dec 02 00:18:04 1997 * ace/Memory_Pool.cpp (handle_signal): If guess_on_fault_ is true, then we cannot call remap(0). This will always put the address out of range. Therefore, we will shoot in the dark (user has instructed us to do so as guess_on_fault_ is true) and try to remap the file. If the user does not want this behavior, the guess_on_fault_ flag should be turned off. Thanks to Jon Prettyman for pointing this out. Mon Dec 01 16:13:06 1997 * ace/config-win32-common.h: Added back ACE_LACKS_ACE_IOSTREAM to the config file. The test is not compiling. * tests/run_tests.bat: Look for "Win32 structured exception" in the log files. Mon Dec 1 14:01:02 1997 Darrell Brunsch * ace/Log_Msg.cpp, ace/Log_Msg.h, ace/Log_Record.cpp, ace/Log_Record.h ace/OS.h, ace/stdcpp.h, tests/test_config.h: Changed use of ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION in stdcpp.h to include iostream when the above is #defined. Made changes to other files to accommodate this change. Mon Dec 01 12:15:00 1997 * ace/config-win32-common.h (ACE_LACKS_ACE_IOSTREAM): James CE Johnson claims that ACE_LACKS_ACE_IOSTREAM is no longer not necessary when using the ACE_HAS_STANDARD_CPP_LIBRARY. * ace/OS.h: Changed the definition of ACE_UNIMPLEMENTED_FUNC so that it just evaporates on platform that have ACE_REQUIRES_FUNC_DEFINITIONS defined. ACE_UNIMPLEMENTED_FUNC is only required for template classes and not for a normal class. When the template is explicitly instantiated, it causes some compilers to look for the definition of all the declared methods. On platforms that have this behavior, we have decided to take out the declaration of this function. This is necessary since an empty definition of {} usually does not work with some constructors. And by providing a explicit definition of this function, will cause all platforms to suffer. Therefore, platforms with ACE_REQUIRES_FUNC_DEFINITIONS defined must be specially careful when using this. Mon Dec 01 07:56:02 1997 David L. Levine * include/makeinclude/platform_sunos5_sunc++.GNU: added -xildoff to LDFLAGS, to avoid occasional problems with the incremental linker. Thanks to Hans Rohnert for this suggestion. * include/makeinclude/platform_vxworks5.x_g++.GNU, etc/ace_ld, bin/ace_ld, ACE-INSTALL.html: moved ace_ld from etc/ to bin/. * Makefile: added etc/ to CLONE and RELEASE_FILES. * include/makeinclude/platform_lynxos.GNU: added -Wall to CFLAGS. * ace/ACE.cpp (set_handle_limit): only call setrlimit if RLIMIT_NOFILE is #defined. * ace/OS.h: removed ACE_HAS_STDARG_THR_DEST dependence for ACE_THR_DEST definition. * ace/OS.cpp (thr_keycreate): with ACE_HAS_DCETHREADS only, cast dest argument to ::pthread_keycreate if ACE_HAS_STDARG_THR_DEST. * ace/OS.i (get{host,proto,serv}by{addr,name}_r): with ACE_HAS_NONCONST_GETBY only, added some ACE_UNUSED_ARGS. * examples/Shared_Malloc/Malloc.cpp: removed ACE_Guard instantiation because it's in ace/Synch.cpp. * ace/config-lynxos.h: added ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. Without it, the Thread_Manager went recursively ballistic. * performance-tests/Misc/preempt.cpp (main): fixed printout if ACE_OS::sched_params () call failed. Sun Nov 30 22:44:50 1997 Douglas C. Schmidt * ACE version 4.4.1, released Sun Nov 30 22:44:50 1997. Sun Nov 30 20:32:50 1997 David L. Levine * include/makeinclude/platform_osf1_3.2.GNU: removed -ptr option from CCFLAGS, so the default template repository will be used. Thanks to Dani Flexer for reporting this. * ace/Svc_Conf_l.cpp,Makefile: 1) #include ace/stdcpp.h instead of stdio.h so that anything that needs to be #included with/before stdio.h can be. 2) Changed ECHO to ACE_SVC_CONF_ECHO to avoid compiler warning if ECHO was #defined to be a constant. * ace/Makefile: set ACELIB to null so that it can be used to build shared libs, including libACE.$(SOEXT). * include/makeinclude/platform_osf1_4.0.GNU: added $(ACELIB) to SOFLAGS to avoid shared lib build warnings about undefined ACE symbols. * ace/Thread_Manager.h: declare ACE_THR_MEMBER_FUNC outside of ACE_Thread_Manager class with __GNUG__ instead of with VXWORKS || IRIX5. The problem is with older versions of g++, not with the OS. Sun Nov 30 14:13:09 1997 Douglas C. Schmidt * netsvcs/servers/README: Clarified a bit more about how to configure the client and server logging processes. Thanks to Neil Cohen for motivating this. Sun Nov 30 17:36:35 1997 Sergio Flores * ace/Synch.cpp (ACE_File_Lock): Fixed order of parameters in the call to this->open() and too many arguments in call to ACE_File_Lock::open(). Sun Nov 30 16:31:41 1997 Carlos O'Ryan * ace/Synch.h: * ace/Synch.cpp: ACE_File_Lock should create the file if it does not exist, to do so the constructor takes the parameter to ACE_OS::open() and defaults to O_CREAT|O_RDWR. Sat Nov 29 21:31:07 1997 Nanbor Wang * ace/Proactor.cpp (~ACE_Proactor_Timer_Handler): Removed explicit call to thr_mgr_.close(). (ACE_Proactor): Be sure to ask Thread_Manager not to wait for the timer_handler_ thread. * ace/Thread_Manager.cpp (close_singleton): Only reset exit_on_wait status if we are responsible for deleting the global thread manager. Sat Nov 29 15:15:04 1997 Carlos O'Ryan * ace/IPC_SAP.cpp: Removed warning for functions not returning a value on SGI, it seems that the flow changed and the last return was reached sometimes, hence the ACE_NOTREACHED macro is no longer needed. Sat Nov 29 13:12:47 1997 Douglas C. Schmidt * ace/Synch: Conditionally inlined all the ACE_Process_Mutex wrapper calls and moved them into the Synch.i file. I'm not sure why there weren't here before. * ace/Synch: Reimplemented ACE_RW_Process_Mutex to use ACE_File_Lock, which provides the proper readers/writer semantics that had been lacking in the previous implementation. Fri Nov 28 04:25:23 1997 Nanbor Wang * ace: Removed redundant trailing commas from ACE_UNIMPLEMENTED_FUNC. * ace/Thread_Manager.{h,i,cpp}: Delete declaration of remove_thr_self. It is no longer in use. (wait_on_exit): Added this function to let users specify whether they want their Thread_Manager wait for spawned threads on exit or not. (wait): On Win32, handles should be closed if we decide to let the thread go wild. (remove_thr): Added another parameter to control whether remove_thr should close the handle or not. It is only used on Win32. (close): Removed the parameter for it has been incoporated as a member. (close_singleton): Reset on Win32. We'll never need to wait for unfinished threads on NT. (ACE_Thread_Manager): Added initialization of member . It is default to 1 (wait on exit.) * ace/Containers.h: Corrected erroneous comments. Wed Nov 26 10:33:22 1997 * ace/Log_Msg (msg): Changed the parameters from char * to const char *. * ace: Added unimplemented copy constructors and assignment operators to the following classes: ACE_Map_Manager ACE_Message_Block ACE_Data_Block ACE_Log_Msg ACE_Message_Queue ACE_Task ACE_Task_Base Added ACE_UNIMPLEMENTED_FUNC macros to these classes: ACE_Mem_Map ACE_Priority_Reactor ACE_Select_Reactor ACE_WFMO_Reactor ACE_XtReactor ACE_Reactor ACE_Read_Buffer ACE_CORBA_Handler ACE_TSS_TPQ_Entry ACE_Object_Manager ACE_File_Lock ACE_Semaphore ACE_RW_Mutex ACE_Mutex ACE_Null_Barrier ACE_Null_Condition ACE_Null_Mutex_Guard ACE_Event ACE_Thread_Mutex ACE_Thread_Mutex_Guard ACE_Condition_Thread_Mutex ACE_Recursive_Thread_Mutex ACE_Barrier ACE_Condition Thanks to Stanley D Leeson for these suggestions. Sat Dec 20 14:57:30 1997 * All MSVC 5.0 project files: Removed unnecessary library inclusions. Most of them are not necessary. Thanks to Patrick J. McNerthney for suggesting this. Wed Nov 26 15:49:14 1997 David L. Levine * ace/IOStream_T.i (recv) affects WIN32 only: fixed typo, ACE_BIT_ENABLED instead of ACE_BIT_ENTABLED IOStream_T.i. Thanks to James CE Johnson for reporting this. * include/makeinclude/platform_lynxos.GNU: added information on necessary OS patches. Wed Nov 26 09:45:43 1997 Chris Cleeland * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Corrected misspelling in the "! defined (MSC_VER)" branch. I just happened to notice this, so I don't know if anybody ever tried it and it failed. Tue Nov 25 12:07:07 1997 David L. Levine * include/makeinclude/platform_osf1_3.2.GNU: updated for OSF/1 3.2g/CXX 5.7. Thanks to Dani Flexer for the updates. Tue Nov 25 01:07:39 1997 * examples/Reactor/Proactor/test_multiple_loops.cpp (main): Made sure that the Proactor was removed from reactor. * ace/WFMO_Reactor.cpp (remove_handler_i, remove_suspended_handler_i): Make sure to preserve DONT_CALL with normal event entries. * ace/Proactor.cpp: - A flag used to indicate when we are shutting down. - Made sure to signal the timer event when we are closing down. - Thread Manager: don't bother to wait (since the thread may have already gone). But make sure to close up the descriptor. This may not be necessary in the future when THR_DETACHED is correctly implemented. * ace/Asynch_IO.h: Changed some code from protected to public. Even though these functions are really protected, sometimes it simplifies user code to be able to "fake" a result. Users should use these with care. * examples/Reactor/Proactor/test_proactor.cpp (handle_write_stream): Added code for partial write to socket. However it ever seems to do a short write ;-). Also made sure that the initial data coming from the AcceptEx call is also dumped to the file. Thanks to Mark Rabotnikov (mark@netmanage.co.il) for pointing this out.