Fri Dec 31 08:07:18 1999 David L. Levine * all Makefiles: updated dependencies. Thu Dec 30 11:17:27 1999 David L. Levine * etc/ACE-development-process.html: fixed some typos. Wed Dec 29 15:42:21 1999 David L. Levine * ace/OS.h: added null definition of ACE_ENDLESS_LOOP, if not already #defined. * ace/config-cxx-common.h: added definition of ACE_ENDLESS_LOOP to avoid compiler warning about unreachable statement following the loop. * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): inserted ACE_ENDLESS_LOOP. Wed Dec 29 13:21:48 1999 David L. Levine * include/makeinclude/platform_linux_cxx.GNU: added MATHLIB and test -f cxx_repository/*.o. Wed Dec 29 09:11:46 1999 David L. Levine * ace/config-cxx-common.h: enable ACE_USES_OLD_IOSTREAMS without __USE_STD_IOSTREAM. Removed ACE_HAS_STRING_CLASS on Linux, because IOStream_Test won't compile with it. * include/makeinclude/platform_linux_cxx.GNU: removed -D__USE_STD_IOSTREAM test, because IOStream_Test failed with it. * include/makeinclude/platform_linux_cxx.GNU: Removed -use_ld_input because it has no effect on Linux. Thanks to Ken Block for pointing that out. Tue Dec 28 18:32:02 1999 Vishal Kachroo * ace/QoS_Session_Impl.cpp: Added a comment for get qos(). * examples/QOS/Receiver_QOS_Event_Handler.cpp: * examples/QOS/Receiver_QOS_Event_Handler.h: * examples/QOS/server.cpp: Changed the server of the GQoS example to use the newly added QoS classes of ACE. The program structure has changed to reflect the abstractness of the ACE QoS API. The final goal is to remove all the GQoSisms from the applications, even if this means constraining it by the granularity provided by RAPI. Tue Dec 28 15:50:46 1999 David L. Levine * tests/test_config.h (set_output): removed the flags local variable, with its conditionally compiled type determination. The absorbed code is much cleaner. Tue Dec 28 15:37:11 1999 Chris Gill * ace/Log_Msg.cpp ace/Malloc.cpp ace/OS.{cpp, h, i} ace/Process_Manager.cpp ace/SOCK_Dgram_Mcast.cpp ace/Service_Config.{cpp, h} ace/Task.cpp ace/Thread.i ace/Thread_Manager.{cpp, h} ace/config-psos-diab-ppc.h: merged in changes for pSOS (Diab PPC) to support additional pHILE+ file system capabilities, and to deal with the limitations on sharing file and socket handles across pSOS tasks. Thanks to Sarmeesha Reddy and Steve Tine of Motorola for contributing these changes to ACE. Tue Dec 28 15:32:55 1999 David L. Levine * tests/Makefile: build libDLL_Test.so before building any executables, so that it doesn't see the template instantiations from all of the tests (after a make realclean, anyways). Tue Dec 28 08:55:23 1999 David L. Levine * include/makeinclude/platform_linux_cxx.GNU: added -D__USE_STD_IOSTREAM. * ace/config-cxx-common.h,ace/config-linux-common.h: added support for __USE_STD_IOSTREAM. Tue Dec 28 02:03:11 1999 Nanbor Wang * ace/Container_T.i (remove): Changed to call the method using the in ACE_DLList[_Reverse]_Iterator, otherwise, the in the ACE_Double_Linked_List got called which incurred memory leaks. Thanks to Lorin Hochstein for reporting the bug. Mon Dec 27 21:29:25 1999 David L. Levine * tests/Log_Msg_Test.cpp (test_ostream): removed local variable flags, because cxx X6.3/Linux doesn't like it as an int. Mon Dec 27 19:17:46 1999 Vishal Kachroo * ace/SOCK.cpp: Added #pragma template instantiations for g++. Mon Dec 27 16:24:09 1999 David L. Levine * ace/IOStream.h (setb): commented out declaration of unused arg a. Mon Dec 27 15:51:39 1999 David L. Levine * tests/test_config.h (set_output): with __USE_STD_OSTREAM (with Compaq cxx X6.3 on Linux), declare variable flags as std::ios_base::openmode instead of int. Otherwise, it complained about a type mismatch. Other compilers may need this eventually, as well. egcs didn't like it, so let's wait to see how best to generalize it. Mon Dec 27 13:03:50 1999 Vishal Kachroo * ace/QoS_Session_Impl.cpp: fixed the "pragma once is obsolete" warning thrown by Sung++. Mon Dec 27 12:27:33 1999 Nanbor Wang * tests/run_tests.bat: Changed to allow _Borland 4_ users to set the PATH environment variable to include the path to the appropriate ACE dll if necessary, and it sets the PATH environment variable to the correct directory depending on the "build options". Thanks to Charles Frasch for contributing this fix. Mon Dec 27 11:29:20 1999 David L. Levine * include/makeinclude/platform_linux_cxx.GNU: removed -I/usr/include/g++. (It's not needed with\end{verbatim} ACE_HAS_CPLUSPLUS_HEADERS.) Thanks to Judy Ward for pointing out that cxx should not be using the g++ headers. * ace/config-cxx-common.h: on Linux, #define ACE_HAS_CPLUSPLUS_HEADERS instead of ACE_LACKS_ACE_IOSTREAM. Mon Dec 27 09:28:40 1999 Balachandran Natarajan * QoS_Session_Impl.h: Fixed a warning in g++. Sun Dec 26 23:45:44 1999 Vishal Kachroo * QoS_Session.h: Provided a definition for the virtual destructor of ACE_QoS_Session. * QoS_Session_Impl.{cpp,h}: Replaced the ACE_LACKS_INLINE_FUNCTIONS macro with __ACE_INLINE__. * ace/ace_dll.dsp: Added the new QoS files to the NT DLL project. Sun Dec 26 21:50:46 1999 Vishal Kachroo The following existing files were changed for the ACE QoS API. * SOCK.h: * SOCK.cpp: Added a QoS session set to the ACE_SOCK. Also methods to join a new QoS session. * SOCK_Dgram_Mcast.h: * SOCK_Dgram_Mcast.cpp: The QoS subscribe method was changed to accommodate QoS. The following new files were added. * QoS_Session.h: Has the abstract base class for concrete QoS implementations. * QoS_Session_Factory.{h,cpp}: Concrete Factory for QoS implementations. Currently two implementations are supported, RAPI and GQoS. * QoS_Session_Impl.{h,cpp,i}: Has the QoS implementation classes. RAPI and GQoS are supported. * ace/Makefile: Added the new QoS classes. * include/makeinclude/wrapper_macros.GNU (): Added the ACE_HAS_RAPI flag. For ACE to have RAPI support it should be built with "make rapi=1". The platform_macros.GNU should have PLATFORM_RAPI_CPPFLAGS= PLATFORM_RAPI_LIBS=-lrsvp PLATFORM_RAPI_LDFLAGS= Sun Dec 26 16:43:16 1999 Yamuna Krishnamurthy * ace/OS.i: Replaced malloc with ACE_NEW_RETURN Fri Dec 24 16:33:48 1999 Ossama Othman * acconfig.h: Added ACE_HAS_RECURSIVE_MUTEXES to list of macros. * configure.in: Fixed ACE_LACKS_SETSCHED test. It previously didn't check that sched_setscheduler() existed. Both sched_setscheduler() and either pthread_attr_setschedpolicy() or pthread_attr_setsched() must be defined. This was an AIX related fix. Initialized variables in all compile-time tests. This fixes compile-time test warnings on AIX. Fri Dec 24 13:06:59 1999 Ossama Othman The following fixes were motivated by problems discovered in a configure script log file (config.log) that was generated on AIX, and sent in by Mike Winter . * THANKS: Added my Mike Winter to the THANKS list. * acconfig.h: Removed an extraneous comment. * configure.in: Added tests for ACE_HAS_BROKEN_XTI_MACROS and ACE_HAS_BROKEN_T_ERROR. Updated TLI/XTI preprocessor directives in TLI/XTI related tests. Fixed pthread_rwlock_t and pthread_rwlockattr_t structure tests. Previously the tests were missing the header files to search in. AIX defines _THREAD_SAFE in . Check if it is defined after including . * ltcf-cxx.sh: Added Digital/Compaq C++ libtool support. Minor Sun C++ updates. * ace/OS.h: AIX defines TCP_NODELAY and TCP_MAXSEG in tiuser.h so undefine them if ACE_HAS_BROKEN_XTI_MACROS is defined before including tiuser.h. Simplified TLI/XTI related macros. Fri Dec 24 08:04:58 1999 Douglas C. Schmidt * ace: tests: Moved ace/Auto_IncDec_T.cpp to tests/Auto_IncDec_Test.cpp, which is where it belongs. Thanks to David for reporting this. Thu Dec 23 13:57:04 1999 David L. Levine * include/makeinclude/rules.local.GNU: uncommented the rules for building .o files from .C and .cc files. They've been commented out since this file was put under CVS control, so it's not obvious why they can't be used. Thanks to Wei.Chiang@nokia.com for suggesting this. Thu Dec 23 12:16:38 1999 Christopher Kohlhoff * ace: Added missing files Capabilities.cpp and Configuration.cpp to $ACE_ROOT/ace/Makefile.bor. * ACE/tests: Added new tests Auto_IncDec_Test and Capabilities_test to Makefile.bor. * ACE/tests: Fixed syntax error in a Borland C++Builder specific section of Auto_IncDec_Test.cpp. * ACE/tests: Fixed Malloc_Test so that it does not fail with Borland C++Builder. * ACE/tests/ Changed run_tests.bat so that it does not invoke ACE_Init_Test when run with the "bor" command line argument. This test uses MFC and need not be built or run. Thu Dec 23 11:46:38 1999 Douglas C. Schmidt * ace/OS.h: Moved #if defined (ACE_HAS_SYS_FILIO_H) # include /**/ #endif /* ACE_HAS_SYS_FILIO_H */ from OS.i to OS.h so that the FIONREAD macro will be defined for the ACE_SOCK_Dgram::recv() method even if inline = 0. Thanks to Alain Sauron for reporting this. Wed Dec 22 11:29:43 1999 Nanbor Wang * bin/auto_compile_win32.pl: Renamed ImplRepo.dsw to ImplRepo_Service.dsw. Thanks to Derek Dominish for reporting this. Wed Dec 22 08:44:56 1999 Douglas C. Schmidt * tests/Log_Msg_Test.cpp: Conditionally compiled the iostream print statements so that the test builds correctly if ACE_LACKS_IOSTREAM_TOTALLY is defined. Thanks to David Levine for reporting this. Wed Dec 22 08:22:24 1999 David L. Levine * tests/CDR_File_Test.cpp: disabled with ACE_LACKS_IOSTREAM_TOTALLY. Tue Dec 21 21:27:48 1999 David L. Levine * ace/config-cxx-common.h: enable ACE_LACKS_ACE_IOSTREAM on Linux. cxx 6.3 generates unresolved streambuf symbols, otherwise. * include/makeinclude/platform_linux_cxx.GNU: added. * include/makeinclude/platform_osf1_4.0.GNU: changed comment now that cxx code is in ace/config-cxx-common.h. Tue Dec 21 08:02:43 1999 Douglas C. Schmidt * ace/Log_Msg.h (ACE_Log_Msg): Clarified that the ACE_Log_Msg_Callbacks are not inherited when a new thread is spawned. Thanks to Airat A. Sadreev for reporting this. Tue Dec 21 11:31:18 1999 bala * ACE version 5.0.10 released. Tue Dec 21 01:04:55 1999 Ossama Othman * ACE-configuration.txt: Updated information about using ACE+autoconf. * configure.in: Moved AC_{EXE,OBJ}EXT tests before C++ linker flags since these tests require C linker flags. * Makefile (release, releaseall): ACE-INSTALL should be a dependency of these targets in order for it to be generated. This fixes a "no such file or directory" error that occurs when making an ACE beta/release. Note that this fix is unrelated to the ACE+autoconf bootstrapping support that was recently added. * bin/bootstrap: Output message that lets the user know that bootstrapping is done. Mon Dec 20 23:55:18 1999 Ossama Othman * Makefile (release, releaseall): Removed ACE+autoconf bootstrapping commands. Bootstrapping must be done later in the process (i.e. in bin/make_release). * bin/make_release: Fixed MD5 checksum generation. Added temporary hacks to bootstrap ACE+autoconf support into the release. Mon Dec 20 22:15:45 1999 Ossama Othman * Makefile: Added ACE-configuration.txt, ltcf-c.sh, ltcf-cxx.sh and Makefile.in to the list of CONTROLLED_FILES. Added ACE+autoconf bootstrapping commands the release and releaseall targets. This allows a bootstrapped ACE+autoconf setup to be shipped with ACE, thus allowing the configure script to work "out of the box." * bin/bootstrap: Added bootstrapping options that enable or disable certain types of workspaces. By default, automatic dependency tracking is disabled by default. * bin/make_release: If path to additional GNU tools is broken, default to existing PATH and hope for the best. Fixed MD5 checksum generation. Mon Dec 20 21:14:41 1999 Ossama Othman * configure.in: Disabled maintainer mode check that prevented users from running the configure script. Added experimental libtool C++ support. Replaced CVS directory check with top-level source directory check to prevent stock ACE makefiles from being overwritten during configuration. * ltcf-c.sh: * ltcf-cxx.sh: Adding these files to the CVS repository. They will soon be merged into the upstream libtool package. Local copies will no longer be necessary. * m4/acinclude.m4: Alot of M4 quoting fixes/improvements. Reduced size ACE_CONVERT_WARNINGS_TO_ERRORS Autoconf macro. It still needs to be refined a bit (e.g. AC_REQUIREing compiler flag setups). (ACE_CHECK_SETRLIMIT_ENUM, ACE_CHECK_GETRUSAGE_ENUM): Added regex for one or more spaces before function name to prevent functions such as "__getrusage" from matching the regex. This fixes a problem on platforms that have both "getrusage," and "__getrusage," for example. (ACE_CHECK_TOP_SRCDIR): Added this autoconf macro. It prevents ACE from being configured in the top-level source directory. Configuring ACE in the top-level source directory would cause the stock ACE makefiles to be overwritten. Since autoconf support in ACE is still in the testing stages, we need to make sure that users can fall back on the stock ACE build procedure. This "feature" can be overridden by using the "--enable-maintainer-mode" configure script option. * m4/compiler.m4: Set variable "WERROR" that contains the compiler flags to convert warnings to errors. Eventually, this support should be moved to its own macro that is AC_REQUIREd by ACE_CONVERT_WARNINGS_TO_ERRORS. * m4/features.m4 (ACE_CHECK_ASYNCH_IO): Minor M4 quoting fixes/improvements. Sun Dec 19 09:34:49 1999 David L. Levine * bin/g++dep: set TAO_ROOT to $ACE_ROOT/TAO if it was unset. Thanks to Darrell for reporting that TAO_ROOT wasn't being substituted if it wasn't set. Sat Dec 18 01:16:20 1999 Irfan Pyarali * ace/ACE.cpp (recv_i and send_i): The selection of the next message block to send/recv was incorrect. The correct way is to chase the continuation chain and then go to the next continuation chain. Fri Dec 17 22:25:56 1999 David L. Levine * ace/config-cxx-common.h: added, to factor out common configuration for Compaq cxx. * ace/config-osf1-4.0.h,config-linux-common.h: updated to use config-cxx-common.h. Fri Dec 17 21:32:48 1999 David L. Levine * ace/config-linux-common.h: added support for Compaq (Digital) cxx. Currently, that just means allowing compilation to succeed. Fri Dec 17 21:29:19 1999 David L. Levine * ace/OS.h: use __DECCXX instead of DEC_CXX to detect that the compiler is Compaq (Digital) cxx. DEC_CXX is #defined in ACE config files for cxx, but __DECCXX is #defined by the compiler. Only the latter should be used. Fri Dec 17 21:20:48 1999 David L. Levine * ace/TTY_IO.cpp (control): added static cast of TCSETS to int to avoid cxx 6.3 warning about conversion of unsigned int to int. Also added the cast to TCGETS. Fri Dec 17 14:40:02 1999 Nanbor Wang * ace/Local_Tokens.h (ACE_TSS_TPQ_Entry): Made the destructor virtual to avoid warnings from egcs. Fri Dec 17 13:27:24 1999 Steve Huston * ace/config-pharlap.h: Added ACE_LACKS_TCP_NODELAY. Thanks to David Hauck for this. Fixes bugzilla #270. Fri Dec 17 11:38:09 1999 Douglas C. Schmidt * We just reached our 800th external contributor: Andrey Nechypurenko . Andrey gets a free copy of ACE+TAO as a prize! * ace/config-linux-common.h: Wrapped the #define ACE_DEFAULT_SELECT_REACTOR_SIZE with a #if !defined() so that users can override this. Thanks to Charlie Duke for suggesting this. Thu Dec 16 12:26:36 1999 Nanbor Wang * bin/auto_compile_win32.pl: Took out Concurrency Service from the build list. Wed Dec 15 21:24:05 1999 Irfan Pyarali * ace/config-win32-common.h (ACE_DEFAULT_MAX_SOCKET_BUFSIZ): Windows doesn't like 65536 ;-) If 65536 is specified, it is listenly ignored by the OS, i.e., setsockopt does not fail, and you get stuck with the default size of 8k. Tue Dec 14 08:57:03 1999 Vishal Kachroo * ace/OS.h: Added a #ifdef for WINSOCK2_GQOS for removing the errors on NT due to the previous change in ACE_Flow_Spec class. Tue Dec 14 07:49:58 1999 Vishal Kachroo * ace/OS.i: * ace/OS.h: Extended the ACE_Flow_Spec and ACE_QoS classes to accommodate the use of such classes for non-Win32 platforms. These changes are motivated by the new ACE QoS classes that will soon be included with ACE. Mon Dec 13 16:23:22 1999 Nanbor Wang * ace/Malloc.{h,cpp}: Made print_alignment_info available for all configuration. Mon Dec 13 02:49:04 1999 Nanbor Wang * ace/Memory_Pool.cpp (remap): Commented out the printout of remap message in MMAP_Memory_Pool as this function is called from the signal handler. (It didn't really cause any problem but we shouldn't use ACE_DEBUG from signal handlers anyway.) Mon Dec 13 01:12:00 1999 Irfan Pyarali * ace/WFMO_Reactor.cpp (update_state): make_changes() calls into user code which can request other changes. So keep looping until all requested changes are completed. Thanks to Edan Ayal for reporting this problem! Sun Dec 12 20:10:23 1999 Nanbor Wang * ace/config-hpux-10.x.h: Tweaked ACE_MALLOC_PADDING, ACE_MALLOC_ALIGN, and ACE_CONTROL_BLOCK_ALIGN_LONGS manually for HPUX. * tests/Malloc_Test.cpp: Added an ACE_TEST_REMAP_ON_FAULT macro which is not defined on linux only. Linux seems to have problem calling mmap from within the signal handler. Sat Dec 11 15:00:43 1999 Nanbor Wang * tests/Malloc_Test.cpp (main): Alignment information should only be printed when ACE_NDEBUG is not defined. Sat Dec 11 14:27:27 1999 Ossama Othman * ace/Makefile.am (pkginclude_HEADERS): Split header file list into `.h' files (HEADER_FILES) and `.i' (INLINE_FILES). This gets around a limitation on Solaris. Sat Dec 11 10:40:38 1999 Nanbor Wang * ace/config-lynxos.h: Added ACE_HAS_TYPENAME_KEYWORD. Fri Dec 11 11:13:54 1999 James Hu * ace/Dirent.i: Constructor with a path passed in was not initializing dirp_. Fri Dec 10 17:29:54 1999 Nanbor Wang * ace/Malloc.h: * ace/Malloc.cpp: Added methods for both control block. They are only available for debug version. * tests/Malloc_Test.cpp: Removed temporary debug print out and changed to use . This test no longer forces the mmap to remap. Linux doesn't handle the case correctly. Fri Dec 10 15:37:09 1999 Douglas C. Schmidt * ACE-INSTALL.html: Clarified how the clone procedure should work. Thank to Jerry D. De Master for suggesting this. * ace/OS.h: Changed the value of O_NDELAY from 0 to 1 on Windows NT. Thanks to Craig Perras for reporting this. Fri Dec 10 15:55:53 1999 Ossama Othman * ace/Configuration.cpp: Added a comment stating that ACE_SYNCH_MUTEX should not be used in the template instantiations because the resulting template instantiation for the single-threaded case already exists in ACE. Thanks to Doug for letting me know about this. * m4/compiler.m4 (CXXFLAGS): Added missing flags that fix Sun C++ 5.0 weirdness on Solaris. Fri Dec 10 14:35:26 1999 Ossama Othman * acconfig.h (_RWSTD_NO_EXCEPTIONS): Sun CC 5.0 without exception support needs this macro to be defined to prevent warnings from occurring due to its broken header. * configure.in: Added a few "checkpoints" where the cache is saved to aid in debugging. (ACE_HAS_THREAD_SPECIFIC_STORAGE): Added check for pthread_keycreate(). Old POSIX threads implementations used pthread_keycreate() instead of pthread_key_create(). (ACE_HAS_SIG_C_FUNC): (ACE_HAS_THR_C_FUNC): (ACE_HAS_THR_C_DEST): Added tests that check if signal handlers, thread start routines, and thread destructors should be declared `extern "C"'. These changes allow clean builds on Solaris 7 with Sun CC 5.0. (ACE_HAS_STDARG_THR_DEST): Check if thread destructor argument to pthread_key_create (or pthread_keycreate) should be of type `void(*)(...)'. * m4/compiler.m4 (_RWSTD_NO_EXCEPTIONS): Define _RWSTD_NO_EXCEPTIONS when compiling on Solaris with Sun CC 5.0 without exceptions. Fri Dec 10 11:43:50 1999 Douglas C. Schmidt * tests/run_tests.lst: Disabled the MT_Reactor_Timer_Test until Darrell can fix the timer queue. Fri Dec 10 07:24:12 1999 David L. Levine * ACE-INSTALL.html: on VxWorks, automatic construction/destruction of static objects should be enabled. Thanks to Erik Johannes for reminding me of this. Thu Dec 9 17:18:57 1999 Douglas C. Schmidt * ace/Acceptor.cpp (handle_input): Only printout a diagnostic message if ACE::debug () > 0. Thanks to Chris Uzdavinis for reporting this. Thu Dec 9 19:55:58 1999 Ossama Othman * acconfig.h: * configure.in: Added checks/support for the ACE_HAS_PTHREADS_UNIX98_EXT macro. * ace/OS.h (ACE_rwlock_t): * ace/OS.i (rw_tryrdlock, rw_trywrlock, rw_rdlock, rw_wrlock, rw_unlock): ACE_LACKS_RWLOCK_T should not imply !ACE_HAS_PTHREADS_UNIX98_EXT because the pthread_rwlock_t type exist despite the fact that rwlock_t doesn't. Thu Dec 09 15:53:20 1999 Nanbor Wang * ace/Malloc.cpp: * ace/Malloc.h: * ace/Malloc.i: Separated the control block implementation into "position independent control block" and "lean and mean control block." Each control block implementation has its own definitions of Malloc_Header and Name_Node as inner classes. ACE_Control_Block implements the "old, lean and mean" control structure for ACE_Malloc_T and ACE_PI_Control_Block implements the "new, position independent" control structure for ACE_Malloc_T. Added several macros to finer control the padding and alignment because calculating the padding requires using some operations that can not be evaluated during the compile time and the original padding length calculation don't always work. Usually, you don't have to worry about the padding. But if you are interested in tweaking these parameters, here are some hints. - (ACE_MALLOC_PADDING): defines the minimum size of a Malloc_Header. The actual size of Malloc_Header should always be the a multiple of ACE_MALLOC_ALIGN and may be larger then ACE_MALLOC_PADDING. - (ACE_MALLOC_PADDING_SIZE): define the actual size of the array of long used to pad the ACE_Control_Block::ACE_Malloc_Header. If it is not defined by the user, ACE will try to calculate it for you. If it is defined as 0, there'll be no padding at all. This macro is compiler/platform dependent. - (ACE_CONTROL_BLOCK_ALIGN_LONGS): define the actual size of the array of long used to pad the ACE_Control_Block so that the first Malloc_Header always starts from the alignment boundary. If it is not defined by the user, ACE will try to calculate it for you. If it is defined as 0, there'll be no padding at all. This macro is compiler/platform dependent. - (ACE_PI_MALLOC_PADDING_SIZE): similar to ACE_MALLOC_PADDING_SIZE but applied to ACE_PI_Control_Block::ACE_Malloc_Header. - (ACE_PI_CONTROL_BLOCK_ALIGN_LONGS): similar to ACE_CONTROL_BLOCK_ALIGN_LONGS but applied to ACE_PI_Control_Block. * ace/Malloc_T.cpp: * ace/Malloc_T.h: * ace/Malloc_T.i: Parameterized the type of control block used in ACE_Malloc, which is now renamed to ACE_Malloc_T, as a template parameter so that we can control tradeoff between efficiency and flexibility. Another ACE_Malloc template class was added which simply use ACE_Malloc_T with ACE_Control_Block as its internal control structure so that we don't have to change the existing programs using ACE_Malloc. However, for platforms/compilers using explicit template instantiation, you still need to add the instantiations for the based template class. For example, if you instantiated "ACE_Malloc", you'll need to add "ACE_Malloc_T". Likewise for ACE_Malloc_LIFO_Iterator and ACE_Malloc_FIFO_Iterator. * ace/Based_Pointer_T.h: Renamed arguments "overload" to "o". KCC complained about using "overload" as variable names * ace/Configuration.cpp: * ace/Naming_Context.cpp: * ace/Service_Config.cpp: * ace/System_Time.cpp: * ace/Template_Instantiations.cpp: * docs/tutorials/021/client.cpp: * docs/tutorials/021/server.cpp: * examples/Reactor/Misc/demuxing.dsp: * examples/Shared_Malloc/Malloc.cpp: * examples/Shared_Malloc/test_persistence.cpp: * examples/System_V_IPC/SV_Semaphores/Semaphores.cpp: * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp: * performance-tests/TCP/TCP.dsp: * tests/Malloc_Test.cpp: * tests/SV_Shared_Memory_Test.cpp: Added explicit template instantiations for base malloc class in corresponding with the above change. Thu Dec 09 15:40:03 1999 David L. Levine * ace/OS.i (mmap): on LynxOS, fixed use of file_mapping argument. It it was 0, set it equal to the address of an int on the stack. Thanks to Chad Elliott for reporting a problem with ACE_OS::mmap on LynxOS. And thanks to Chad for an explanation of why Malloc_Test and TAO's Naming_Service -f don't work: it's because they require that the mapped object be changed. LynxOS 3.0.x and earlier don't support that. Thu Dec 09 07:30:12 1999 David L. Levine * Makefile (CONTROLLED_FILES): added ChangeLog-99a. Thanks to Pierre Oberson for reporting that it was missing. Wed Dec 8 13:36:59 1999 Ossama Othman * configure.in (ACE_SYS_RESTARTABLE_SYSCALLS): Disabled ACE_SYS_RESTARTABLE_SYSCALLS test. On platforms where it detects restartable system calls, it defines ACE_HAS_SIGNAL_SAFE_OS_CALLS. This causes the ACE_OSCALL* macros in OS.h to use "ACE_LOG_MSG->restart()" before ace/Log_Msg.h is included, ending up in ACE_LOG_MSG being an unknown macro. Currently, none of ACE's supported platforms actually define ACE_HAS_SIGNAL_SAFE_OS_CALLS so disabling this test okay for now. * ace/OS.i (ioctl): Commented out ACE_DEBUG call. ACE_OS should not depend on ACE_Log_Msg in any way. Wed Dec 8 10:15:20 1999 Douglas C. Schmidt * bin/clone.cpp: The definition of mk_symbolic_link() was missing the third argument 'int level'. Thanks to Jerry De Master for reporting this. * ace/Synch.h: Added comments to ACE_Thread_Mutex_Guard and ACE_Null_Mutex_Guard explaining that they were obsolete and should be replaced by ACE_Guard and ACE_Guard, respectively. Thanks to Pierre Oberson for reporting this. Tue Dec 7 22:53:01 1999 Douglas C. Schmidt * netsvcs/lib/Client_Logging_Handler.cpp (send): Clarified that *someday* we'll improve the implementation to queue data when a connection is lost and automagically reinitiate the connection. Thanks to David X Callaway for motivating this. Tue Dec 07 22:14:15 1999 David L. Levine * docs/ACE-guidelines.html: added a guideline about signal handlers. Tue Dec 7 21:39:42 1999 Douglas C. Schmidt * ace/OS.i: Fixed the definition of ACE_NETDBCALL_RETURN so that memcpy (TARGET,ace_result_,SIZE); is changed to memcpy (TARGET,ace_result_, SIZE < sizeof(TYPE) ? SIZE : sizeof(TYPE)); This fixes a bug with UnixWare. Thanks to Phil Mesnier for reporting this. Tue Dec 07 21:20:37 1999 Nanbor Wang * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added ace.rc to project files. One can use GetFileVersionInfo on Win32 to get the ACE library version info now. Thanks to David Hauck for suggesting this. Tue Dec 07 15:27:24 1999 David L. Levine * docs/ACE-guidelines.html: added guideline to use THR_BOUND for time-critical threads. Thanks to Marina for reminding me about this, and for running some experiments on Solaris that demonstrate that it's necessary (and really works :-). Tue Dec 07 13:25:53 1999 Nanbor Wang * ace/Based_Pointer_T.{h,cpp}: Added two constructors that take a base pointer for base_offset_ calculation. They can be used when we already know the base address of the pointer to avoid an extra lookup from the Based_Pointer_Repository. * ace/Malloc_T.i (init_malloc_header_ptr): Changed to initialize the pointer using the address of control block. Notice that the address of the control block should never change during the lifetime of ACE_Malloc. Thanks to Irfan for noticing the performance issue. Mon Dec 06 21:16:53 1999 Irfan Pyarali * ace/SOCK_Dgram.cpp (send): Added missing timed send. Thanks to Yuval Yosef for motivating this. * ace/SOCK_IO.h (ACE_SOCK_IO): Most methods now support an optional timeout parameter. * ace/SOCK_Stream.h (ACE_SOCK_Stream): All methods now support an optional timeout parameter. Also fixed the parameter type in recv_urg and send_urg to be size_t instead of int. * ace/ACE: - All the I/O function were made consistent in ACE. This included matching send and recv functions, all of which now support timeouts. - Many of the timed functions, e.g., ACE::readv() and ACE::sendto(), were changed such that the case was made common between the code that expected OS provided timed functions and the other where the timed function was simulated by ACE. - Certain file I/O operation were made simple by removing the extra parameter. Timeouts are not supported in file I/O. In some cases, e.g., the timed writev and readv functions, the function was removed since it was not necessary as taking the parameter made it redundant with the function in ACE_OS. - The "_n" methods were given a performance boost when they are used with timeouts. We only set the handle into non-blocking mode only once rather than for every iteration in the loop. - Added send/recv/send_n/recv/recv_n methods that take a message block as the data container. - Here is the description of the updated functions from the documentation: ________________________________________ The parameter in the following methods indicates how long to blocking trying to transfer data. If == 0, then the call behaves as a normal send/recv call, i.e., for blocking sockets, the call will block until action is possible; for non-blocking sockets, EWOULDBLOCK will be returned if no action is immediately possible. If != 0, the call will wait until the relative time specified in * elapses. Errors are reported by -1 and 0 return values. If the operation times out, -1 is returned with . If it succeeds the number of bytes transferred is returned. The "_n" I/O methods keep looping until all the data has been transferred. These methods also work for sockets in non-blocking mode i.e., they keep looping on EWOULDBLOCK. is used to make sure we keep making progress, i.e., the same timeout value is used for every I/O operation in the loop and the timeout is not counted down. If the transfer times out, the number of bytes transferred so far are returned. Methods with parameter are I/O vector variants of the I/O operations. ________________________________________ * ace/config-win32-common.h: Set IOV_MAX on Win32 to be 1024. It seems like Win32 does not have a limit on the number of buffers that can be transferred by the scatter/gather type of I/O functions, e.g., WSASend and WSARecv. We are arbitrarily setting this to be 1k for now. The typically use case is to create an I/O vector array of size IOV_MAX on the stack and then filled in. Note that we probably don't want too big a value for IOV_MAX since it may mostly go to waste or the size of the activation record may become excessively large. * ace/OS: The "faked" readv() in ACE for operating systems without it was calling read_n(). This was changed to call read() since readv() makes no guarantee that everything requested will be read. Same changes applied for writev(). send_n() does not belong in the OS class. It belongs in the ACE class. Therefore, it was moved. read_n() is only called for file handles (and not for socket handles). Therefore, there is no point in checking for EWOULDBLOCK. Same change was made to write_n(). * ace/Handle_Set.h (ACE_Handle_Set): Added an explicit fdset() function to get to the fd_set *. This eliminates the need for the stupid cast operator. Mon Dec 6 21:13:08 1999 Douglas C. Schmidt * ace/Configuration.cpp (set_string_value): When setting a value in the registry, the specified length must include the NUL terminating character. Thanks to Chris Hafey for reporting this. Mon Dec 6 11:06:43 1999 Ossama Othman * m4/acinclude.m4 (ACE_TRY_COMPILE): Make choice of compiler flags to use dependent on the current autoconf test language. This fixes a problem with C++ compiler flags potentially passed as C flags to libtool. (ACE_USE_TEMP_FILE): Added checks for existing files that should be directories and vice versa. If the file passed as argument is in a directory and the directory doesn't exist then create the directory. In order to be as general as possible a script fragment was implemented with the same functionality as "mkdir -p" because "mkdir -p" may not be portable. * m4/threads.m4 (ACE_SEARCH_THREAD_FLAGS): Make choice of compiler flags to use dependent on the current autoconf test language. This fixes a problem with C++ compiler flags potentially passed as C flags to libtool. Mon Dec 06 08:25:22 1999 David L. Levine * include/makeinclude/platform_sunos5_sunc++.GNU: added more comments about support of 64-bit binaries with Sun CC 5.0. Thanks to Dani Flexer for providing them. Mon Dec 6 07:55:05 1999 Douglas C. Schmidt * ace/config-sunos5.7.h: Added several new #defines needed to port ACE to 64 bit Solaris. Thanks to Dani Flexer for these. * ace/ACE.cpp: Changed the implementation of count_interfaces() to handle the fact that size_t is a 64 bit type but the parameter to ioctl needs to be an int, which according to LP64 is 32 bits. Thanks to Dani Flexer for reporting this. * netsvcs/lib/Client_Logging_Handler.cpp (handle_signal): If SIGPIPE occurs, ACE_Client_Logging_Handler::handle_signal() returns -1, thus removing svc handler from reactor. Since svc handler is implemented as a singleton here, all next incoming SPIPE connections operate on object that is already destroyed -> SIGSEGV/SIGBUS. Therefore, we now return 0 in handle_signal(). Thanks to Alexander Dergatch for reporting this. * netsvcs/lib/Server_Logging_Handler_T.cpp (svc): The following loop while ((result = this->handle_input ()) > 0) continue; causes server thread to leave its execution loop, because handle_input() always returns 0 or -1. This should be replaced with while ((result = this->handle_input ()) == 0) Thanks to Alexander Dergatch for reporting this. Sun Dec 05 21:54:47 1999 David L. Levine * ace/Dump.cpp (ACE_ODB ctor): initialize current_size_ data member, so that examples/misc/test_dump will pass on MSVC 6.0/NT 4.0, at least. Thanks to Soren Ilsoe for reporting this. Sun Dec 5 16:50:37 1999 Ossama Othman * ace/OS.h: Some compilers were picky about the circular dependency fix. Moved inclusion of ace/Log_Msg.h after ace/OS.i yet again. Sat Dec 04 21:14:37 1999 Nanbor Wang * tests/Malloc_Test.cpp (init_test): Need to call init_acquire to make sure the old mapfile does get removed. Added more printout items in the normally disabled debug section. Sat Dec 04 19:45:49 1999 Nanbor Wang * ace/Memory_Pool.cpp: Conditionally bind/unbind the Pagefile_Memory_Pool with the Based_Pointer_Repository depends on whether position independent pointers are used or not. Sat Dec 4 16:59:08 1999 Ossama Othman Circular dependency fixes/updates: * ace/OS.h: Include "ace/Log_Msg.h" before "ace/OS.i" because the methods in ACE_OS depend on ACE_Log_Msg for output and error reporting. * ace/Log_Record.h: Include "ace/OS.h" instead of "ace/ACE.h." OS.h is needed to pull in the definition of ACE_Export. ACE.h was overkill. This change is at the core of the circular dependency fix. * ace/Log_Record.cpp: Include "ace/ACE.cpp" to pull in definition of ACE::log2(). The above changes made the following changes necessary. They also corrected an annoying circular dependency problem that was occurring when using an automatically generated ace/config.h. The below changes are actually legitimate fixes since the source files in question unnecessarily relied on other headers to pull in ACE class definitions. * ace/DLL.cpp: Include "ace/ACE.h" because ACE_DLL::open() uses ACE::ldfind(). * ace/Functor.h: Include "ace/ACE.h" instead of "ace/OS.h" because "ace/Functor.i" needs the hash functions in the ACE class. All of the above changes nicely reduced the number of source files that depend on ace/ACE.{h,i}! * ace/Makefile: * apps/gperf/src/Makefile: Updated dependencies. Fri Dec 3 21:51:38 1999 Nanbor Wang * ace/Malloc_T.cpp (shared_malloc): Changed the for loop to while(1) so the compilers can identify the control will never fall off the end of the loop and apply ACE_NOTREACHED to the final return statement. Fri Dec 03 12:14:31 1999 Nanbor Wang * ace/Malloc_T.i (init_malloc_header_ptr): Applied ACE_UNUSED_ARG when we are not using position independent pointers. * ace/Malloc_T.cpp (shared_malloc): Split the structural exception try block into two to avoid warnings from the OSF compiler. Thanks to David for reporting this. Thu Dec 2 22:42:53 1999 James Hu * ace/TP_Reactor.cpp: Instead of setting suspend_set_ and wait_set_ both all the time, try to determine whether or not the handler is suspended and choose one of the sets to do the bit_ops on. Thu Dec 2 22:41:53 1999 Yamuna Krishnamurthy * ace/OS.i: Added the bug fix to the SIO_GET_QOS call in ACE::ioctl () for RC2 release. This involved removing explicit buffer allocation for the provider specific buffer and just allocating one contiguos buffer for the QOS structure. Thu Dec 02 18:16:27 1999 James Hu * ace/Filecache.cpp: Make it possible to remove something from the Filecache. Thu Dec 02 18:03:27 1999 Nanbor Wang * tests/Malloc_Test.cpp (parent): Before binding the name "bar", do a series of small malloc and a huge malloc to make sure the child process will segfault and the remapping is tested on the child process. * ace/Memory_Pool.h: * ace/Memory_Pool.cpp: Added a no-op method to Local_Memory_Pool because we might call remap from ACE_Malloc on Win32. (Win32 only) Added a new function that takes a pointer to an EXCEPTION_POINTERS and is responsible to determine if remapping of the memory map file is required or not. * ace/Malloc_T.h: * ace/Malloc_T.i (init_malloc_header_ptr): Added a new inline function which simply initializes a (position independent) pointer pointing to a Malloc_Header. This is required because the placement new in this function makes MSVC think we are creating a new object and disallow the use of ACE_SEH_TRY in functions that use placement new. * ace/Malloc_T.cpp: Added the use of ACE_SEH_TRY in several ACE_Malloc::shared_* methods so we can catch the potential access violations and force remapping of memory maps. On UNIX, this is done thru in Memory_Pool. Thu Dec 2 09:17:02 1999 Douglas C. Schmidt * ace/config-win32-borland.h: Apparently, the Borland BC4 compiler lacks operator placement delete, so I added #define ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle this case. Thanks to Mike Gingell . Wed Dec 1 22:26:06 1999 Douglas C. Schmidt * tests/MM_Shared_Memory_Test.cpp: Make sure to force the test to use System V Semaphores if the OS platform supports POSIX semaphores natively (since these don't have the right semantics for this test). Thanks to Steve Huston for reporting this bug. This fix should clear BUG ID 382. Wed Dec 01 06:16:34 1999 Nanbor Wang * ace/Malloc.h (ACE_MALLOC_PADDING): Restored default value to 1. Added a new macro ACE_MALLOC_HEADER_SIZE which serves the same function as ACE_MALLOC_PADDING (both specify the minimum malloc header size) but ACE_MALLOC_HEADER_SIZE is normalized to be multiple of ACE_MALLOC_ALIGN. (ACE_CONTROL_BLOCK_ALIGN_LONGS): Changed back to use ACE_MALLOC_ALIGN to calculate the starting malloc header alignment. * tests/Malloc_Test.cpp: Expanded the memory offset between parent and child mmap base address so there'll be no overlap even when we use a larger ACE_MALLOC_PADDING. Wed Dec 1 02:10:51 1999 Douglas C. Schmidt * tests/Auto_IncDec_Test.cpp: The main() function was missing a return type. Also, don't run the test with output logged to stderr. Thanks to David Levine for reporting this. Tue Nov 30 16:11:52 1999 Steve Huston * tests/run_tests.sh: Made the check for libDLL_Test use a configurable suffix rather than hardcoded .so so it works on platforms like HP-UX (which uses .sl). Tue Nov 30 14:24:31 1999 Ossama Othman * acconfig.h: Minor cosmetic updates. * configure.in: Only enable POSIX semaphore support if process shared semaphores are supported. Presumably process shared semaphores are only available if the _POSIX_THREAD_PROCESS_SHARED macro is defined by the platform. [Bug 304] Tue Nov 30 00:22:48 1999 Nanbor Wang * tests/Malloc_Test.cpp: Changed to store the mmap allocator in an auto_ptr instead of as a static object so we can be absolutely sure about the creation order. Added an init_test method which creates a mmap memory pool and releases it immediately to make sure the test won't crash/deadlock due to previous crashes. Mon Nov 29 16:36:06 1999 Nanbor Wang * ace/Malloc.h (ACE_MALLOC_PADDING): Changed the default value of ACE_MALLOC_PADDING to 16 to avoid some some alignment problem. Fixed the padding size calculation in ACE_Malloc_Header. * tests/Malloc_Test.cpp (main): Added some debug printout which is commented out for now (they are not used for regular test.) Mon Nov 29 14:34:16 1999 Ossama Othman * ace/config-win32-borland.h: * ace/config-win32-common.h: The ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro I previously removed is used in TAO's IDL_Test. Thanks to Jeff for pointing this out. * ace/OS.i (sema_init): The call to sem_init() for the process shared case incorrectly used USYNC_THREAD for the second argument. For the USYNC_PROCESS case, the second argument to ::sem_init() should be "type == USYNC_PROCESS" since it will evaluate to "1" in this case. A conditional is used since some platforms may not define USYNC_PROCESS to be a non-zero value. Mon Nov 29 12:15:56 1999 Douglas C. Schmidt * tests/Auto_IncDec_Test.cpp: Updated this test to use multiple threads, if available. Thanks to Edan Ayal for this. Mon Nov 29 11:47:55 1999 Ossama Othman * ace/OS.h: Backed out the inline related changes I made. Some compilers have a problem with them. Sun Nov 28 20:03:03 1999 Ossama Othman * ace/OS.i (sema_init): According UNIX Network Programming V2 by Stevens, sem_init() is currently not required to return zero on success, but it *does* return -1 upon failure. For this reason, check for failure by comparing to -1, instead of checking for success by comparing to zero. Sun Nov 28 19:05:31 1999 Nanbor Wang * ace/Process_Manager.cpp (open): Fixed an ASYS_TEXT usage. ASYS_TEXT can not enclose several string literals. Sun Nov 28 18:09:49 1999 Ossama Othman * m4/acinclude.m4 (ACE_USE_TEMP_FILE): Check that the source directory is not the current directory before moving a file in the current directory out of the way. Previously an attempt to move the same file out of the way was performed to twice. Sun Nov 28 17:06:00 1999 Ossama Othman * acconfig.h: Added ACE_HAS_POSITION_INDEPENDENT_MALLOC macro. * configure.in: Dropped AC_ISC_POSIX macro in favor of an AC_CHECK_LIB strerror test. Disabled exception handling support by default. Added "--enable-pi-malloc" configure script option to enable/disable ACE's position independent malloc feature. By default, this feature will be enabled. Added a run-time test for sem_open(). glibc() apparently defines a stub for this function in the pthread library but there is no entry in for it. As such, the configure script assumed that it is a working function. It turns out it is not (on Linux with glibc <= 2.1.2). Generalized/improved setrlimit and getrusage tests that check if the first argument is an enum. The tests now determine exactly what the enum type is. Previously, the test was specific to Linux/glibc platforms. Fixed some tests that didn't initialize a const variable before it was used. Added a test that checks the integrity of the generated configuration. The test attempts to compile ace/OS.cpp. If it fails then the rest of ACE won't compile, indicating that the automatic configuration wasn't successful. Upon failure, some diagnostic information is output, and a request to submit a bug report is made. Flush the cached configuration test results to the cache file. This is mainly useful for configure script debugging purposes. * ace/Log_Msg.h (ACE_Log_Msg): Added additional spaces before comments describing each format specifier since the single quote "'" at the beginning of each description was interpreted as a troff comment. Thanks to Kevin Dalley for pointing this out and suggesting a fix. * ace/OS.h: Consolidated some ACE_INLINE macro preprocessor conditionals. Moved inclusion of Log_Msg.h and OS.i to the end of the file in case some declarations or definitions found earlier in OS.h are ever needed in the future by these two files. * ace/Trace.h: * ace/Trace.cpp: Removed inclusion of Log_Msg.h from Trace.cpp and included OS.h in Trace.h. OS.h is needed for the definition of ACE_Export. * ace/config-win32-borland.h: * ace/config-win32-common.h: Removed ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro. This macro isn't used anywhere in ACE or TAO. * ace/Makefile: Updated dependencies. * bin/am_edit: This script is generates IDL source file targets and dependencies in Makefile.in files. It is essentially the same script that the KDE developers use for their IDL sources except that it is has been customised for TAO_IDL generated sources. Thanks to Stephan Kulow for pointing out the availability of this script. * bin/make_release: Archive list should be concatenated instead replaced. This list is currently only used by the MD5 checksum generation support. * bin/generate_html_windex: Created this script to generate the acewindex.html file. It generates the acewindex.html directly from the man pages instead of an intermediate windex file. Some platforms don't have a "catman -w" equivalent command since the man database is generated automatically by the OS (e.g. Debian GNU/Linux). This script allows the acewindex.html file to be generated on such platforms. The windex file (not acewindex.html) isn't generated but this typically isn't a problem since it is not the ACE install system's responsibility to (re)generate a windex file at install time. It is up to the sysadmin to do so. Thanks to Kevin Dalley for motivating the creation of this script. * bin/bootstrap: The list of ROFF and HTML man pages is now automatically generated and inserted into the appropriate Makefile.am file in this script. This allows the removal of the non-portable "$(shell ...)" expression from the Makefile.am files. It also improves build performance in the man directories since the list is only evaluate at bootstrap time instead of each time the directory is built. * man/Makefile.am (acewindex.html): Use the newly created `generate_html_windex' script to create the acewindex.html file since not all platforms support "catman -w" windex file generation. * man/html/Makefile.am (html_DATA): * man/man3/Makefile.am (man_MANS): Removed the commands that generate the man pages lists. The `bootstrap' script now takes care of substituting what each of the Makefile.am variables should contain. * m4/acinclude.m4: Improved ACE_USE_TEMP_FILE macro. It now checks for the existence of a file with the same name as the temporary file in the current directory, in addition to the top-level source directory. Moved the setrlimit and getrusage enum tests into Autoconf macros in this file. The macros are ACE_CHECK_SETRLIMIT_ENUM and ACE_CHECK_GETRUSAGE_ENUM. Fixed AC_SYS_RESTARTABLE_SYSCALLS and added it to this file. The patched version compiles and runs, whereas the existing/old version doesn't even compile on some platforms. The AC_SYS_RESTARTABLE_SYSCALLS test is broken in GNU Autoconf 2.13. I use this test to determine if the ACE_HAS_SIGNAL_SAFE_OS_CALLS macro should be defined for ACE. I patched it so that it works, at least platforms that expect a signal handler that expects an int argument. * m4/subsets.m4: Disable building of all subset libraries by default. Sun Nov 28 09:45:36 1999 Darrell Brunsch * netsvcs/lib/Logging_Strategy.cpp: ACE_Logging_Strategy::fini () now returns a value. Sun Nov 28 02:41:02 1999 Nanbor Wang * tests/Reactor_Notify_Test.cpp (run_test): Only print out the error message when the notification pipe is not disable. Otherwise, when the notification pipe gets disabled, the event loop depends purely on the OS scheduling policy to determine how many times to gets to run. Since the Supplier_Task removes itself from the reactor, there could be no active event handler available in the reactor when the gets called if the task finishes before the event loop has a chance to finish its iterations. Another way to solve this is to add a thr_yield after every notification but that seems to defeat the intention of the test. Thanks to Ivan Murphy for reporting the false error output. Sat Nov 27 22:06:26 1999 Nanbor Wang * ace/OS.cpp: Defined ACE_ENDTHREADEX and ACE_BEGINTHREADEX to use ExitThread and BeginThread for WinCE 2.11 and above. Thanks to Peter C. Chien for the tip. * ace/ace_ce_dll.dsp: Reworked for WinCE 2.11. More configurations are added and the distributed token related files are removed from the project. * ace/OS.{h,cpp}: WinCE 2.11 and above does implement exit method so we don't need to provide our own for them. * ace/config-WinCE.h: Updated configuration settings for WinCE 2.11. * ace/Memory_Pool.{h,i}: Added the method for accessing the base address information of the memory pool. Sat Nov 27 18:36:48 1999 Douglas C. Schmidt * tests/Priority_Buffer_Test.cpp (consumer): Revised the test so that it doesn't bother to check the priority in the ACE_ASSERT macro if we're sending a shutdown message. Thanks to Ivan Murphy and Darrell Brunsch for narrowing this down. Thu Nov 25 13:32:00 1999 Douglas C. Schmidt * netsvcs/lib/Client_Logging_Handler.cpp (parse_args): Make sure to free() the host or logger key before calling strdup()! * netsvcs/lib/Logging_Strategy.cpp (parse_args): Fixed up this code so that we correctly allocated and deallocate filename_ using strdup()/free() to prevent weird memory problems. Thanks to Alexander Dergatch for reporting this. Sat Nov 27 15:01:44 1999 Carlos O'Ryan * ACE version 5.0.9 released. Sat Nov 27 14:59:27 1999 Carlos O'Ryan * bin/make_release: There was a non-scoped variable. Thu Nov 25 13:24:37 1999 Darrell Brunsch * tests/Capabilities_Test.cpp: Changed a variable from int to ACE_HANDLE. Thu Nov 25 02:17:34 1999 Nanbor Wang * ace/Malloc.h: Added back some apparent bug fixes during the alignment change. Thu Nov 25 01:41:33 1999 Nanbor Wang * ace/Malloc.h: Removed the alignment change for now. Wed Nov 24 14:41:14 1999 Nanbor Wang * ace/Process.i (wait): Changed to use the process handle to wait for process termination. * ace/OS.h: * ace/OS.i (wait,waitpid): Added an extra argument that takes the process handle of the waited process. On Win32, is ignored if the is not equal to 0. Passing the process is prefer on Win32 because using to wait on the project doesn't always work correctly if the waited process has already terminated. Wed Nov 24 08:30:52 1999 Douglas C. Schmidt * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Fixed the AMS macro to be ACE_MALLOC_STATS. Thanks to David Levine for reporting this. Tue Nov 23 12:47:39 1999 Douglas C. Schmidt * ace/Malloc.h: Modified the definition and use of ACE_MALLOC_PADDING_SIZE so that it works correctly and the code that uses it compiles... Thanks to Alexander Belopolsky for reporting this. * ace/Malloc: Replaced the AMS macro, which polluted the global namespace, with ACE_MALLOC_STATS, which doesn't... Thanks to Alexander Belopolsky for reporting this. * ace/OS.h: Modified ACE_MIN macro so that it uses the > operator to be consistent with the ACE_MAX macro. Thanks to Derek Dominish for reporting this. * tests/Malloc_Test: Updated the Malloc_Test so that it'll allocate and test doubles to make sure they work correctly. * ace/Malloc.h: Modified the alignment logic to make things work properly for datatypes like doubles. Thanks to Alexander Belopolsky for working this out. Tue Nov 23 12:02:53 1999 Douglas C. Schmidt * ace/OS.i: Moved the inline methods for sec()/usec()/msec() so that are defined *before* they are used... Tue Nov 23 11:34:40 1999 Nanbor Wang * tests/Malloc_Test.cpp (myallocator): Applied ACE_TEXT to several malloc argument. Thanks to Ivan Murphy for reporting this. Tue Nov 23 11:06:13 1999 Nanbor Wang * tests/CDR_File_Test.cpp (run_test): Changed to LPCTSTR so the test compile with UNICODE. Thanks to Ivan Murphy for reporting this. Mon Nov 22 18:02:19 1999 Irfan Pyarali * ace/Strategies_T.cpp: * ace/Cached_Connect_Strategy_T.cpp: There was a strange interaction in find_or_create_svc_handler_i() because of these two changes: Fri Nov 12 00:30:41 1999 Irfan Pyarali and Mon Jul 19 22:46:54 1999 Irfan Pyarali Basically, was assigned to the newly created svc_handler. It had, however, not been added to the connection map nor had it been assigned a hint or recycler, i.e., it was partially initialized. However, we let go of the connector lock during the OS level connect call, hence exposing the partially initialized svc_handler to other threads. The solution is to use a temporary variable until the svc_handler is completely initialized. After this we can assign to . Note that making a new svc_handler, connecting remotely, binding to the map, and assigning of the hint and recycler should be atomic to the outside world. Mon Nov 22 17:06:34 1999 Darrell Brunsch * bin/auto_compile_win32.pl: Changed the project file for ImplRepo_Service. Thanks to Derek Dominish for pointing this out. Mon Nov 22 14:15:23 1999 Douglas C. Schmidt * examples/Configuration/config_test.cpp: ACE-ified this example. * ace/OS.i: Replaced all the uses of ACE_Time_Value private methods within the overloaded global relational operator to use inline methods. This change should work around bugs with MSVC++. Thanks to Alok Gupta for reporting this. * ace/Service_Config.cpp (parse_args): Reverted the behavior of parse_args() so that it doesn't return an error when it runs across an option that it doesn't recognize. This is necessary to support certain use-cases where the Service Configurator is part of an application-specific configuration process. We do, however, print a warning message if ACE::debug() > 0. Thanks to Ivan Murphy for reporting this and suggesting a fix. Sat Nov 20 10:16:07 1999 Douglas C. Schmidt * ace/Configuration.cpp: Moved DEFBUFSIZE into the Win32-specific part of the code and changed the name to ACE_DEFAULT_BUFSIZE so that it won't conflict with any global names. Thanks to David Levine for reporting this. Fri Nov 19 17:25:13 1999 Douglas C. Schmidt * ace: Double checked that ACE builds correctly when threads are disabled. * ace/Local_Tokens.cpp (client_id): Had to futz with the code a bit to get it to work for both the threaded and non-threaded case. * ace/Activation_Queue.h: Added a #define of ACE_Activation_List to ACE_Activation_Queue to be compatible with the terminology used in the POSA2 book! * ace/Message_Queue_T: Moved message_bytes(size_t) and message_length(size_t) from the *.i file to the *.cpp file to workaround bugs with SunC++ 5.0. Thanks to Rick Weisner and John Tucker for reporting this problem and providing the fix. * ace/Configuration.cpp: There were inconsistencies in the explicit template instantiations where ACE_Thread_Mutex should have been ACE_SYNCH_MUTEX so that the code will work when threading is disabled. In addition, we must be careful to conditionally compile certain ACE_Allocator<> and ACE_Malloc<> template instantiations since they are only valid when ACE_HAS_THREADS is defined. * include/makeinclude/platform_irix6.x_sgic++.GNU, * ace/Local_Tokens, * ace/Synch_T.i: Made a number of minor changes so that ACE will compile/work when threading is not enabled. Thanks to Extern Chatterji for reporting this. * ace/Message_Block.h: Clarified the comment for space(). Thanks to Eric Newton for reporting this. Fri Nov 19 02:21:11 1999 Darrell Brunsch * ace/Configuration.h: * ace/Configuration.cpp: Altered the Unicode macros used so it compiles in the two Unicode configurations. Thanks to Ruibiao Qiu for noticing this. Thu Nov 18 22:49:09 1999 David L. Levine * tests/run_tests.lst: DISABLED Process_Manager_Test because it fails on Solaris and HPUX_aCC. Thu Nov 18 20:47:49 1999 Krishnakumar Elakkara Pathayapura * THANKS: added Marcelo Matus Thu Nov 18 19:44:04 1999 David L. Levine * ace/OS.i (ACE_TSS_Emulation::tss_base,ts_object): on VxWorks, if ACE_VXWORKS_SPARE is 0, allocate a TSS array (and zero it out) in tss_object () instead of tss_base (). This allow tss_base () to still be used on the left-hand side. The only way that tss_base () should be called on VxWorks with 0 ACE_VXWORKS_SPARE is through ts_object (). Thanks to Dave Steele and Dale Wood for further discussion and insight. Thu Nov 18 19:20:16 1999 Ossama Othman * ace/OS.h (SEM_FAILED): Changed SEM_FAILED from ((sem_t *) 0) to ((sem_t *) -1). Although it makes more sense to have a zero fail value, it appears that many OSes are still brain damaged enough to use -1 instead. This change is consistent with what ACE expected as the sem_open() fail value prior to my updates. Thu Nov 18 16:37:55 1999 Ossama Othman * ace/OS.h: If a platform has named POSIX semaphores, define SEM_FAILED if it isn't already defined. * ace/OS.i (sema_init): Cast MAP_FAILED to (sem_t *) when comparing to sem_t pointer. Check sem_open() failure against SEM_FAILED macro instead of ((sem_t *) -1) since sem_open() in some named POSIX semaphore implementations returns ((sem_t *) 0) on failure (e.g. glibc 2.1.x on Linux). Thu Nov 18 08:19:39 1999 Douglas C. Schmidt * ace/SOCK_Dgram_Bcast.cpp: Some systems seem to generate 0 (AF_UNDEF) for the sa_family, even when there are no errors! Thus, we only print an error if this is not the case, or if we're in "debugging" mode. Thanks to Extern Chatterji for reporting this. Thu Nov 18 12:08:20 1999 Balachandran Natarajan * ace/Configuration.cpp: Added missing template instantiations for SunCC5.0 Thu Nov 18 11:49:39 1999 Ossama Othman * bin/make_release: Added MD5 checksum generation support. Each ACE/TAO archive will now have an associated file that contains its MD5 checksum. [Bug 48] Thu Nov 18 08:19:39 1999 Douglas C. Schmidt * ace/Log_Msg.cpp: Added a new flag to win32 FormatMessage call, which removes unneccessary newlines in resulting message. So whole logged message fits on one line and logs are then nicer and easier to parse. Thanks to Martin Krumpolec for contributing this. Wed Nov 17 22:45:01 1999 David L. Levine * ace/OS.i (ACE_TSS_Emulation::tss_base): on VxWorks, if ACE_VXWORKS_SPARE is 0, allocate a TSS array. This can happen if the task wasn't spawned through ACE, but then tries to use ACE's TSS emulation. Thanks to Dave Steele for the excellent detective work and patch. * ace/config-vxworks5.x.h: added ACE_VXWORKS_SPARE, defaulted to spare4. Wed Nov 17 17:36:25 1999 Steve Huston * ace/config-hpux-11.x-hpc++.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE for aC++. This is a known bug by HP, at least at aC++ A.03.10. Wed Nov 17 16:33:40 1999 Ossama Othman * ace/Makefile.am: Added Auto_IncDec_T.*, Capabilities.* and Configuration.* to list of sources. * tests/Makefile.am: Added Auto_IncDec_Test, Capabilities_Test and Process_Manager_Test to list of tests. * tests/Capabilities_Test.cpp: Create the config file within the test itself instead of having a seperate config file. This makes the test self-contained, and also allows the test to be run in a build environment where the sources are in a different directory from the binaries (e.g. a "VPATH" build). This change was motivated by a problem that occurred in an ACE+autoconf VPATH build. * tests/Capabilities_Test.cfg: Removed this file. It is now created at run-time by the Capablities_Test itself. Wed Nov 17 13:45:25 1999 Ossama Othman * acconfig.h: * configure.in: * ace/OS.h: * ace/OS.i: Added support for two additional macros, namely ACE_HAS_LSEEK64 and ACE_LACKS_LLSEEK_PROTOTYPE. This make it easier to customize llseek support for a given platform. * ace/config-linux-common.h: Define ACE_HAS_LSEEK64 and ACE_LACKS_LSEEK64_PROTOTYPE for glibc 2.1.x, and define ACE_HAS_LLSEEK and ACE_LACKS_LLSEEK_PROTOTYPE for glibc 2.0.x. [Bug 375] Wed Nov 17 07:36:04 1999 Douglas C. Schmidt * tests: Removed the Cache_Manager_Test.cpp since Cache_Manager.* is no longer in ACE. Thanks to Airat A. Sadreev for reporting this. * netsvcs/lib/Client_Logging_Handler.cpp (fini): Added a void * cast to the arguments to ACE_OS::free(). Thanks to David Levine for reporting this. Tue Nov 16 07:58:11 1999 Douglas C. Schmidt * netsvcs/lib/Client_Logging_Handler.cpp (fini): Make sure to dynamically allocate the logger_key_ and server_host_ so that we don't end up with weird memory problems. Thanks to Alexander Dergatch for reporting this. * ace/config-irix6.x-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE to keep Irix compilers from complaining! Thanks to David for reporting this. Mon Nov 15 20:44:04 1999 Douglas C. Schmidt * ace/OS.cpp (inherit_log_msg): Added a comment explaining why we don't inherit the callback when a new thread is created - since all hell would break loose otherwise if it came off the stack! Thanks to Sangwoo Jin for motivating this clarification. Mon Nov 15 19:54:36 1999 Ossama Othman * ace-config.in: Added missing "-lACE" to the library list. Thanks to Benedikt Eric Heinen for pointing this out. Mon Nov 15 13:28:03 1999 Luther J Baker * ace/Log_Msg.cpp (priority_mask_): Added delete_ostream_(0) to ctor. Mon Nov 15 09:33:49 1999 Douglas C. Schmidt * ace/Synch.h (ACE_Mutex): changed protected: to public: in ACE_Mutex so that certain compilers would be happy. Thanks to Ivan Murphy for reporting this. * ace/Configuration.h (ACE_Configuration_Section_Key): The reserved word "operator" has a typo and is typed as "Operator". Thanks to Andy Gokhale for reporting this. Sun Nov 14 20:20:13 1999 Douglas C. Schmidt * ace/Configuration.h: Improved the ACE-ification of this file. Sun Nov 14 18:13:37 1999 Ossama Othman * ACE-configuration.txt: Updated with information about bootstrapping autoconf support in ACE since it is currently not enabled by default in ACE. * configure.in: User must now specify the "--enable-maintainer-mode" configure script option in order to be able to use the configure script. If an attempt is made to run the configure script with this option, the configure script will immediately exit with a summary that states that ACE stock build procedure should be used until autoconf support is fully integrated into ACE. Once autoconf support is fully integrated into ACE, this requirement will be removed. Sun Nov 14 15:22:29 1999 Darrell Brunsch * ace/Configuration.cpp: Fixed a statement unreachable in expand_path (). Sat Nov 13 19:55:17 1999 Luther J Baker * ace/SString.cpp (next): Removed a buggy line for Tokenizer. Thanks to Sangwoo Jin for reporting this. Sat Nov 13 18:38:21 1999 Darrell Brunsch * ace/Configuration.cpp: Fixed some compiler problems with the ACE_Malloc template instantiations and pointer casting. Sat Nov 13 11:29:20 1999 Douglas C. Schmidt * tests/run_tests.lst: Re-enabled the Process_Manager_Test to see if it Dave Madden's fixes worked. Fri Nov 12 21:26:58 1999 David L. Levine * ace/OS.h: without threads, added #ifndef protection for all of the THR_* macros that didn't already have it. And, with ACE_HAS_PRIOCNTL on sun, #include before #including sys/rtpriocntl.h. That ensures that the THR_* macros are defined first by the system header file. Thanks to Timothy Canham for reporting this. Also, changed a couple of #includes to "ace/sys_conf.h", because that file is not a system header. Fri Nov 12 00:30:41 1999 Irfan Pyarali * ace/Connector.cpp (connect_i): Since we should change only in the confines on the connector lock, it is not proper to use the copy of and assign it to when the connect succeeds. The removal of should not change the algorithm (famous last words ;) since not really be considered in the case of failures. * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy): * ace/Cached_Connect_Strategy_T.cpp: If the new connection fails, close out the svc_handler and set it to zero. Also in cleanup_hint_i(), reset the <*act_holder> in the confines and protection of the lock. * ace/Svc_Handler.cpp (cleanup_hint): Expanded the interface to allow the resetting of the in an atomic manner wrt the lock of the connector. The above changes should fix BUG 310. Thanks to Eric Mitchell for reporting it. Fri Nov 12 12:13:29 1999 Steve Huston * ace/config-aix-4.x.h: Made _BSD_INCLUDES and ACE_HAS_CHARPTR_DL be defined only for pre-AIX 4.3. Thanks to Greg Siebers for these changes. Set ACE_LACKS_PLACEMENT_OPERATOR_DELETE for IBM C++ 3.6 and prior. Fri Nov 12 11:50:19 1999 Nanbor Wang * ACE-INSTALL.html: Added ACE lib/dll naming rules. Fri Nov 12 10:02:10 1999 Douglas C. Schmidt * ace/config-win32-common.h, * ace/config-win32.h: Fixed inconsistent use of <> and "" for ACE-specific #includes. Thanks to Dave Delano for reporting this. Fri Nov 12 08:25:25 1999 David L. Levine * ace/Log_Msg.cpp (open,log,dump): ensure that there is a message_queue_ by calling get_lock () in multithreaded applications. This solves the problem where the first thread that uses a Log_Msg terminates before any other threads create a Log_Msg instance. Thanks to Mike Mazurek for reporting this. Thu Nov 11 20:46:29 1999 Ossama Othman * examples/Configuration/Makefile: Added a Makefile for this example. * examples/Configuration/config_test.cpp: ACEified this example, and corrected several errors and warnings. Thu Nov 11 20:28:44 1999 Carlos O'Ryan * ace/Local_Tokens.cpp: * ace/OS.cpp: Removed gcc-2.95 warnings about mismatch format and arguments, the warning only shows up under gcc-2.95 for alphas. We use to print the addresses which produces correct results in all the platforms we have access to. Thanks to Cristian Ferretti for pointing this out. Thu Nov 11 19:55:52 1999 Darrell Brunsch * ace/Configuration.h: * ace/Configuration.cpp: * examples/Configuration/config_test.cpp: MSVC doesn't like _export and _import so changed them to export_config and import_config. Thu Nov 11 18:41:24 1999 Ossama Othman * ace/Configuration.h: * ace/Configuration.cpp: "path_" variable was allocated with strdup(), but deallocated with delete(). free() should be used instead. Added missing class members to member initializer lists. Changed name of export() to _export(). "export" is a C++ keyword, and shouldn't be used as function name. The import() method was changed to _import() for sake of being consistent. Removed duplicate template instantiations. Thu Nov 11 17:09:19 1999 Darrell Brunsch * ace/Configuration.h: * ace/Configuration.cpp: ACE-ified the code. Also fixed miscellaneous compiler warnings and put in template specialization code. Thu Nov 11 12:10:40 1999 Douglas C. Schmidt * ace/Process_Manager.cpp, ace/Process.cpp: It looks like the thread that's going to use the Process_Manager object must do a setpgid (0, 0) in order to establish a process group for its children. Apparently, when you run the test program from the command line, the shell sets the process up in a group of its own, but when you run it from the test script, it's a member of the script's group. In the latter case, when you spawn a child process, you can't add it to your own group (because your group doesn't exist!). Thanks to Dave Madden for contributing this fix. Thu Nov 11 01:54:55 1999 Luther J Baker * ace/Log_Msg.h (msg_ostream): * ace/Log_Msg.cpp (msg_ostream): * ace/Log_Msg.cpp (~ACE_Log_Msg): Added a member to flag whether or not Log_Msg object assumes responsibility for destroying its ostream_*. Wed Nov 10 23:29:25 1999 Darrell Brunsch * ace/Configuration.cpp: * ace/Configuration.h: * ace/Configuration.i: * examples/Configuration/Configuration.dsw: * examples/Configuration/Test.dsp: * examples/Configuration/config_test.cpp: Added the ACE Configuration class files. Thanks to Chris Hafey for submitting them. * ace/ace_dll.dsp: * ace/ace_lib.dsp: * ace/Makefile: * examples/Configuration/Makefile: Added the Configuration files to the projects and Makefiles. * ace/config-win32.h: MSVC only supports operator placement delete as of version 6. Wed Nov 10 22:12:32 1999 Ossama Othman * configure.in: Enabled the CVS directory check so that ACE's stock Makefiles won't get inadvertently clobbered by developers who want to experiment with the configure script. * m4/acinclude.m4: Made CVS directory check more verbose. It now provides an example of how to avoid the error it detects, i.e. it provides an example that demonstrates to do a build without affecting the source. * Makefile.in: * ace/Makefile.in: * ace/config.h.in: * apps/gperf/src/Makefile.in: * apps/gperf/Makefile.in: * apps/Makefile.in: * netsvcs/clients/Logger/Makefile.in: * netsvcs/clients/Naming/Client/Makefile.in: * netsvcs/clients/Naming/Dump_Restore/Makefile.in: * netsvcs/clients/Naming/Makefile.in: * netsvcs/clients/Tokens/collection/Makefile.in: * netsvcs/clients/Tokens/deadlock/Makefile.in: * netsvcs/clients/Tokens/invariant/Makefile.in: * netsvcs/clients/Tokens/manual/Makefile.in: * netsvcs/clients/Tokens/mutex/Makefile.in: * netsvcs/clients/Tokens/rw_lock/Makefile.in: * netsvcs/clients/Tokens/Makefile.in: * netsvcs/clients/Makefile.in: * netsvcs/lib/Makefile.in: * netsvcs/servers/Makefile.in: * netsvcs/Makefile.in: * man/html/Makefile.in: * man/man3/Makefile.in: * man/Makefile.in: * tests/Makefile.in: Added these files so that developers who don't have GNU Autoconf, Automake and Libtool can run the configure script and attempt builds to provide feedback to us. Wed Nov 10 21:35:47 1999 Ossama Othman * m4/compiler.m4: Added some default flags for compilers on IRIX. * m4/threads.m4: Added more thread library checks in an effort to figure out if a thread library really is needed, in the case that the initial check for pthread_create succeeds without the need of a thread library. Such a problem occurred on IRIX. This modification should correct the problem. Wed Nov 10 10:55:34 1999 Ossama Othman * ace/OS.i (memset, thr_self, thr_getspecific): Commented the ACE_TRACE statements. On some compiler/platform combinations these methods get called before the Object Manager is initialized, which causes the ACE_TRACE call to seg fault when tracing is enabled in ACE. Tue Nov 9 17:50:01 1999 Darrell Brunsch * ace/config-hpux-10.x-hpc++.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE since it doesn't seem to be supported on aCC. Tue Nov 9 15:47:10 1999 Ossama Othman * ace/XtReactor.cpp (TimerCallbackProc): Fixed "unused argument" warning. Tue Nov 9 14:57:51 1999 Ossama Othman * configure.in: Minor comment updates. * m4/features.m4: Fixed asynchronous IO tests. The tests now properly detect working asynchronous IO on Linux, for example. Force asynchronous IO tests to be performed after the thread detection tests in case the real time functions depend on the thread library. Tue Nov 9 10:11:22 1999 Douglas C. Schmidt * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE for the GCC 2.8 and earlier family of compilers since they don't seem to support this feature. Mon Nov 8 09:41:34 1999 Douglas C. Schmidt * ace/Svc_Handler.cpp: Removed the unused parameter `n'. Thanks to David Levine for reporting this. Mon Nov 8 16:34:27 1999 Ossama Othman * acconfig.h: * configure.in: Added autoconf support/tests for the following ACE macros: ACE_HAS_STRPTIME ACE_LACKS_NATIVE_STRPTIME ACE_LACKS_PLACEMENT_OPERATOR_NEW ACE_LACKS_PLACEMENT_OPERATOR_DELETE Mon Nov 8 09:41:34 1999 Douglas C. Schmidt * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_NEW for older versions of G++. Thanks to David Levine for reporting this. * ace/config-sunos5.5.h: Added a #define for ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle problems with SunC++ 4.2. * ace/Svc_Handler: Not all C++ compilers support placement operator delete, so we need to #ifdef for it. Thanks to Andy Gokhale for reporting this. Sun Nov 07 23:36:51 1999 Nanbor Wang * tests/run_tests.bat: * tests/tests.dsw: * tests/Auto_IncDec.dsp: * tests/version_tests/version_tests.dsw: * tests/version_tests/Auto_IncDec_Test.dsp: Added Auto_IncDec_Test for MSVC workspaces. Sun Nov 7 12:03:31 1999 Douglas C. Schmidt * ace/Svc_Handler: Added two new placement operator new() and delete() operations so that it is possible to allocate an ACE_Svc_Handler from a custom allocator. Thanks to Edan Ayal for contributing this. * tests/run_tests.lst: Added Auto_IncDec_Test to the tests. * ace/Makefile, tests/Makefile: Added the new Auto_IncDec* stuff to the makefiles. * ace: Added Auto_IncDec_T.{h,i,cpp} to the ACE release. This class automatically increments and decrements a parameterized counter. Thanks to Edan Ayal for contributing this. * tests/Auto_IncDec_Test.cpp: Added a test for the ACE_Auto_IncDec class. Thanks to Edan Ayal for contributing this. Fri Nov 05 14:26:38 1999 Jim Buck * ace/OS.cpp (ACE_Time_Value::set): fixed calculation of microsecond part. This change restores the correct pre-ACE 5.0 behavior. Fri Nov 5 07:58:14 1999 Douglas C. Schmidt * ace/Memory_Pool.i: Fixed stupid typos in Memory_Pool.i. Thanks to Jeff Parsons for reporting this. * ace/Memory_Pool.i: Default arguments shouldn't be in the *.i signatures. Thanks to Andy Gokhale for reporting this. Thu Nov 4 08:36:34 1999 Douglas C. Schmidt * ace/Memory_Pool: Moved the sync() and protect() methods from ACE_Pagefile_Memory_Pool into the *.i file and made their parameter names anonymous since these methods are no-ops. Thanks to Martin Krumpolec for suggesting this. * include/makeinclude/compiler.bor: Changed MISC_CFLAGS to -a8 -b- -Ve -Vx. Thanks to Jody Hagins for this suggestion. Thu Nov 04 15:19:54 1999 David L. Levine * ACE version 5.0.8 released. Thu Nov 04 08:16:25 1999 David L. Levine * config-linux-common.h: only enabled ACE_HAS_SIGTIMEDWAIT with glibc. RedHat 5.2 doesn't have sigtimedwait. Mon Nov 01 14:29:04 1999 David L. Levine * ace/Filecache.cpp,Capabilities.cpp,Makefile: moved ACE_Hash and ACE_Equal_To explicit instantiations from Filecache.cpp to Capabilities.cpp, because it needs them and is used with FOR_TAO. Mon Nov 01 15:05:44 1999 Steve Huston * THANKS: Added Greg Siebers Mon Nov 01 15:02:31 1999 Steve Huston * ace/config-aix-4.x.h: Added definition of ACE_LD_SEARCH_PATH. Thanks to Greg Siebers for this fix. Mon Nov 01 10:11:36 1999 David L. Levine * ace/Capabilities.{i,cpp}: unlined definition of ~ACE_CapEntry. It caused an internal compiler error with g++ 2.7.2.3, and it is a good idea to not inline it because it's virtual. Also, prepended ACE_ to enum values. Sun Oct 31 22:46:17 1999 David L. Levine * tests/Capabilities_Test.cpp (main): removed declarations of unused argc and argv arguments. Sun Oct 31 16:39:53 1999 Darrell Brunsch * ace/Capabilities.cpp: Added ACE_BUILD_DLL so the class is properly exported on NT. * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added Capabilities files to MSVC projects. * tests/Capabilities_Test.cpp: Was loading the wrong file, changed to loading Capabilites_Test.cfg instead of captest.cfg. * tests/Capabilities_Test.dsp: * tests/version_tests/Capabilities_Test.dsp: * tests/tests.dsw: Added Capabilities_Test project files. * tests/run_tests.bat: Added Capabilities_Test to the list of tests. Sun Oct 31 15:29:08 1999 Douglas C. Schmidt * ace/Capabilities.cpp: Cleaned up some of the explicit template instantiations so they will work on all platforms. Thanks to Bala for pointing this out. * ace/Makefile, * tests/run_tests.lst, tests/Makefile (BIN): Added an entry for the new ACE_Capabilities classes. Fri Oct 29 21:09:49 1999 Ossama Othman * man/html/Makefile.am: For some reason Automake couldn't automatically copy the HTML man pages to the distribution directory when doing a `make dist' so do it manually. Fri Oct 29 19:53:59 1999 Ossama Othman * Makefile.am (EXTRA_DIST): Removed ACE.DSW from the distribution list. * configure.in: Removed test for necessity of _GNU_SOURCE macro. All uses and need of that feature test macro have been removed from ACE. If a thread library was detected, define _REENTRANT in the command line, not the generated config.h header. The user can use the ace-config script to determine what other flags are needed to compile ACE. Check for sched_yield in the librt library, if it exists, in addition to the others listed. Solaris 7 moves sched_yield from the libposix4 library to librt. Added libsocket to list of libraries to search for getservbyname(). If check for socket() results in unresolved symbols, add `-lnsl' to library search. Improved ACE_HAS_PTHREAD_PROCESS_ENUM test. Added checks for getpgid, strtok_r, strptime and lseek64 prototypes. The old getpgid test is superceded by a new one. A prototype is declared if the checks determine that certain feature test macros are needed to enable them. Added man directory Makefiles to list of files to generate. * ace-config.in: Minor updates. Modified so that "ace" is the default library if one isn't specified. * ace-config.1.in: Minor updates. * ace/config-linux-common.h: * ace/OS.h: Moved all prototypes to OS.h. Only macros should be defined config headers. Each of the moved prototypes are enabled by using the following newly added macros: ACE_LACKS_GETPGID_PROTOTYPE ACE_LACKS_STRPTIME_PROTOTYPE ACE_LACKS_STRTOK_R_PROTOTYPE ACE_LACKS_LSEEK64_PROTOTYPE All prototypes in ace/OS.h should come after the inclusion of ace/Basic_Types.h since the prototypes may need types that are only available after that inclusion. Also added a ACE_LACKS_PREAD_PROTOTYPE that is used to enable make both pread() and pwrite() protypes. Recent glibc libraries have pread() and pwrite() but only enable the prototypes if _XOPEN_SOURCE=500 is defined (Single Unix specification). Now define ACE_HAS_P_READ_WRITE and ACE_LACKS_PREAD_PROTOTYPE on Linux. * bin/bootstrap: Added ACE man page generation. Generating the man pages during the bootstrapping process allows the man page list in man/man3/Makefile.am to be generated by a shell command instead of having to explicitly specify each man page in that Makefile. The man pages will only be generated if the ACE.3 man page doesn't exist. That man page should be representative of the existence of the rest of the man pages. * man/Makefile.am: * man/html/Makefile.am: * man/man3/Makefile.am: Added Automake input files for the ACE man pages. The man pages will now be installed during a `make install'. This is an ACE Configuration Project specific enhancement. ACE's current man page scheme is unchanged, and doesn't support this feature. * m4/features.m4: Delete test_aio.log when the test is done. Fri Oct 29 17:01:58 1999 Kirthika Parameswaran * ace/OS.h: Added ACE_DEFAULT_SHLIB_MODE for KCC. Since this mode wasnt right the DLL_Test failed when compiled using the KAI compiler. This change fixes this problem too. Thanks to Nanbor and Michael Kircher for helping me on this task. Fri Oct 29 07:08:16 1999 David L. Levine * include/makeinclude/rules.local.GNU, include/makeinclude/wrapper_macros.GNU include/makeinclude/platform_vxworks5.x_g++.GNU: fixed typo: COMSPEC instead of COMPSPEC. Thu Oct 28 11:15:43 1999 Nanbor Wang * docs/ACE-guidelines.html: Added a new guideline on avoiding multicharacter format specifiers in ACE_DEBUG/ACE_ERROR. Thu Oct 28 10:54:42 1999 Nanbor Wang * ace/Message_Block.cpp: * ace/Name_Request_Reply.cpp: * ace/Time_Request_Reply.cpp: * ace/Token_Request_Reply.cpp: Replaced the use of %ld or %lu with %d or %u in ACE_DEBUG/ACE_ERROR. * ace/config-kcc-common.h: Undefined ACE_HAS_NONSTATIC_OBJECT_MANAGER. Thanks to Russ Noseworthy for noticing this. Thu Oct 28 10:49:51 1999 Darrell Brunsch * ACE.dsw: This is an internal file that I last updated in 1997 (I don't think it ever got included in the releases). Being out of date and not used, I removed it. Thu Oct 28 09:31:19 1999 David L. Levine * tests/SOCK_Send_Recv_Test.cpp (client): if len is not 255, print out its value. Thu Oct 28 09:27:47 1999 David L. Levine * include/makeinclude/rules.local.GNU, include/makeinclude/wrapper_macros.GNU include/makeinclude/platform_vxworks5.x_g++.GNU: support ComSpec as well as COMSPEC environment variable (on Windows). Thanks to Tom Venturella for reporting that ComSpec was defined on the system that he was using. Wed Oct 27 20:31:22 1999 Luther J Baker * ace/Arg_Shifter.h (ACE_Arg_Shifter): Spelling errors. Wed Oct 27 16:45:56 1999 David L. Levine * ace/OS.cpp (ACE_Thread_Adapter::invoke): use an ACE_reinterpret_cast instead of an ACE_static_cast to cast func (of type ACE_THR_FUNC_INTERNAL) to ACE_THR_FUNC. Thanks to Tom Venturella for reporting that the static_cast didn't compile on Tornado II. Wed Oct 27 16:40:07 1999 David L. Levine * ace/OS.h,ACE.h: added newline before ACE_CLASS_IS_NAMESPACE. This might solve the problem with the ACE_OS man page generation failure. Thanks to Samuel Stickland for reporting this problem. Wed Oct 27 12:53:15 1999 Nanbor Wang * ace/Object_Manager.h: * ace/config-win32.h: The instructions on how to disable the use of nonstatic object manager were not consistent for NT and other platforms. Thanks to Russ Noseworthy for reporting this. Wed Oct 27 09:48:41 1999 David L. Levine * include/makeinclude/wrapper_macros.GNU: changed check for whether exceptions are enabled from ifndef exceptions to ifeq ($(exceptions),). That allows use of exceptions=0. Thanks to Phil Mesnier for reporting this. Wed Oct 27 09:46:05 1999 David L. Levine * include/makeinclude/platform_qnx_neutrino.GNU: removed -Winline, because it was complaining about operator<< in generated code. Wed Oct 27 08:32:47 1999 Douglas C. Schmidt * ace/OS.i (timezone): Added an ACE_UNUSED_ARG to please KCC. Thanks to Dave Madden for reporting this. Tue Oct 26 14:56:15 1999 Balachandran Natarajan * ace/FlReactor.cpp (reset_timer_interval): Fixed a compile error with Sun_Egcs. Thanks to Thomas Groth for reporting this problem & also for giving a fix. Sat Oct 23 19:11:51 1999 Nanbor Wang * ACE version 5.0.7 released. Fri Oct 22 16:58:44 1999 Darrell Brunsch * ace/Dynamic_Service.h: Added an include for OS.h so the Dynamic_Service.cpp will always get included on platforms that need it (ie. win32). Thanks to Paulo Breda Vieira for spotting this problem in the AV Streaming code on NT. Thu Oct 21 20:21:13 1999 Douglas C. Schmidt * ace/Memory_Pool.cpp (map_file): Make sure to update the base_addr_ with the new mem_map_.addr() before the call to update the ACE based pointer. Thanks to Damien Dufour for reporting this. Thu Oct 21 17:10:17 1999 Vishal Kachroo * ace/OS.i (ioctl): Corrected the implementation of ACE_OS::ioctl () call with ACE_SIO_GET_QOS io control code. Thanks to Vidya Narayanan for reporting this. * ACE_wrappers/examples/QOS/server.cpp: * ACE_wrappers/examples/QOS/client.cpp: * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp: * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp: Changed the QOS example to GET-QOS only on receipt of a QoS event. Also tested the changes made to the ioctl (GET_QOS) in OS.i. Thu Oct 21 15:46:08 1999 David L. Levine * tests/run_tests.lst: disabled Process_Manager_Test, for now, because it asserts on Solaris, Irix, Linux, and HP/UX. Wed Oct 21 14:05:00 1999 Ruibiao Qiu * ace/examples/IPC_SAP/ATM_SAP/CPP_{client,server}.dsp: Added configurations for building static executables on NT. Wed Oct 20 00:05:34 1999 Douglas C. Schmidt * ace/OS.i: Replaced 0666 wit ACE_DEFAULT_FILE_PERMS. Thanks to Dave Delano for reporting this. Tue Oct 19 13:31:15 1999 Joe Hoffert * ace/ATM_Params.h, ATM_QoS.{h,i}: Cleaned up comments, removed ACE_ATM_QoS::get_options_params method (since it's not used), and made changes for UNIX build. Tue Oct 19 12:55:16 1999 Ossama Othman * ace/Codeset_IBM1047.h: Include `ace/inc_user_config.h' before check for definition of ACE_MVS macro since otherwise ACE_MVS may not get defined. * ace/Codeset_IBM1047.cpp: Moved inclusion of `ace/Codeset_IBM1047.h' ahead of ACE_MVS macro definition check, and removed inclusing of `ace/inc_user_config.h' * ace/OS.i (llseek): Reenabled lseek64() on Linux. If _LARGEFILE64_SOURCE is not defined then an external declaration for lseek64() is made in the config-linux-common.h header. * ace/config-linux-common.h: Minor comment update. Added extern declaration of lseek64() if _LARGEFILE64_SOURCE is not defined. * ace/Handle_Set.cpp: Check if _XOPEN_SOURCE is #defined instead of _GNU_SOURCE to determine if the fd_set structure has an fds_bits member. * ace/Makefile: Updated dependencies. * ace/Makefile.am: Added ATM files to source lists. * acconfig.h: Added entries for some additional "feature test" macros, such as _XOPEN_SOURCE. * bin/g++dep: * include/makeinclude/rules.local.GNU: Incorporated Jody Hagins patches that get around a trailing backslash problem in generated Makefile dependencies. Thanks Jody! Tue Oct 19 12:30:00 1999 Kirthika Parameswaran * examples/Web_Crawler.dsp: Changed the settings to make the executable name as main.exe. * examples/Web_Crawler/URL_Visitor.cpp (~URL_Validation_Visitor): Removed double deletion of the which is the Strategy Connector. Tue Oct 19 11:24:16 1999 Nanbor Wang * include/makeinclude/wrapper_macros.GNU: Commented out an out-dated OBJEXT definition. If a rule requires to generated *.so, then it should specify the extension using SOEXT. Thanks to Aniruddha Gokhale for reporting this. Tue Oct 19 10:27:37 1999 Carlos O'Ryan * bin/run_all_list.pm: Added TAO/tests/DSI_Gateway to the list of tests Tue Oct 19 00:43:34 1999 Nanbor Wang * ace/config-win32-common.h: Undefined ACE_HAS_EXCEPTIONS under WinCE. The following changes are contributions from James Buck and Peter C. Chien . * ace/config-WinCE.h (ACE_LACKS_SOCKET_BUFSIZ): We cannot change the socket buffer size on WinCE. * ace/OS.h: * ace/OS.i: * ace/OS.cpp: Added a customized TSS errno implementation for WinCE version 2.10 and above based on James and Peter's patch. ACE_Errno_Guard also had to be changed when using this implementation. However, this code is not active by default because I don't know how to detect CE's OS and platform configuration automatically. To use the code, define ACE_HAS_WINCE_BROKEN_ERRNO. * ace/OS.i(cond_wait,cond_timedwait): On WinCE, we must tweak the returning result from the semaphore if timeout occurred. Because CE uses the simulated semaphore, the returning value is not the same as that returned by a native semaphore. Tue Oct 19 00:03:57 1999 Nanbor Wang * include/makeinclude/wrapper_macros.GNU: * include/makeinclude/rules.bin.GNU: * include/makeinclude/rules.lib.GNU: * include/makeinclude/rules.local.GNU: Chaged the following settings to be platform configurable: OBJDIRS: Names of directories to keep obj files. Default is '.obj' and '.shobj'. OBJEXT: Extension name for obj files. Default is 'o'. SOEXT: Extension name for so files. Default is 'so'. LIBEXT: Extension name for lib files. Default is 'a'. CC_OUTPUT_FLAG: LINK_OUTPUT_FLAG: SO_OUTPUT_FLAG: Flags to specify output file name for cc, linker and so_linker. Defaults are '-o'. Mon Oct 18 23:46:00 1999 Nanbor Wang * ace/config-freebsd-pthread.h: Undefined ACE_HAS_PENTIUM for freebsd. The high resolution timer doesn't seem to work on this platfrom. * ace/OS.i (cuserid): Added missing ACE_UNUSED_ARG (maxlen) statement. * ace/Log_Msg.cpp (log): FreeBSD defines sys_nerr as a const int. Mon Oct 18 23:13:55 1999 Kirthika Parameswaran * examples/Web_Crawler/URL_Visitor.cpp: Updated some broken template instantiations. Thanks to Bruce Alderson for reporting this. Mon Oct 18 21:32:29 1999 Ossama Othman Updates that remove need to use _GNU_SOURCE macro on Linux/glibc systems [Bug 167]: * ace/OS.i: Return ACE_static_cast (off_t, -1), instead of just -1 in ACE_OS::lseek(). (not related to _GNU_SOURCE updates) Only enable lseek64() on Linux/glibc systems if _LARGEFILE64_SOURCE is defined. Don't use cuserid() on Linux/glibc systems. It was dropped from POSIX.1 back in 1990. Instead, extract the user name from getpwuid(geteuid()), as suggested by the glibc cuserid() man pages and Stevens' Advanced programming in the UNIX Environment. * ace/Handle_Set.cpp: XPG4.2 declares an fds_bit member in the fd_set structure. Since _GNU_SOURCE is being disabled in ACE, use the __fds_bits member. It's not pretty, but it works. * ace/config-linux-common.h: strptime() is an XOPEN function. It is only enabled if _XOPEN_SOURCE or _GNU_SOURCE is defined (_GNU_SOURCE causes _XOPEN_SOURCE to be defined on Linux/glibc systems). If _XOPEN_SOURCE is not defined, create an external declaration for it. Mon Oct 18 18:41:38 1999 Steve Huston * ace/OS.h: Add #include for HP-UX 10.x, and... * ace/OS.i (ACE_OS::sigwait): On HP-UX 10.x, call cma_sigwait directly. Fixes bug #66. Mon Oct 18 15:45:08 1999 Irfan Pyarali * ace/OS.i (event_wait): The following changes are incorrect and have been reverted: http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ace/OS.i?r1=4.796&r2=4.797. Remember that is only turned on to remember state, i.e., when == 0. In the case when there are waiters, i.e., != 0, is not turned on, and therefore breaks the wait function since while (event->is_signaled_ == 0) never becomes false. We need a better way to protect against to guard against spurious wakeups. Mon Oct 18 13:42:37 1999 Nanbor Wang * ace/OS.h: Added extra parentheses to avoid operator precedence mix-up. Thanks to JM Strauss for reporting this. Mon Oct 18 13:30:08 1999 Nanbor Wang * ace/OS.h: Removed a whole bunch of extra blank in ACE_DES_*FREE* macro definitions. Thanks to JM Strauss for pointing this out. Sun Oct 17 19:08:51 1999 Balachandran Natarajan * ace/QtReactor.cpp: Fixed a bug in remove_handle_i () method. I found this when I was testing the test for the QtReactor. Sun Oct 17 11:00:46 1999 Douglas C. Schmidt * include/makeinclude/platform_sunos5_sunc++.GNU (LD): Added a fix so that SunC++ 5.0 will work correctly when it's used in "compat" mode with SunC++ 4.2. Thanks to Susan Liebeskind for reporting this fix. * ace/Malloc_T.cpp (remove): Need to call the destructor of ACE_Malloc_Stats explicitly in remove(). Thanks to Jean-Marc Strauss for reporting this. * ace/Containers_T.i (get): ACE_DLList::get() didn't check the return value from ACE_Double_Linked_List::get() so it was possible for the node variable to be NULL. Now it checks for the error case explicitly. Thanks to Boris Sukholitko for reporting this bug. * ace/Containers_T.cpp (get): The ACE_Double_Linked_List::get() method should return -1 on error but it was returning 1. Now, the implementation matches the documentation. Thanks to Boris Sukholitko for reporting this bug. Sat Oct 16 17:10:23 1999 Douglas C. Schmidt * ace/Makefile: * ace/Svc_Conf_l.cpp: Replace exit(1) with ACE_OS::exit(1) so that CodeWarrior doesn't get confused. Thanks to David Delano for reporting this. * ace/OS.cpp: Removed the '&' in front of thread_args to make CodeWarrior happier. Thanks to David Delano for reporting this. * ace/OS.cpp: Removed the table_() "initialization" for ACE_TSS_Cleanup since this breaks the CodeWarrior C++ compiler. Thanks to David Delano for reporting this. * ace/OS.i: There was a bug with the ACE_OS::truncate() emulation for Win32. We need to check for ACE_INVALID_HANDLE and NOT < 0! Thanks to David Delano for reporting this. Sat Oct 16 11:17:10 1999 Irfan Pyarali * TAO/tao/Sync_Strategies.cpp (buffering_constraints_reached): Changed the signature of TAO_Flush_Sync_Strategy::buffering_constraints_reached() to match the base class. Fri Oct 15 17:28:05 1999 Irfan Pyarali * ace/Connector.cpp (connect_i): Only close if we have a valid . Thanks to Yury Kuznesov for reporting this problem. Fri Oct 15 17:26:08 1999 Balachandran Natarajan * include/makeinclude/wrapper_macros.GNU: Added a new flag that would help conditional compilation compilation of the QtReactor. * ace/QtReactor.cpp: * ace/QtReactor.h: Files for the QtReactor. Thanks to Hamish Friedlander for donating this to ACE. For the sake of record, Qt is a multiplatform C++ GUI toolkit. * ace/Makefile: Added the above files to Makefile. Changes were also made to generate files from moc (Meta Object Compiler, that comes with Qt libraries) and include them with the build. Fri Oct 15 01:03:13 1999 Douglas C. Schmidt * ace/Activation_Queue: ACE_Activation_Queue has no methods for inspecting the size of the queue. The solution was to add the methods: method_count(), is_empty(), and is_full(). Thanks to Travis Shirk for contributing this. Fri Oct 15 00:36:35 1999 Douglas C. Schmidt * tests/Process_Manager_Test.cpp (main): Replaced ACE_OS::exit(secs) with return secs so that Purify will be happy. Thu Oct 14 14:30:06 1999 David L. Levine * tests/Process_Manager_Test.cpp: use u_int instead of bool. Make ~Exit_Handler () public so that g++ doesn't complain about a private destructor with no friends. Commented out unused local variable child7. Thu Oct 14 14:25:44 1999 Dave Madden * tests/Process_Manager_Test.cpp: fixed the memory leaks, and most of the "unused variable" warnings should be gone. I've added, but left commented out, ASSERTs for the child process' exit codes. The reason is that, on Unix, the exit code contains extra information (exited, traced, stopped, signaled, etc.) that causes the exit code from wait() to be different from what the child's main() returned. Wed Oct 13 20:23:58 1999 Nanbor Wang * ace/config-WinCE.h: Added ACE_LACKS_ACE_TOKEN and ACE_LACKS_ACE_OTHER to reduce CE dll's footprint. * ace/Memory_Pool.cpp (ACE_Pagefile_Memory_Pool::map): The SECURITY_DESCRIPTOR and its management routines are only supported on NT. Changed to pass a NULL security attribute on non-NT platforms (95, 98, CE.) Wed Oct 13 10:50:39 1999 David L. Levine * tests/run_tests.sh: use uname -s without checking to see if /bin/uname, etc., exist. Redirect stderr to the sysname string. It works. Wed Oct 13 10:39:50 1999 David L. Levine * ace/OS.h: ensure that ACE_THR_PRI_FIFO_DEF and ACE_THR_PRI_OTHER_DEF are defined on non-threaded platforms, to support application source code compatibility. Wed Oct 13 10:11:47 1999 David L. Levine * tests/Malloc_Test.cpp: fixed preprocessor logic so that the test is neutered on LynxOS. [Bug 224] Wed Oct 13 01:15:45 1999 Nanbor Wang * ace/Parse_Node.cpp: Made sure we don't try to duplicate a null string. This was causing problem when the initialization string was missing from a service entry. Thanks to Chris Hafey for reporting this. Tue Oct 12 15:05:12 1999 Douglas C. Schmidt * tests/run_tests.lst: Reenabed Dave Madden's new Process_Manager_Test so that we can see if it works on various platforms. * tests/Process_Manager_Test.cpp (main): Added a new one-button test for the ACE_Process_Manager. Thanks to Dave Madden for contributing this test. * ace/Process_Manager.cpp (wait): Fixed a bug triggered by a process-specific wait. Thanks to Dave Madden for contributing this fix. * ace/ACE.cpp (format_hexdump): Replaced textver[i] = (c < 0x20 || c > 0x7e) ? '.' : c; with textver[i] = isprint (c) ? c : '.'; since this is more portable. Thanks to Jim Rogers for reporting this. * ace/Memory_Pool.i: Changed implementation to round_to_chunk_size() to ACE::round_to_pagesize(), which appears to be the "Right Thing"[TM] on NT. Tue Oct 12 14:49:00 1999 Ruibiao Qiu * ace/ATM_Stream.h * ace/ATM_Acceptor.h: Moved #pragma after ACE include so that g++ would not give warning messages. Thanks to Dr. David L. Levine for pointing this out. Tue Oct 12 14:26:15 1999 David L. Levine * ace/config-qnx-neutrino.h: added #define of ACE_THR_PRI_FIFO_DEF. This allows us to easily set a thread priority (10) that's lower the the TCP service threads (17) in tests. Thanks to Sean Boudreau for suggesting that. Tue Oct 12 14:16:18 1999 David L. Levine * etc/purify.solaris2: added some more UMR suppressions for SunOS 5.7 (with Sun CC 4.2). Tue Oct 12 13:22:22 1999 David L. Levine * include/makeinclude/platform_sunos5.6_sparc_sunc++_4.2.GNU: removed to avoid confusion. It just included platform_sunos5_sunc++.GNU; that should be used directly, instead. Thanks to Dan Butler for reporting this. Tue Oct 12 12:40:41 1999 Jeff Parsons * ace/Memory_Pool.i: * ace/Memory_Pool.cpp: Fixed some errors in Win32 specific code. Tue Oct 12 12:20:08 1999 David L. Levine * docs/ACE-subsets.html: updated status, and added some missing motivation sections. Thanks to Wei Chiang for reporting that the document was out-of-date. Tue Oct 12 11:57:21 1999 David L. Levine * ace/config-sunos5.6-sunc++-4.x.h: removed because it #included a header that no longer exists in the distribution. ace/config-sunos5.6.h should be used instead. Thanks to Dan Butler for reporting this. Tue Oct 12 11:48:00 1999 Ruibiao Qiu * ace/ATM_Addr.{h,cpp,i}: * ace/ATM_Stream.{h,cpp,i}: * ace/ATM_Connector.{h,cpp,i}: * ace/ATM_Acceptor.{h,cpp,i}: * ace/ATM_QoS.{h,cpp,i}: * ace/ATM_Params.{h,cpp,i}: Added support for Fore ATM on Windows platform. Enabled when ACE_HAS_ATM and ACE_HAS_FORE_ATM_WS2 are defined. * ace/config-win32-common.h: Added needed header include when ACE_HAS_FORE_ATM_WS2 is defined. * ace/ace_dll.dsp: * ace/ace_lib.dsp: Included ATM_* classes files in the porject files. * examples/IPC_SAP/ATM_SAP/CPP-client.cpp * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: Changed example codes so that they can be run on Windows. They are now non-interactive, and show data rates at each end. * examples/IPC_SAP/ATM_SAP/CPP_client.dsp * examples/IPC_SAP/ATM_SAP/CPP_server.dsp * examples/IPC_SAP/ATM_SAP/ATM_SAP.dsw: Created MSVC project files and workspace file for these examples. Tue Oct 12 11:37:56 1999 David L. Levine * tests/run_tests.sh: export ACE_ROOT if setting it. Tue Oct 12 11:32:23 1999 David L. Levine * tests/run_tests.pl,run_tests.sh: don't print "Skipping test on this platform" message for DISABLED tests. Set ACE_ROOT to .. if it wasn't set. * tests/run_tests.sh: don't invoke uname command on Neutrino, because it's not supported. Tue Oct 12 08:53:52 1999 Irfan Pyarali * ace/Message_Queue.cpp (enqueue): and should increase by total_size() and total_length() respectively. And in dequeue(), should decrease by total_length(). Thanks to Christopher Kohlhoff for pointing this out. Tue Oct 12 10:00:52 1999 Douglas C. Schmidt * ace/Memory_Pool (ACE_Pagefile_Memory_Pool):Added a new memory pool that uses the Win32 page file. Thanks to Dieter Quehl for contributing this. Mon Oct 11 17:07:46 1999 Douglas C. Schmidt * ace/Message_Queue.cpp (enqueue): ACE fails to compile because of a for-loop scoping problem in the method ACE_Message_Queue_NT::enqueue. Thanks to Christopher Kohlhoff for reporting this. * ace/Activation_Queue.cpp (enqueue): Changed the creation of the ACE_Message_Block so that it uses the sizeof (ACE_Method_Request) to ensure the queue's flow control mechanism works properly. Thanks to Dan Gilboa for reporting this. Mon Oct 11 17:36:15 1999 Nanbor Wang Thanks to Wei Chiang for the following patches. * ace/Thread_Manager.cpp (kill_thr): Chorus only supports SIGTHREADKILL here. Made sure we remove the killed thread from the managed thread list. * tests/Thread_Manager_Test.cpp: Changed the test to check for cooperative cancellation even if the platform doesn't support sending signaling to a specific thread. On Chorus, this signal has to be SIGTHREADKILL. Mon Oct 11 17:35:51 1999 Nanbor Wang * ace/config-kcc-common.h: Added ACE_HAS_STD_TEMPLATE_SPECIALIZATION for KCC. Mon Oct 11 12:05:31 1999 Wei Chiang * ace/Signal.cpp (ACE_Sig_Action ctors), ace/Select_Reactor_T.cpp (register_handler,remove_handler): disabled signal-related operations on Chorus. Mon Oct 11 10:15:28 1999 David L. Levine * bin/check_build_logs: suppress some Purify warnings. Purify says that it's ignoring the problem; so will we. Mon Oct 11 10:09:56 1999 David L. Levine * ACE version 5.0.6 released. Mon Oct 11 07:34:34 1999 Douglas C. Schmidt * ace/OS.h: Removed a stray '>' that was causing OS.h not to compile. Thanks to Marvin Allen Wolfthal for reporting this. Fri Oct 8 07:47:08 1999 Douglas C. Schmidt * ace/OS.h: Removed the word "defined" since that was breaking SunCC 4.2. Thanks to Andy Gokhale for reporting this. Thu Oct 07 18:47:03 1999 Irfan Pyarali * ace/OS.h (ACE_NOTSUP): Added new macro. This one is similar to ACE_NOTSUP_RETURN, except that there is no return value (similar to ACE_GUARD and ACE_GUARD_RETURN). * ace/Message_Queue (message_length): Returns the total length on the queue, i.e., sum of the message block lengths. Since manual changes to these stats might be necessary, specially when queued message blocks change size or lengths (without dequeuing the messages from the queue), we also provide methods for setting these stats. * ace/Message_Block.i (total_length): This new method is similar to except that it deals with the length of the message blocks and not the size of the message blocks. It returns the length of the message blocks, including chained message blocks. Thu Oct 7 13:17:29 1999 Douglas C. Schmidt * ACE-INSTALL.html: Changed the word "compiler" to "linker". Thanks to George Ball for reporting this. Thu Oct 07 11:35:13 1999 Steve Huston * ace/streams.h: Added #include in the non-Win32 section of the !ACE_HAS_STANDARD_CPP_LIBRARY section, for systems like Solaris w/ SC4.2. Wed Oct 6 21:36:18 1999 Douglas C. Schmidt * ace/Log_Msg.cpp (log): Forgot to remove a stray %s. Thanks to Kitty Krishnakumar