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: added psos and psosim specific code * ace/OS.h: added psos and psosim specific code * 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.