Mon Jun 22 01:12:53 1998 Irfan Pyarali * ace/OS.i (dlerror): Just use FormatMessageA instead of FormatMessage. The you don't have to worry about UNICODE being turned on. Mon Jun 22 00:01:02 1998 Douglas C. Schmidt * ACE version 4.5.15 released. Sun Jun 21 23:54:28 1998 Nanbor Wang * ace/config-freebsd-pthread.h: Defined ACE_LACKS_MUTEXATTR_PSHARED and ACE_LACKS_CONDATTR_PSHARED. Sun Jun 21 10:14:32 1998 Douglas C. Schmidt * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (server): Fixed another ambiguity caused by the recent SOCK_IO changes. Thanks to David for pointing this out. Sun Jun 21 00:16:56 1998 Nanbor Wang * ace/OS.i (dlerror): Have to treat UNICODE differently because FormatMessage takes wchar when UNICODE is defined. * ace/WFMO_Reactor.{h,i,cpp}: Changed the parent class of ACE_WFMO_Reactor_Notify from ACE_Event_Handler to ACE_Reactor_Notify. (dump): Added this virtual function implementation for ACE_WFMO_Reactor_Notify. * Ace/Proactor.cpp (timeout): Fixed a typo. Sat Jun 20 16:51:39 1998 Douglas C. Schmidt * ace/Reactor*: Made a slew of changes to the Reactor and it's associated implementations so that we can integrate it seamlessly with Chorus ClassiX IPC. Thanks to Wei Chiang for these changes. * ace/Acceptor.cpp: Added a flag that keeps track of whether we should use select() in the Acceptor. This makes it easier to integrate this stuff with Chorus IPC. Thanks to Wei Chiang for this. * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: Removed the trailing 0 to the send() operation to (1) avoid overload ambiguity and (2) to use write() rather than send()! Thanks to Chris Healey for reporting this. * ace/ACE: The default condition in the select switch in the enter_*_timed_wait functions assumed that all values returned from select if not 0 or 1 will be -1. This is true in those functions due to only 1 file descriptor flag being set. Thanks to Chris Healey for generalizing this a bit... * ace/SOCK_IO: Added the wrappers for the "non-flags" version of timed send()/recv(). Thanks to Chris Healey for this. * ace/FILE_Addr.cpp: Cleaned up the code a bit to be more consistent. Thanks to Chris Healey for suggesting this. * ace/FILE_Addr.cpp (ACE_FILE_Addr): Removed the memset() in the constructor since this is overkill... * ace/ACE.cpp (send_n): Fixed a dump cut&paste bug in the timed version of send_n(). Thanks to Chris Healey for reporting this. Sat Jun 20 14:58:21 1998 Nanbor Wang * bin/indent_macros.perl: Instead of hardcoding perl's location in the script, it now invokes perl according to user's environment setting. Thanks to David for providing the improvement. Sat Jun 20 01:24:28 1998 Nanbor Wang * include/makeinclude/platform_freebsd_pthread.GNU: Changed to use -Wall to report all warnings. * ace/OS.cpp (thr_create): Specify as an unused argument when ACE_LACKS_SETSCHED. * ace/OS.{h,i,cpp}: Rearrange macro indentations. * bin/indent_macros.perl: This little perl script rearrange the indentation of macros so they are a bit easier to debug. * ace/config-freebsd-pthread.h: Defined ACE_LACKS_PTHREAD_CANCEL. Sat Jun 20 00:14:07 1998 Alexander Babu Arulanthu * examples/Reactor/Proactor/test_proactor_with_aio.cpp: Test program for the Asynch_Transmit_File, Asynch_Read_File, Asynch_Read_Stream, Asynch_Write_File and Asynch_Write_Stream. Fri Jun 19 23:58:35 1998 Alexander Babu Arulanthu * ace/Proactor.h : * ace/Proactor.cpp : * ace/Asynch_IO.h : * ace/Asynch_IO.cpp : - Implemented Asynch_Transmit_File for POSIX4 systems. - Added a new class "ACE_Asynch_Transmit_Handler", which is an auxillary handler class for Asynch_Transmit_File. This does the actual transmission doing file read and stream write asynchronously and finally calling the transmit_handler in the application. - Aiocb list is now of size RTSIG_MAX, the maximum number of RT signals that can be queued in a process at a time. Fri Jun 19 22:17:35 1998 David L. Levine * bin/make_release (check_workspace): use cvs checkout instead of update, to notice any new directories that have been added to the repository but not to the workspace. There are .cvsignore files in /project/adaptive/ACE_wrappers and /project/adaptive/ACE_wrappers/java. They can be used to suppress tripping over any new, uncontrolled files, such as releases, that are added to these directories. Filter ^U from checkout output, so that release need not be based on the latest repository versions. Instead, the release is based on the contents of the /project/adapative/ACE_wrappers workspace. It need not be brought up-to-date with the repository, though it cannot contain any modified files. This change allows other users to continue to check in files prior to or during the release. * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (read): added ACE_UNUSED_ARG (len). * Makefile: fixed build of .obj/gethrtime.o with ghs/VxWorks/i86. * tests/run_tests.vxworks: added Timeprobe_Test, but commented out. That test page faults when built with ghs for Pentium. It appears that the STL-style iterator usage in ACE_Timeprobe isn't handled properly by the compiler. Fri Jun 19 16:51:05 1998 Nanbor Wang * ace/config-freebsd-pthread.h (ACE_HAS_NONCONST_MSGSND): Macro definition added. * ace/OS.i (sigwait): Suppress compiler warnings on FreeBSD. (msgsnd): Separated the case ACE_HAS_NONCONST_MSGSND out. Thanks to Russell L. Carter for reporting the above fix. Fri Jun 19 11:22:27 1998 David L. Levine * ACE version 4.5.13 released. Thu Jun 18 21:14:25 1998 David L. Levine * examples/Threads/task_five.cpp: renamed global stack_size to default_stack_size, to avoid shadowing by stack_size in main (). * ace/OS.i (dlopen): added support for ACE_HAS_SGIDLADD. (dlerror): on WIN32, return a formatted message instead of 0. Thanks to Kent Watsen for the diffs. * ace/config-irix6.x-sgic++-nothreads.h: added ACE_HAS_SGIDLADD. Thanks to Kent Watsen for this addition. * Makefile: ACE-INSTALL is not a .PHONY target. * ace/Makefile: only regenerate Svc_Conf_[ly].cpp if at Wash. U. Thu Jun 18 20:46:46 1998 Nanbor Wang * performance_tests/Misc/childbirth_time.cpp: Changed to use the variable MULTIPLY_FACTOR in statistic calculation. * ace/config-freebsd-pthread.h: Added the following definition: #define ACE_HAS_SIGINFO_T #define ACE_LACKS_SIGINFO_H #define ACE_LACKS_UCONTEXT_H #define ACE_LACKS_SI_ADDR * include/makeinclude/platform_freebsd_pthread.GNU: Changed to invoke linker directly using g++. Added -pthread flag for linker. This implies programs will link against libc_r automatically now. Removed -lc_r. Other minor changes. Thanks very much for lots of help from FreeBSD team esp. Amancio Hasty and John Birrell . Thu Jun 18 19:32:30 1998 David L. Levine * ace/Token.cpp (dump): commented out print of owner_. Is there a portable way to print an ACE_thread_t via ACE_DEBUG? Thu Jun 18 18:46:00 1998 Carlos O'Ryan * ace/Timeprobe.h: * ace/Timeprobe_T.h: * ace/Timeprobe_T.cpp: Added methods to print the absolute values, this can be used to mix the results of several processes: por example on Sparcs the high-res timer is a CPU register so the value is consistent across processes, there are some potential problems with multiple CPUs, but that's not our case. Thu Jun 18 16:25:28 1998 Nanbor Wang * examples/Threads/task_five.cpp (main): Extracted out the body of the test loop so that the delete[] gets called everytime the body gets executed. * ace/Thread_Manager.cpp (ACE_EXECUTE_OP,kill): We need to guard against non-existing target thread after searching the thread table. Thanks to Savas Parastatidis for noticing the problem. Thu Jun 18 09:23:39 1998 Irfan Pyarali * ace/config-win32-common.h: Fixed the inclusion of winsock related files. Thanks to Ernesto Guisado for suggesting this. Wed Jun 17 22:47:50 1998 David L. Levine * ace/OS.i (rw_trywrlock_upgrade): moved declaration of local "result" before the ACE_PTHREAD_CLEANUP_PUSH. PTHREAD_CLEANUP_PUSH/POP are macros that contain open/ close braces on some platforms. So, any declarations between them are not visible after the POP. Wed Jun 17 19:01:53 1998 Nanbor Wang The following changes provide an interface for ACE programmers of more finer control over how Win32 structured exceptions are handled. Thanks to Detlef Becker for contemplating the idea and passing it to us. * ace/Log_Msg.{h,cpp} (seh_except_{selector,handler}): Added new methods to retrieve/set structured exception handling behavior. is used to determine the "proper" action a thread should take upon a structured exception and performs the actual exception handling routine. They are structured as below in ace_thread_adapter: __except (ACE_LOG_MSG->seh_except_selector () (0)) { ACE_LOG_MSG->seh_except_handler () (0); } * ace/OS.{h,cpp} (ACE_SEH_EXCEPT_HANDLER): New typedef used to define user win32 structured exception handler. (ACE_SEH_Exception_{Selector,Handler}): Default structured exception handler. Two handlers ACE_Log_Msg are initialized to them by default. (ACE_Thread_Adapter,inherit_log_msg): Added initializing and inheriting code to pass the spawning thread's structured exception handling behaviors. * ace/config-win32-common.h (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION): This macro defines the default action taken by ACE when a win32 structured exception occurs. It is by default defined to EXCEPTION_CONTINUE_SEARCH, which does not handle the exception but simply pass the exception out. Users can overwrite the default behavior by defining the macro in their config.h files. Wed Jun 17 17:30:11 1998 Michael Kircher * ace/OS.h: Added a condition variable and a flag to the definition of reader/writer locks. * ace/OS.i: Implemented ACE_OS::rw_trywrlock_upgrade properly using one condition variable and a flag. The condition variable is used to get in front of all the possible waiting writers and to wait on still working readers on the rw_lock. The flag is used to indicate, that a reader is upgrading its lock. rw_unlock obeys one more case now. * ace/OS.cpp: The constructor for the Reader/writer locks has changed slightly to initialize and destroy the new members. * tests/Reader_Writer_Test.cpp: Added the use of the rw_mutex.tryacquire_write_upgrade () method to the test. Wed Jun 17 07:34:11 1998 David L. Levine * tests/IOStream_Test.cpp (server): fixed sign of constant used to check for valid double. Thanks to Mark Kettner for reporting this. * performance-tests/UDP/udp_test.cpp: added a few ACE_U64_TO_U32 explicit conversions. * tests/Priority_Buffer_Test.cpp (consumer): re-enabled the statement to suppress the ghs warning about unused variable cur_priority. Tue Jun 16 20:29:32 1998 Steve Huston * ACE-INSTALL.html: Added some comments concerning MSVC 5.0 and SP3. Thanks to Bill Fulton for the excellent detective work. Tue Jun 16 16:08:23 1998 Irfan Pyarali * ace/Timeprobe_T.h (class ACE_Timeprobe): Fixed copy constructor signature. Thanks to Chuck R. Gehr (GehrCR@LOUISVILLE.STORTEK.COM) for pointing this out. Tue Jun 16 16:18:08 1998 Douglas C. Schmidt * ace/FILE_Addr.cpp (operator=): Check to make sure we NUL-terminate the memcpy'd filename correctly. Thanks to Istvan Buki for reporting this. Tue Jun 16 15:43:55 1998 Nanbor Wang * ACE-INSTALL.html: Changed to instruct users to #include "ace/config-win32.h" instead of "config-win32.h" directly. Thanks to Gonzo for noticing this. Tue Jun 16 10:33:20 1998 David L. Levine * os-patches/linux-patches.html: added RedHat 5.1 success report from Chanaka Liyanaarachchi . * ace/Basic_Types.h,High_Res_Timer.cpp, performance-tests/Misc/basic_perf.cpp: added explicit ACE_U64_TO_U32 conversion macro. WIN32's __int64 and ACE_U_LongLong need an explicit narrowing to 32 bits. This macro provides a consistent way to do that on all platforms. * ace/Asynch_IO.*: added trailing $ to CVS keyword string. * ace/Asynch_IO.cpp: fixed so that it will compile with Sun CC on Solaris 2.6. Thanks to Frederic ANDRES for reporting this. * ACE-INSTALL.html: updated Linux RedHat info. Mon Jun 15 23:17:27 1998 David L. Levine * Makefile: added os-patches/ to distribution. Mon Jun 15 23:07:45 1998 David L. Levine * ACE version 4.5.12 released. Mon Jun 15 13:58:17 1998 David L. Levine * ace/config-chorus.h: replaced comment that said that the config is for CHORUS using MIT threads with comment that says that it uses the CHORUS POSIX threads interface. Thanks to Leo Modica for questioning this, and Wei Chiang for confirming it. * os-patches/linux-patches.html: updated glibc info. Thanks to Bob Scott for pointing out the glibc-2.0.7-7 is not available from sunsite. Sat Jun 13 13:10:05 1998 David L. Levine * tests/XtReactor_Test.cpp: moved explicit template instantiations inside ACE_HAS_XT, because the #includes are all inside ACE_HAS_XT also. * tests/XtReactor_Test.cpp: without ACE_HAS_XT, replaced ACE_ERROR_RETURN with ACE_ERROR. This makes it consistent with other tests, and allows the following ACE_END_TEST statement to be reached. * tests/Process_Mutex_Test.cpp (main): specify full path to spawned children. Removed Solaris/i386-specific code because it should no longer be needed now that the test is fixed by specifying the full path. (acquire_release): removed printout at top. * ACE+TAO.tgz,ACE.tgz,ACE-lib.tgz,FSU-threads.tgz: added these symlinks to their corresponding .tar.gz files. Thanks to Gonzo and Darrell for suggesting this. * ace/RB_Tree.i (clear): removed extraneous ";" following the function definition. * ace/Process.cpp (spawn): added an ACE_DEBUG printout before each call to ACE_OS::exit (). * ace/Synch_T.cpp: removed the #pragma define_template for ACE_Condition on __osf__ with cxx. It's no longer needed, and was causing multiply defined instantiations with cxx 6.1. Fri Jun 12 17:04:14 1998 Alexander Babu Arulanthu * ace/OS.h: Moved the #define's and typedef's (related to Proactor stuff, things like TRANSMIT_BUFFERS etc) under '#if defined (WIN32)' before OS.i. They were at the end of the file. Fri Jun 12 16:31:13 1998 Aniruddha Gokhale * ace/OS.h: (ACE_NTOHL, ACE_HTONL): Added macros for conversion between network and host byte order. Thanks to James Hu for contributing these. Fri Jun 12 14:29:40 1998 Douglas C. Schmidt * ace/OS.i (sema_wait): Changed the code so that it always treats the time value argument in absolute time, even for Win32. Thanks to Chuck Gehr for reporting this. Fri Jun 12 14:12:25 1998 Carlos O'Ryan * include/makeinclude/wrapper_macros.GNU: The inclusion of the XtReactor is controlled on the platform_macros file (or the command line). Users simply type make xt_reactor=1 to enable this feature, or set xt_reactor to 1 in the platform_macros.GNU file. Some extra macros were added for platforms that require special CPP, LD or libraries when linking against X/Windows. The macros are described in this file. The platforms that already had XtReactor compiled by default still do. * ace/config-irix6.x-sgic++-nothreads.h: * include/makeinclude/platform_irix6.x-sgic++.GNU: Now the XtReactor configuration is controlled on the platform file. * ACE-INSTALL.html: Updated documentation for make flags. * tests/XtReactor_Test.cpp: Fixed a few typos. * tests/Conn_Test.cpp: Fixed some template instantiation pragmas. Thu Jun 11 22:05:31 1998 David L. Levine * tests/Process_Mutex_Test.cpp (main): kill children on Solaris/i386 instead of waiting for them. (acquire_release): added printout at top. It never appears, at least on g++/Solaris/i386. * ace/Malloc.cpp (instance): wrap declaration of local "assertion" with ifndef ACE_NDEBUG, to avoid warning about unused variable with debug=0. 1998-06-11 Alexander Babu Arulanthu * ace/Proactor.h (ACE_Proactor): Put insert_aiocb_list () under ACE_HAS_AIO_CALLS so that it doesnt break in NT. Thu Jun 11 1998 Alexander Babu Arulanthu * ace/OS.h: Added typedef's, #define's and #include's under the definition ACE_HAS_AIO_CALLS for the proactor porting. * ace/config-sunos5.6.h: Defined ACE_HAS_AIO_CALLS for solaris2.6. * ace/Asynch_IO.h: * ace/Asynch_IO.cpp: Added aio call support for Asynch_Read_File. See the code under #if defined (ACE_HAS_AIO_CALLS) * ace/Proactor.h: * ace/Proactor.cpp: Added support for AIO calls in Proactor. See the code under #if defined (ACE_HAS_AIO_CALLS) * examples/Reactor/Proactor/test_proactor_with_aio.cpp: The test program for Proactor doing aio stuff. Thu Jun 11 13:34:26 1998 Darrell Brunsch * ace/OS.cpp: Made change to uname to use a different structure if certain Borland compilers are being used. Thanks to Valik Solorzano for this fix. * bin/make_release: create .zip files in addition to .tar.gz files. Thu Jun 11 11:15:26 1998 Carlos O'Ryan * ace/XtReactor.cpp: The notify_handler_ open method requires an extra argument. Wed Jun 10 14:31:55 1998 David L. Levine * ace/Strategies_T.cpp (ACE_Recyclable ctors): reordered initializers to match declaration order. * tests/Conn_Test.cpp: fixed template instantiations: ACE_SYNCH_MUTEX instead of ACE_SYNCH_RW_MUTEX. * tests/XtReactor_Test.cpp (main): added ACE_UNUSED_ARGS for argc and argv without ACE_HAS_XT. Wed Jun 10 12:34:25 1998 Irfan Pyarali * ace/Strategies_T: Added two new template classes: ACE_Recyclable and ACE_Hash_Recyclable. ACE_Recyclable adds a recyclable flag to the class it is instantiated with. ACE_Hash_Recyclable inherits from ACE_Recyclable and forces the class it is instantiated with to have a hash() method. Also, the Hash_Addr was fixed so that it does not have the recyclable flag anymore, since the Hash_Addr can be used even when there is no recycling. Also updated the ACE_Cached_Connect_Strategy to reflect these changes. * tests/Conn_Test.cpp: Fixed the template instantiations in lieu of the changes to Hash_Addr. Wed Jun 10 11:05:39 1998 David L. Levine * bin/make_release: replaced ACE_wrappers-repository/ with ACE_wrappers/ in diffs. Thanks to James Risinger for reporting this. Wed Jun 10 01:31:46 1998 Gonzalo Diethelm * tests/Tokens_Test.cpp: Changed how the Borland template instantiations are protected. * tests/XtReactor_Test.cpp: test_config.h must be included before asking for ACE_HAS_XT. Was missing the Borland non-sense. * tests/UPIPE_SAP_Test.cpp: Protected the Borland template instantiations. * tests/Timeprobe_Test.cpp: * tests/Time_Value_Test.cpp: Added the Borland non-sense. * tests/Reactor_Timer_Test.cpp: Added a couple of casts to avoid warnings. * tests/Priority_Buffer_Test.cpp: Got rid of a (seemingly) useless piece of code. * tests/Naming_Test.cpp: Modified a test so that it won't give warnings. * tests/Conn_Test.cpp: Was missing the Borland non-sense. Modified an #if-protected section to get rid of a warning. Added a few extra Borland template instantiations. * ace/WFMO_Reactor.cpp: * ace/SOCK_Dgram.cpp: Under Borland, a couple of comparisons were always true (with a warning) because of unsignedness. * ace/Malloc.cpp: Assigned the consition of an assertion to a temporary variable to avoid a misleading warning. * ace/Get_Opt.cpp: Added an explicit comparison against 0 to avoid a warning. * ace/ACED.cpp: * ace/ACER.cpp: These files had been commited with ^M at the end of lines. * ace/ACE.cpp: Changed a couple of run time checks for ACE_DIRECTORY_SEPARATOR_CHAR into compile time tests; that got rid of a couple of warnings under BCB3 (Borland C++ Builder 3.0). * ace/ACE.cpp: * tests/Conn_Test.cpp: Used ACE_NOTREACHED to avoid further warnings. * ace/OS.h: Added Borland to the empty definition of ACE_NOTREACHED. The definition of ACE_SEH_FINALLY for the case of Borland C++ Builder 3.0 now uses __finally. This allowed most of the tests that were hanging to complete ok. Thanks to David Tallman for pointing this out. Tue Jun 9 19:35:26 1998 Douglas C. Schmidt * ace/XtReactor: Integrated the new XtReactor, which should now work for Windows NT! Thanks to Kirill Rybaltchenko for this. * tests: Added the new XtReactor_Test.cpp to test the features of the XtReactor. Thanks to Kirill Rybaltchenko for this test. Tue Jun 09 16:18:54 1998 David L. Levine * Makefile: removed old release targets. They're no longer used, or maintained. * include/makeinclude/platform_sunos5_x86_g++.GNU: removed. Use platform_sunos5_g++.GNU instead, on both sparcs and x86. Tue Jun 09 15:25:13 1998 David L. Levine * ACE version 4.5.11 released. Tue Jun 9 14:59:15 1998 Darrell Brunsch * ace/OS.cpp: Made it so both Borland and Microsoft use the x.wProcessorArchitecture structure for system info. Tue Jun 09 14:35:28 1998 David L. Levine * tests/Tokens_Test.cpp,UPIPE_SAP_Test.cpp: only need the template instantiations with Borland C++. * bin/make_release: create version diffs, in background, when creating releases. Tue Jun 09 12:50:49 1998 Nanbor Wang * ace/ACE_Library.mak: Added Stats.cpp. Tue Jun 09 11:51:17 1998 Chris Gill * tests/MM_Shared_Memory_Test: added a null pointer check so test complains rather than crashing when shared allocator fails. Mon Jun 8 21:03:23 1998 Douglas C. Schmidt * ace/Select_Reactor.cpp (any_ready): Fixed a more unrighteous bug where we were assigning the values in the wait_set_ rather than the ready_set_. Thanks to Stefan Ericsson for reporting this bug. Mon Jun 8 19:15:38 1998 Nanbor Wang * ace/Malloc.h: * ace/Malloc_Base.h (ACE_Allocator): Moved the definition of abstract class ACE_Allocator from Malloc.h to a new file called Malloc_Base.h to resolve a circular dependency among a bunch of header files when compiling with UNICODE and inline enabled. * ace/SString.i: Changed to include "ace/Malloc_Base.h" to avoid circular inclusion. Mon Jun 08 18:35:23 1998 Steve Huston * ACE-INSTALL.html: Added some updated HP-UX info (and a pointer to Riverace's HP-UX hints page) and removed the warning to not use MSVC 5.0 SP3 - per results from ace-users discussions last week, SP3 is getting used successfully. Mon Jun 08 13:22:47 1998 David L. Levine * ace/Basic_Types.h: set ACE_SIZEOF_LONG_DOUBLE to 12 if LDBL_MAX_EXP is 16384 and LDBL_DIG is 18. Thanks to Sree Oggu for reporting this, on SolarisX86 with Sun C++. * ace/Malloc.cpp (instance): cleaned up comments. Mon Jun 8 12:12:39 1998 Carlos O'Ryan * tests/UPIPE_SAP_Test.cpp: Template instantiation was not using the ACE_SYNCH macros. Mon Jun 8 02:17:54 1998 Gonzalo Diethelm * ACE-INSTALL.html: Added a comment regarding the new port to Borland C++ Builder. * ace/ACE.bpg: * ace/ACED.bpr: * ace/ACED.cpp: * ace/ACER.bpr: * ace/ACER.cpp: * ace/ACE.cpp: Got rid of unused const int MAX_STRING_SZ = 4096. * ace/Asynch_Acceptor.cpp: * ace/Asynch_IO.cpp: * ace/Msg_WFMO_Reactor.cpp: * ace/config-win32-common.h: Replaced the use of _WIN32_WINNT with ACE_HAS_WINNT4. Borland C++ Builder doesn't handle _WIN32_WINNT very well when building under Win95. * ace/Asynch_IO.h: Now ACE_Asynch_Result inherits publicly from OVERLAPPED; otherwise, Borland C++ Builder refuses to access OVERLAPPED members. I'm not sure who's right or wrong here. * ace/CORBA_Ref.h: Added an #include "ace/ACE.h". * ace/Future.h: Two cosmetic changes. * ace/LOCK_SOCK_Acceptor.cpp: Added an #include /**/ "ace/LOCK_SOCK_Acceptor.h". * ace/Log_Msg.cpp: Borland C++ Builder doesn't like extern int sys_nerr, so I protected against it. * ace/OS.cpp: A couple of hacks to handle FILETIMEs and SYSTEM_INFO structs, which are defined a little different under Borland C++ Builder. * ace/OS.h: Added support for Borland C++ Builder. * ace/OS.i: Borland C++ Builder handles a few functions differently: close, SetFilePointer, wfdopen. * ace/Synch_T.h: A comment on an #else spanned several lines and mixed // and /**/ styles; hard to read. * ace/TTY_IO.cpp: A switch was not properly indented and, as a result, had an extra break that made Borland C++ Builder complain. * ace/WFMO_Reactor.cpp: Got rid of a couple of unused local variables called result. * ace/config-win32-common.h: Added a few defines for Borland C++ Builder. Don't know if this is the proper way to do it, but there it is. * tests/Aio_Platform_Test.bpr: * tests/Atomic_Op_Test.bpr: * tests/Barrier_Test.bpr: * tests/Basic_Types_Test.bpr: * tests/Buffer_Stream_Test.bpr: * tests/Conn_Test.bpr: * tests/Enum_Interfaces_Test.bpr: * tests/Env_Value_Test.bpr: * tests/Future_Test.bpr: * tests/Handle_Set_Test.bpr: * tests/Hash_Map_Manager_Test.bpr: * tests/IOStream_Test.bpr: * tests/MM_Shared_Memory_Test.bpr: * tests/MT_Reactor_Timer_Test.bpr: * tests/MT_SOCK_Test.bpr: * tests/Map_Manager_Test.bpr: * tests/Mem_Map_Test.bpr: * tests/Message_Block_Test.bpr: * tests/Message_Queue_Notifications_Test.bpr: * tests/Message_Queue_Test.bpr: * tests/Naming_Test.bpr: * tests/Notify_Performance_Test.bpr: * tests/OrdMultiSet_Test.bpr: * tests/Pipe_Test.bpr: * tests/Priority_Buffer_Test.bpr: * tests/Priority_Reactor_Test.bpr: * tests/Priority_Task_Test.bpr: * tests/Process_Mutex_Test.bpr: * tests/Process_Strategy_Test.bpr: * tests/Reactor_Exceptions_Test.bpr: * tests/Reactor_Notify_Test.bpr: * tests/Reactor_Performance_Test.bpr: * tests/Reactor_Timer_Test.bpr: * tests/Reactors_Test.bpr: * tests/Reader_Writer_Test.bpr: * tests/Recursive_Mutex_Test.bpr: * tests/SOCK_Connector_Test.bpr: * tests/SOCK_Test.bpr: * tests/SPIPE_Test.bpr: * tests/SString_Test.bpr: * tests/SV_Shared_Memory_Test.bpr: * tests/Semaphore_Test.bpr: * tests/Service_Config_Test.bpr: * tests/Sigset_Ops_Test.bpr: * tests/Simple_Message_Block_Test.bpr: * tests/TSS_Test.bpr: * tests/Task_Test.bpr: * tests/Thread_Manager_Test.bpr: * tests/Thread_Mutex_Test.bpr: * tests/Thread_Pool_Test.bpr: * tests/Time_Service_Test.bpr: * tests/Time_Value_Test.bpr: * tests/Timer_Queue_Test.bpr: * tests/Tokens_Test.bpr: * tests/UPIPE_SAP_Test.bpr: * tests/tests.bpg: Added these Borland C++ Builder project files. * tests/Aio_Platform_Test.cpp: * tests/Atomic_Op_Test.cpp: * tests/Barrier_Test.cpp: * tests/Basic_Types_Test.cpp: * tests/Buffer_Stream_Test.cpp: * tests/Enum_Interfaces_Test.cpp: * tests/Env_Value_Test.cpp: * tests/Future_Test.cpp: * tests/Handle_Set_Test.cpp: * tests/Hash_Map_Manager_Test.cpp: * tests/IOStream_Test.cpp: * tests/MM_Shared_Memory_Test.cpp: * tests/MT_Reactor_Timer_Test.cpp: * tests/MT_SOCK_Test.cpp: * tests/Map_Manager_Test.cpp: * tests/Mem_Map_Test.cpp: * tests/Message_Block_Test.cpp: * tests/Message_Queue_Notifications_Test.cpp: * tests/Message_Queue_Test.cpp: * tests/Naming_Test.cpp: * tests/Notify_Performance_Test.cpp: * tests/OrdMultiSet_Test.cpp: * tests/Pipe_Test.cpp: * tests/Priority_Buffer_Test.cpp: * tests/Priority_Reactor_Test.cpp: * tests/Priority_Task_Test.cpp: * tests/Process_Mutex_Test.cpp: * tests/Process_Strategy_Test.cpp: * tests/Reactor_Exceptions_Test.cpp: * tests/Reactor_Notify_Test.cpp: * tests/Reactor_Performance_Test.cpp: * tests/Reactor_Timer_Test.cpp: * tests/Reactors_Test.cpp: * tests/Reader_Writer_Test.cpp: * tests/Recursive_Mutex_Test.cpp: * tests/SOCK_Connector_Test.cpp: * tests/SOCK_Test.cpp: * tests/SPIPE_Test.cpp: * tests/SString_Test.cpp: * tests/SV_Shared_Memory_Test.cpp: * tests/Semaphore_Test.cpp: * tests/Service_Config_Test.cpp: * tests/Sigset_Ops_Test.cpp: * tests/Simple_Message_Block_Test.cpp: * tests/TSS_Test.cpp: * tests/Task_Test.cpp: * tests/Thread_Manager_Test.cpp: * tests/Thread_Mutex_Test.cpp: * tests/Thread_Pool_Test.cpp: * tests/Time_Service_Test.cpp: * tests/Time_Value_Test.cpp: * tests/Timer_Queue_Test.cpp: * tests/Tokens_Test.cpp: * tests/UPIPE_SAP_Test.cpp: Added the Borland non-sense to allow the tests to link against the ACE library under Borland C++ Builder. Major pain in the rear end... * tests/test_config.h: Added a couple of includes for the case of Borland C++ Builder. * tests/Hash_Map_Manager_Test.cpp: Changed variable name allocator to alloc, to avoid conflicts with STL allocators under Borland C++ Builder. * tests/Reactors_Test.cpp: Changed variable name tm to thr_mgr, to avoid conflicts with std::tm under Borland C++ Builder. * tests/Tokens_Test.cpp: * tests/UPIPE_SAP_Test.cpp: Added a few explicit template instantiations. Sun Jun 07 09:51:02 1998 David L. Levine * ace/Timeprobe_T.cpp: added #include of ace/Timeprobe.h. It wouldn't compile on GreenHills without it. * STL/bool.h: only #define bool, etc., if _MSC_VER is #defined. Thanks to Stanley Leeson for reporting this. * tests/Timeprobe_Test.cpp: added #include of ace/Timeprobe.cpp to pick up template instantiations, if ACE_COMPILE_TIMEPROBES was not defined. This allows the test to build on platforms that have explicit template instantiation when libACE was built without timeprobes enabled. Sun Jun 7 01:06:12 1998 Douglas C. Schmidt * ace/config-freebsd-pthread.h: Added the ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS flag to work around problems with pthreads on FreeBSD. Thanks to Amancio Hasty for reporting this. Sat Jun 6 22:00:54 1998 Douglas C. Schmidt * ace/Message_Queue.cpp: Added code so that advance() is more thread-safe. * apps/gperf/src/Options.cpp (operator): Changed ACE_OS::exit() to ACE_OS::_exit() so we'll leave no trace... * apps/gperf/src/Key_List.cpp (output_switch): Fixed another bug where strcmp() should be generated instead of strncmp(). * apps/gperf/src: We no longer call the inline option "GNU" but now call it "INLINE". * apps/gperf/src/{Options.h,Key_List.cpp,Gen_Perf.cpp}: Revised the LARGE_STACK_ARRAY code so that it only gets compiled if we're using GCC. * apps/gperf/src/Key_List.cpp (output_switch): Fixed a bug where strcmp() was being used instead of strncmp(). Thanks to C++ for finding this! * apps/gperf/src/Key_List.cpp: Removed all uses of "register" since C++ compilers can do this automagically... * apps/gperf/tests/test.cpp (main): Modified the test program to use C++ rather than C (ugh!). * ace: Added two new files: Timeprobe_T.h and Timeprobe_T.cpp in order to solve problems with multiply defined symbols. Thanks to Brian Mendel, David Levine, and Irfan for tracing this down. Sat Jun 6 19:10:54 1998 Sergio Flores * ace/config-vxworks5.x.h: changes the default thread priority from 6 to 101. Sat Jun 06 16:43:01 1998 David L. Levine * ace/Timeprobe.cpp (dtor): inserted missing "[]" in delete of array. Fri Jun 5 11:53:18 1998 Darrell Brunsch * ace/Log_Msg.{h,cpp}: Added enable_debug_messages() to do the opposite of disable_debug_messages(). * ace/Parse_Node.cpp: Got rid of all the checks of the Service Configurator's debug flag. Instead, the checking will occur in the Service Configurator. * ace/Service_Config.cpp: Added to Stephen Coy's changes so that debug messages are turned back on after the Service Configurator is done. That way, other code can still use debug messages. Thu Jun 4 12:25:48 1998 Rajiv C. Gandhi * apps/gperf/src/Options.h: removing the option to stack allocate some large arrays as CC does not seem to like it. * apps/gperf/src/Key_List.cpp (output_lookup_array): removing the option to stack allocate some large arrays as CC does not seem to like it. * apps/gperf/src/Gen_Perf.cpp: removing the option to stack allocate some large arrays as CC does not seem to like it. Thu Jun 04 05:03:09 1998 Douglas C. Schmidt * ACE version 4.5.10 released. Wed Jun 3 02:24:47 1998 Nanbor Wang * ace/config-win32-common.h: Instead of defining _MT for users if it's not defined, spit out an error message and stop the compilation. Thanks to Barney Dalton for suggesting this. Tue Jun 02 20:03:51 1998 Steve Huston * ace/config-hpux-1[01].x-hpc++.h: Added ACE_HAS_USING_KEYWORD for aC++ on both platforms. Tue Jun 02 12:19:29 1998 Nanbor Wang * ace/Thread_Manager.cpp (wait_grp,wait_task): These two were still copying thread_descriptors and deleting the copies directly. This corrupted the cached thread_descriptor. Changing them to use Thread_Descriptor_Base solved the problem. Thanks to Zoran Ivanovic for finding this. Tue Jun 02 08:29:20 1998 David L. Levine * include/makeinclude/wrapper_macros.GNU,ACE-INSTALL.html: moved probe=1 support from individual Makefiles to wrapper_macros.GNU. Tue Jun 02 08:09:41 1998 Steve Huston * ace/config-aix-4.1.x.h: Removed ACE_HAS_THREAD_SELF. It was causing compile failure. Thanks to Lee Nash for helping to work this out. Mon Jun 01 16:19:52 1998 Steve Huston * examples/Reactor/Dgram/Dgram.mdp, Dgram.mak: Added these files to build the examples with MSVC 4.2. Mon Jun 01 13:01:14 1998 Irfan Pyarali * examples/Reactor/Dgram/Dgram.cpp (run_test): Because of the delayed de-registration in WFMO_Reactor, WFMO_Reactor was trying to call handle_close on the Event Handler after it was destroyed. Solution: dynamically created the Event Handler and call "delete this" in handle_close. The other alternative was to call remove_handler with the DONT_CALL flag and to close the socket in the Event Handler's destructor. * ace/Timeprobe: The vxworks compiler is lame as it cannot handle operator placement new for arrays. Therefore, ACE_Allocator was removed in favor of regular new and delete. Mon Jun 01 09:54:51 1998 David L. Levine * tests/Timeprobe_Test.cpp: removed trailing ; from template instantation pragmas. * tests/Conn_Test.cpp,MM_Shared_Memory_Test.cpp, Priority_Reactor_Test.cpp,SOCK_Test.cpp: replaced !defined (ACE_WIN32) && !defined (VXWORKS) with !defined (ACE_LACKS_FORK). Sun May 31 23:05:10 1998 David L. Levine * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU: added repo=1 make option support. It only helps when building ACE applications. ACE and TAO still use explicit instantiation when building their libraries, because it's easiest to avoid link collisions that way. And it already works. Sun May 31 18:31:24 1998 James C Hu * ace/RB_Tree.i: * ace/RB_Tree.cpp: Changes suggested by Sergio to make it work with older version of GCC. Referred to RB_Tree_Node_Color through the parent class RB_Tree_Node_Base. Sat May 30 13:14:18 1998 James C Hu * ace/RB_Tree.h: Try to put enum into a class again. This time, created a dummy base class to hold the RED and BLACK enums. Sat May 30 08:01:31 1998 David L. Levine * ace/RB_Tree.h (RB_Tree_Iterator::operator =): Added explicit return type to the declaration. Wrapped with ACE_UNIMPLEMENTED_FUNC. Fri May 29 23:06:02 1998 David L. Levine * ace/RB_Tree.{h,i}: moved enum RB_Tree_Node_Color out of the (template) class declaration because g++ 2.7.2.3 couldn't find it there. * ace/Thread_Manager.cpp (remove_thr, VxWorks only): added [] to delete of tid array. Thanks to Arturo Montes for reporting this. * ace/RB_Tree.h (RB_Tree_Iterator::operator =): added explicit return type to the declaration. Wrapped with ACE_UNIMPLEMENTED_FUNC. Fri May 29 21:59:01 1998 James C Hu * RB_Tree.h: * RB_Tree.i: * RB_Tree.cpp: Debugged some minor typo errors, and changes related to internalizing the RED and BLACK enums. Fri May 29 21:55:11 1998 David L. Levine * ace/High_Res_Timer.cpp: don't use ACE_HAS_PENTIUM code on Solaris (ACE_HAS_HI_RES_TIMER) because it uses ::gethrtime (). (dump): on Solaris, print 64-bit ints with %llu format. Other platforms may need that, also. * ace/Makefile: replaced .o with $(OBJEXT) in gethrtime.o target, so that make depend doesn't munge it. * ace/OS.h: only use the null versions of the ACE_DES_FREE_TEMPLATE* macros with LynxOS 3.0.0. * include/makeinclude/platform_lynxos.GNU: commented out -Winline, because it complains too much with -O2, and that's now the default. Fri May 29 17:52:37 1998 Douglas C. Schmidt * ACE version 4.5.9 released. Fri May 29 16:19:34 1998 Douglas C. Schmidt * ace/Synch_T.h (class ACE_Guard): ACE_Guard's destructor was changing the errno value. Fixed this to avoid doing so... Thanks to Arturo Montes for reporting this. Fri May 29 15:33:41 1998 David L. Levine * performance-tests/Misc/context_switch_time.cpp: added Synchronized Suspend-Resume Test. Fri May 29 14:46:49 1998 James C Hu * ace/Makefile * ace/RB_Tree.h * ace/RB_Tree.cpp: Added changes to RB_Tree to enable overloading of the comparison method. Added class RB_Tree to the UNIX Makefile. * ace/OS.cpp: Added some minor fixes to the difftime implementation. * ace/OS.cpp: * ace/OS.i: * ace/README: * ace/config-sunos4*: Added ACE_LACKS_DIFFTIME macro because SunOS4 does not support the Standard C difftime function. Added a difftime implementation for when such is the case. Fri May 29 08:22:36 1998 Steve Huston * ace/Log_Msg.cpp, Trace.cpp: Changed decision for order-of-include/inline from ACE_WIN32 to ACE_HAS_ONE_DEFINITION_RULE. This completes the changes needed to be able to use the newer versions of HP aC++. * ace/config-win32.h: Set ACE_HAS_ONE_DEFINITION_RULE. Thu May 28 16:17:41 1998 Steve Huston * ace/README: Added ACE_HAS_ONE_DEFINITION_RULE. * ace/config-hpux-10.x-hpc++.h: * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_ONE_DEFINITION_RULE for aC++. This is part of a set of changes to make ACE work with HP aC++ A.01.09 (10.20) and A.03.05 (11.00). The other changes are being tested still. Thanks _very_ much to Steve Coy for digging through this with HP and working out a solution! Thu May 28 15:55:48 1998 Douglas C. Schmidt * Added new configuration files for SCO. Thanks to Arturo for this. Thu May 28 13:57:50 1998 David L. Levine * ace/Filecache.cpp: removed redundant template instantiations. * ace/config-lynxos.cpp: added undef ACE_HAS_TEMPLATE_SPECIALIZATION for LynxOS 3.0.0. * ace/Hash_Map_Manager.cpp,Map_Manager.cpp: replaced bare explicit destructor calls with ACE_DES_FREE_TEMPLATE{,2} macro invocations. * ace/OS.h: #define ACE_DES_FREE_TEMPLATE to be null on LynxOS. Without it, the g++ that's distributed with LynxOS 3.0.0 hopelessly chokes on explicit calls to template class destructors. This hack could cause memory leaks, though currently ACE_DES_FREE_TEMPLATE is only used to call empty, non-virtual destructors (in Containers.cpp, Hash_Map_Manager.cpp, and Map_Manager.cpp). Also, added ACE_DES_FREE_TEMPLATE2 macro for use with two template arguments. There's got to be a better way. * include/makeinclude/platform_lynxos.GNU: added LynxOS Version 3.0.0 support. It's optional at this point: add VERSION=3.0.0 to your make invocation to enable. Disabled -Wall with LynxOS 3.0.0. Enabled optimization. Thu May 28 07:47:41 1998 Steve Huston * tests/SOCK_Connector_Test.cpp: Changed the "should succeed" test from port 25 (smtp) to 7 (echo) to try and get a higher success rate. Thanks to David Levine for this suggestion. Wed May 27 13:45:24 1998 Steve Huston * ace/ACE.cpp (handle_timed_complete): Fixed problem where successful connect was being reported as a failure (P90). * tests/SOCK_Connector_Test.cpp: Added a test for a successful non-blocking connect (tests fix from above). Wed May 27 07:04:42 1998 David L. Levine * ace/Service_Config.cpp: default debug_ to 1 instead of 0. And the -d option now disables debug messages, instead of enabling them. Thanks to Irfan for reporting that LM_DEBUG messages were lost without this fix. * ace/High_Res_Timer (calibrate): added calibrate () method to calculate the global scale factor on Pentiums. It's called by the constructor for the first instantiation in a process. (On WIN32, get_registry_scale_factor () is called instead of calibrate ().) * ace/Stats.cpp (sample): continue aggregating data even if there is overflow. This allows, e.g., a mean to be calculated even if the standard deviation calculation overflow. * performance-tests/Misc/context_switch_time.cpp: don't run the Yield_Test on VxWorks because it takes too long. * ace/High_Res_Timer.*: moved calibration from constructor to global_scale_factor () accessor. * ace/Timeprobe.cpp: no longer need to explicitly calibrate the High_Res_Timer. Tue May 26 22:25:18 1998 Stephen Coy * ace/Log_Msg.{h,cpp},Service_Config.cpp: added support for -d in Service_Config files to enable/disable LM_DEBUG messages. Tue May 26 14:53:21 1998 Steve Huston * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed use of uninitialized variable, nr_subscribed. Thanks to Nanbor for finding this. Tue May 26 13:39:21 1998 Carlos O'Ryan * ace/Timeprobe.cpp: * tests/Timeprobe_Test.cpp: Now egcs and Sun/CC are happy with this files. Tue May 26 00:35:49 1998 Irfan Pyarali * tests/Timeprobe_Test.cpp: Added new test. * ace/Timeprobe: Added the ability to have multiple event tables for time probes. Multiple maps can be used to chunk up the time probes. Each one can be added by calling event_descriptions(). Different tables are used internally by consulting the minimum_id for each table. It is up to the user to make sure that multiple tables do not share the same event id range. Sat May 23 21:52:49 1998 Carlos O'Ryan * ace/Message_Block.h: * ace/Message_Block.i: The rd_ptr() and wr_ptr() are const methods now. Sat May 23 00:18:58 1998 Nanbor Wang * ace/ace_ce_dll.dsp: Updated settings for MIPS CPU. * tests/WinCE/*.dsp: Updated settings for MIPS CPU. Fri May 22 16:00:03 1998 Douglas C. Schmidt * tests/MT_SOCK_Test.cpp (spawn): We must check for !defined (ACE_LACKS_FORK) rather test for VxWorks or Win32. Thanks to Steven Coy for reporting this. Fri May 22 20:01:40 1998 David L. Levine * ace/OS.h: moved ACE_IO_Vector declaration ahead of OS.i #include. * ace/OS.i (ACE_IO_Vector::buffer): added static cast of new_buffer to char *. * ace/OS.i (writev): changed return type from int to ssize_t to match declaration in OS.h. Fri May 22 12:20:11 1998 Irfan Pyarali * ace: Other parts of ACE were modified to use the new ACE_IO_Vector class. * ace/OS.h (ACE_IO_Vector): Added a new class that inherits from the correct IO_Vector class provided by the platform. writev() and readv() were being emulated on Win32 in ACE. A new ACE_OS::writev() and ACE_OS::readv() has been added to ACE that uses WSASend() and WSARecv() respectively. However, in order for you to exploit these new functions, you must use ACE_IO_Vector instead of iovec. The ideal situation would have been to totally replace iovec with ACE_IO_Vector but that would break too much code. So, if you keep using iovec, you will use the expenses and slow emulations. If you want to use WSASend() and WSARecv(), switch over to ACE_IO_Vector. It will work on both Win32 and non-Win32 platforms. Fri May 22 07:53:03 1998 David L. Levine * ace/config-linux-pthread.h: removed two ACE_LACKS_CONDATTR_PSHARED #defines. That leaves just one, that's commented out. * performance-tests/Misc/context_switch_time.cpp: create all threads as detached so they don't have to be joined. They test was using up resources on LynxOS, if a high -c option was used, without this change. * ace/config-sunos5.5-{g++,sunc++-4.x}.h,config-sunos5.5.h: merged config-sunos5.5-g++.h and config-sunos5.5-sunc++-4.x.h into config-sunos5.5.h. That new file should be maintained for both compilers from now on. The old files have been retained for backward compatibility. The just #include config-sunos5.5.h. * ace/config-sunos5.6.h: #include config-sunos5.5.h instead of the separate Sun C++ and g++ configs. * include/makeinclude/platform_sunos5_sunc++.GNU: updated comment to reflect change to config-sunos5.5.h. Fri May 22 07:30:23 1998 David L. Levine * ACE version 4.5.8 released. Fri May 22 07:26:06 1998 David L. Levine * ace/Stats.cpp: added some casts to avoid MSVC++ warnings about narrowing. * ace/config-osf1-4.0.h: removed commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED. Fri May 22 00:09:15 1998 Nanbor Wang * ace/Local_Tokens.{h,cpp} (ACE_Null_Token): Only defined default ctor/dtor explicitly when ACE_LACKS_INLINE_FUNCTIONS. * ace/Stats.cpp: Defined ACE_BUILD_DLL at the beginning. Win32 needs to define ULONGLONG literals as 999ui64. This is the only place that uses i64 literals. Thu May 21 21:55:09 1998 David L. Levine * ACE version 4.5.7 released. Thu May 21 17:36:37 1998 David L. Levine * ace/config-sunos5.6.h: added support for POSIX 199506 extensions. Thanks to J. Russell Noseworthy for providing this support. * ace/Local_Tokens.{h,i}: inlined ACE_Null_Token ctor and dtor in class header because the clone () method needs the ctor inlined, and it's too difficult to get it right with macros. * tests/SString_Test.cpp (main): added ACE_ASSERT with s4 in it, because it was unused otherwise. * performance-tests/Synch-Benchmarks/Options.cpp (print_results): changed #else to #elif, because it has a condition after it. Thu May 21 15:28:07 1998 Nanbor Wang * tests/test_config.h: Modified to write output from tests into log file. Notice that log files on CE have extension name ".txt" instead of ".log". * ace/OS.i (strrchr): Added UNICODE version of this function. * ace/Log_Record.{h,cpp}: Generalized message formatting on CE by adding a new method format_msg(). * ace/Reactor_Impl.h: Removed an extra comma. * ace/XtReactor.cpp: Include "ace/Reactor.h" * tests/Recursive_Mutex_Test.cpp: * tests/Future.cpp: Removed iteration restriction on CE. Thu May 21 12:13:36 1998 Nanbor Wang * ace/ace_{dll,lib}.dsp: Added Stats.cpp into projects. Wed May 20 23:02:41 1998 Steve Huston * ace/SOCK_Dgram_Mcast.cpp (subscribe): On Win32, if ACE::get_ip_interfaces finds less than 2 interfaces, call subscribe with "0.0.0.0". This is sort of a hack and is meant only to help get things working again until ACE::get_ip_interfaces can be made to work correctly in all cases. Wed May 20 10:42:12 1998 David L. Levine * ace/config-mvs.h: enabled ACE_LACKS_CONDATTR_PSHARED and ACE_LACKS_MUTEXATTR_PSHARED. Thanks to Chuck Gehr for advising on this. * ace/config-linux-lxpthreads.h,config-lynxos.h: removed commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED #defines. * ace/config-sunos5.5-{sunc++-4.x,g++}.h: removed commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED. Enabled ACE_HAS_CLOCK_GETTIME, because we always link with -lposix4. Thanks to J. Russell Noseworthy for inspiring the ACE_HAS_CLOCK_GETTIME enable. * ace/config-osf1-4.0.h: removed uncommented ACE_LACKS_CONDATTR_PSHARED, so that we can test whether it's necessary. * ace/Stats.*,Makefile: added ACE_Stats class. * performance-tests/Misc/context_switch_time.cpp: use ACE_Stats to calculate standard deviations. Tue May 19 21:24:50 1998 Nanbor Wang * tests/Future_Test.cpp: Reduced the number of iterations on CE. * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile on non-threaded platforms. Tue May 19 10:05:07 1998 Irfan Pyarali * ace/SString.cpp (strlen): Renamed ACE_WString::wstrlen to ACE_WString::strlen. * ace/SString.i: Reordered functions to make g++ happy. * ace/ACE.cpp (hash_pjw): Changed ACE_OS::strlen to ACE_WString::strlen. Tue May 19 09:52:08 1998 Carlos O'Ryan * ace/config-irix6.x-g++.h: * ace/config-irix6.x-sgic++-nothreads.h: * ace/config-irix6.x-sgic++.h: Added ACE_LACKS_MUTEXATTR_PSHARED Mon May 18 16:37:36 1998 Irfan Pyarali * ace/SString.h (ACE_CString): Added the ability to hold on to user supplied character strings without having to make a copy. * ace/OS.h (ACE_OS): Added implementations for strrchr, strnchr, strnstr, and strstr. * ace/ACE.cpp (hash_pjw): Added new versions of these that work with user specified string length. Mon May 18 12:24:40 1998 Douglas C. Schmidt * ace/config-*.h: Commented out most of the ACE_LACKS_CONDATTR_PSHARED so we can see what platforms really DON'T support this... * ace/OS.i (mutex_init): Added support for pthread_mutexattr_setpshared() so we can initialize POSIX pthreads process-wide mutexes. Thanks to Ki-hyun Yoon for suggesting this. * ace/config-sunos5.6.h: Added an #define for ACE_THREAD_POSIX_SEM. Thanks to Ki-hyun Yoon for reporting this. * ace/config-sunos5*.h: Removed the ACE_LACKS_RWLOCK_T stuff since it's unnecessary. Thanks to Chris Lahey for reminding me of this... Mon May 18 13:48:14 1998 Nanbor Wang * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile on non-threaded platforms. Mon May 18 12:31:32 1998 Darrell Brunsch * ace/Service_Config.{h,i,cpp}: Added an accessor debug() for external access to the variable. More debug messages check this before displaying. * ace/Parse_Node.cpp: Checks Service_Config's debug flag before outputting debug messages. Sun May 17 23:14:32 1998 Nanbor Wang * tests/Wince/*.dsp: Disabled precompiled headers. They ate up all my disk space. * ace/Service_Config.cpp: takes a string of type ASYS_TCHAR. Use ACE_WIDE_STRING to do the conversion. * ace/Log_Msg.{h,cpp} (ACE_ASSERT): Use unicode in ACE_ASSERT. (log): Don't exit the program for now. Exiting program here destroys all debugging message in the window. * tests/Reader_Writer_Test.cpp: Reduced the number of iterations on WinCE. * ace/OS.i: Added ACE_OS::time () implementation for CE. Sun May 17 21:45:07 1998 David L. Levine * performance-tests/Misc/childbirth_time.cpp: changed type of MULTIPLY_FACTOR from int to size_t to avoid signed/unsigned comparison. * tests/Tokens_Test.cpp: synchronize start of thread svc () routines. Occasionally, the first thread would finish before any others had started. The TSS objects would get cleaned up. Then, the remaining threads would start up and make a big mess. Sat May 16 15:10:46 1998 Douglas C. Schmidt * ace/Service_Config.h (ACE_Service_Config): Moved the process_directive() into the public part of the class so this can be called by applications one the Service Configurator is open. Thanks to Tom Arbuckle for suggesting this. Sat May 16 14:12:09 1998 Nanbor Wang * ace/Thread_Manager.{h,i,cpp} (class ACE_Thread_Descriptor_Base): Extract thread handle and thread creation flags out from Thread_Descriptor into this new class. This is necessary because after my last round of changes to improve ACE_Thread_Manager, I changed the from holding Thread_Descriptor's to holding pointers to descriptor. This was a bad move because the address of these pointers had already been "freed." The now holds ACE_Thread_Descriptor_Base which contains only the information needed for manipulating . Thanks to Arturo for noticing this. Sat May 16 03:23:35 1998 Nanbor Wang * performance-tests/Misc/childbirth_time.cpp (main): Added a new function to test the performance of ACE_Thread_Mutex in single thread _without_ any contention. Fri May 15 22:55:51 1998 Nanbor Wang * tests/Recursive_Mutex_Test.cpp: Only iterate the test 50 times on CE as on Chorus. Otherwise, as I'm using a CEdit to hold the test output, CEdit would overflow. * ace/OS.i (thr_getspecific): Don't check for return value of TlsGetValue on CE because CE doesn't seem to set the LastError correspondingly. (strchr): Added implementation on CE. * Added Activation_Queue.i and Strategies.i. * Combed thru all these files and added difinitions for ctor/dtor for a bunch of classes explicitly. CE needs them. Activation_Queue.cpp Activation_Queue.h Dynamic.h Dynamic.i Event_Handler.h Event_Handler.i Get_Opt.h Get_Opt.i Handle_Set.h Handle_Set.i High_Res_Timer.h High_Res_Timer.i INET_Addr.h INET_Addr.i IO_SAP.h IO_SAP.i IPC_SAP.h IPC_SAP.i Local_Tokens.h Local_Tokens.i Log_Record.h Log_Record.i Malloc.h Malloc.i OS.h OS.i Obstack.cpp Obstack.h Obstack.i Parse_Node.h Parse_Node.i Pipe.h Pipe.i Process_Manager.h Process_Manager.i SOCK.h SOCK.i SOCK_Acceptor.cpp SOCK_Acceptor.h SOCK_Acceptor.i SOCK_CODgram.h SOCK_CODgram.i SOCK_Connector.h SOCK_Connector.i SOCK_Dgram.h SOCK_Dgram.i SOCK_Dgram_Bcast.h SOCK_Dgram_Bcast.i SOCK_Dgram_Mcast.h SOCK_Dgram_Mcast.i SOCK_IO.h SOCK_IO.i SOCK_Stream.h SOCK_Stream.i SString.h SString.i Sched_Params.h Sched_Params.i Select_Reactor.h Select_Reactor.i Service_Manager.h Service_Manager.i Service_Repository.h Service_Repository.i Service_Types.h Service_Types.i Shared_Object.h Shared_Object.i Signal.h Signal.i Strategies.cpp Strategies.h Strategies.i Strategies_T.cpp Strategies_T.h Synch.cpp Synch.h Synch.i Synch_Options.cpp Synch_Options.h Synch_Options.i Timer_Heap_T.cpp Timer_Heap_T.h Timer_List_T.cpp Timer_List_T.h Timer_Queue_T.cpp Timer_Queue_T.h Timer_Wheel_T.cpp Timer_Wheel_T.h. Fri May 15 16:55:34 1998 Douglas C. Schmidt * ace/config-sunos5*.h: Automatically enable ACE_LACKS_RWLOCK_T if we're NOT using Solaris threads (since pthreads doesn't support readers/writer locks). * ace/Service_Config.cpp: Removed a duplicate template instantiation of template class ACE_Unbounded_Queue_Iterator. Thanks to Ben Eng for reporting this. * ace/OS: Fixed a number of problems that occurred when trying to use the PTHREAD implementation on Solaris without using ACE_HAS_STHREADS. The problems related primarily to the ACE_OS::rw*() functions. To fix the problems, the following changes were made. Remove the #if defined (ACE_HAS_STHREADS) from the case where we have the native rw*() functions. We just use the ACE_LACKS_RWLOCK_T compile flag to determine whether we have the native functions. Without the ACE_HAS_STHREAD flag, ACE_rwlock_t comes up undefined. To fix this, moved the definition at approx. line 1868 above the #else at approx. line 1865 as the following: #if ! defined (ACE_LACKS_RWLOCK_T) #include typedef rwlock_t ACE_rwlock_t; #endif // ! ACE_LACKS_RWLOCK_T Finally, the ACE_idtype_t type was also undefined. To fix this, moved the typedef from within the #if defined (ACE_HAS_STHREADS) || defined (DIGITAL_UNIX) block and create a new ifdef block: #if defined (ACE_HAS_IDTYPE_T) typedef idtype_t ACE_idtype_t; #else typedef int ACE_idtype_t; #endif Thanks to Chris Lahey for his through help at recognizing and fixing these problems. Fri May 15 09:38:37 1998 David L. Levine * bin/make_release: redirect cvs tag output to /dev/null. * performance-tests/Misc/context_switch_time (main): fixed printout of yield test time for other than the default number of iterations. Fri May 15 09:29:57 1998 David L. Levine * ACE version 4.5.6 released. Fri May 15 08:25:19 1998 David L. Levine * ace/Service_Config.cpp: fixed and added template instantations. * ace/Svc_Conf_y.cpp,etc/Svc_Conf_y.cpp.diff: removed compile warnings. * include/makeinclude/platform_sunos5_g++.GNU: use PIC instead of pic, because the TAO orbsvcs lib needs it. * Makefile: added .PHONY for phony targets. Fri May 15 02:47:35 1998 Douglas C. Schmidt * ACE version 4.5.5 released. Fri May 15 02:42:06 1998 Douglas C. Schmidt * ACE version 4.5.4 released. Thu May 14 15:28:42 1998 Douglas C. Schmidt * ace/config-kcc-common.h: Added the ACE_HAS_USING_KEYWORD to the config file. Thanks to Ben Eng for reporting this. * examples/Service_Configurator/Misc: Updated the Timer_Service test to demonstrate the new service configurator feature. It's AWESOME! * ace/Svc_Conf.h, ace/Svc_Conf.l: Added a super-cool new feature that allows us to parse service configurator directives from a string rather than from a svc.conf file. * ace/Svc_Conf.l (yywrap): Free up ace_yy_current_buffer in yywrap to prevent a memory leak. Thanks to Paul Motuzenko for reporting this. * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Enhanced the implementation to make it easier to follow and to support the latest features of CPP-inclient.cpp. * ace/OS.h (ACE_OS): Added a wrapper for strcspn(3s). * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: Added more cool changes to the CPP-inserver.cpp example and renamed it. Thu May 14 14:46:02 1998 Irfan Pyarali * ace/OS.h: Moved the definition of ACE_Export before it is used. Thu May 14 13:22:46 1998 Carlos O'Ryan * ace/Message_Block.h: * ace/Message_Block.cpp: The static duplicate() method can take pointer to a const Message_Block. Wed May 13 18:46:28 1998 Douglas C. Schmidt * examples/IPC_SAP/SOCK_SAP/CPP-{inserver,inclient}.cpp: Added profile timing to the server so we can compute socket performance metrics. Also generalized the tests so we can experiment with both oneway and twoway calls. Wed May 13 19:20:27 1998 James C Hu * ace/OS.h: * ace/OS.i: * ace/OS.cpp: Added a substitute gets implementation for when ACE_LACKS_GETS. The substitute is actually safer than gets, so I may end up making gets call the new routine instead of Standard C's. * ace/config-g++-common.h: Changed the g++ common file so that 2.8.1 acts like EGCS does. This worked on Solaris 2.5.1. We'll see how other's fare. Wed May 13 18:13:12 1998 Douglas C. Schmidt * ACE version 4.5.3 released. Wed May 13 11:29:56 1998 Nanbor Wang * performance-tests/Synch-Benchmarks/Options.cpp (print_results): My previous change to add print_results functionality when ACE_HAS_GETRUSAGE broke this on Win32. * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): Made this macro defined for all versions of g++. Wed May 13 09:26:48 1998 David L. Levine * many *.{h,i,cpp,idl} files: inserted RCS keyword string. Wed May 13 00:35:25 1998 Irfan Pyarali * ace: Added ACE_Export to a bunch of class in ACE. Thanks to Gonzalo A. Diethelm (gonzo@ing.puc.cl) for pointing this out. Tue May 12 15:16:04 1998 Nanbor Wang * ace/config-WinCE.h: * ace/OS.h: Stopped using non-static object manager for CE. This is causing some problem at process shutdown. * ace/Acceptor.cpp: Made CE friendly. * ace/Process.cpp ([~]ACE_Process_Options): Moved things around to avoid compilation errors on CE. Secret: CE doesn't have environment variables. Tue May 12 13:28:05 1998 Carlos O'Ryan * ace/OS.h: The ACE_INLINE_FOR_GNUC macro must be defined (as the null token) if ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTION is not defined. Tue May 12 12:30:55 1998 Nanbor Wang * ace/README: * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS): Added this new macro to get around a bug which only happens in GNUC 2.7.xx. It mistakenly refers to the template definition as the place where a function is used. * ace/OS.h (ACE_INLINE_FOR_GNUC): Added the macro to fix the GNUC bug. * ace/Thread_Manager.h: Added above macro to set_next and get_next. Tue May 12 12:11:36 1998 Bob Laferriere * ace/Process.{h,cpp}: modifications to make the environment buffer and number of environment variables tunable in the constructor. I also fixed a logic error which previously attempted to write beyond an array bounds of the array of pointers into the environment buffer. I made the environment_argv_ buffer tunable as well. The new constructor takes the old hardcoded static sizes as the default dynamic sizes for backwards compatiblity. The behavior is to return -1 if the maximum buffer size or maximum number of environment arguments has been reached in following with the prior behavior. I opted not to make the members grow as needed so the class would still follow it's prior behavior. This would be simple to add, however. Tue May 12 08:29:50 1998 David L. Levine * ace/Malloc.cpp (ACE_Allocator::instance): replaced dynamic allocation of the default ACE_Allocator with allocation from the data segment. Thanks to Ben Eng for providing the stack trace that revealed the problem. * ace/Malloc.h: added comments to not add data members to ACE_Allocator or ACE_New_Allocator. * bin/g++dep: changed PATH to pick up /project/doc/pkg/gnu/bin/g++, and removed GNUG_INCLUDE. Thanks to Ganesh Pai for reporting problems with the old version on Linux. Tue May 12 02:59:27 1998 Nanbor Wang * performance-tests/Misc/childbirth_time.cpp: Added ACE_OS::sleep (0) before all timing sections start. This ensures we own a fresh time slice when the timing begin and reduce the chances of getting preempted Tue May 12 00:42:05 1998 Nanbor Wang * bin/dsp2dsp.pl: This file clones a new MSVC 5.0 dsp file based on setting from another dsp file. It is most useful in adding new project files into tests/. * tests/WinCE/*: New project files. Updated the workspace. Please see CE-status for the current progress. * tests/Buffer_Stream_Test.cpp: * tests/Conn_Test.cpp: * tests/Enum_Interfaces_Test.cpp: * tests/Handle_Set_Test.cpp: * tests/Hash_Map_Manager_Test.cpp: * tests/Message_Block_Test.cpp: * tests/Reactors_Test.cpp: * tests/Thread_Manager_Test.cpp: * tests/Thread_Mutex_Test.cpp: Made CE friendly. * tests/test_config.h: Moved some common definitions shared among CE and other platforms out. * ace/Acceptor.cpp: * ace/Acceptor.h: * ace/Connector.cpp: * ace/Connector.h: * ace/Stream.cpp: * ace/Svc_Handler.cpp: * ace/Svc_Handler.h: * ace/Synch.h: * ace/Synch.i: CE stuff. * ace/config-WinCE.h: Defined ACE_DEFAULT_SERVER_HOST in UNICODE here to overwrite the default setting. * ace/Synch.i (ACE_Lock): CE needs a default ctor here. Mon May 11 15:43:01 1998 Nanbor Wang * tests/WinCE/ce_tests.dsw: * tests/WinCE/Atomic_Op_Test.dsp: * tests/WinCE/Barrier_Test.dsp: * tests/WinCE/Basic_Types_Test.dsp: * tests/WinCE/Map_Manager_Test.dsp: Added/Updated project files. * tests/Atomic_Op_Test.cpp: * tests/Barrier_Test.cpp: * tests/Basic_Types_Test.cpp: Made them CE friendly. * ace/config-WinCE.h: Only define ACE_LACKS_INLINE_FUNCTIONS when building debug version of ACE for SH series CPU. * WindozeCE/WindozeCEDlg.cpp: Updated the initial message after the display window but before ACE console progrm started. Mon May 11 15:43:01 1998 Nanbor Wang * ace/OS.{i,cpp}: Moved CE's impelmentation of ACE_OS::fprintf to cpp file. Mon May 11 15:15:24 1998 Carlos O'Ryan * ace/Thread_Manager.h: Removed bogus ACE_INLINE macros in class declaration, they were making the SGI compiler *very* unhappy. Mon May 11 15:11:11 1998 Nanbor Wang * ace/OS.cpp (ctime_r): Renamed the fmtstr to ACE_OS_CTIME_R_FMTSTR for we may need to use similar scheme to fix other bugs in the future. Mon May 11 14:50:47 CDT 1998 Everett Anderson * ace/Name_Proxy.cpp: Changed one last recv to recv_n. Mon May 11 13:14:22 1998 Chris Gill * ace/RB_Tree.{cpp,h,i}: (new) Red-Black Tree data structure implementation. A Red-Black Tree is an efficient self-balancing binary tree that uses recoloring to minimize rotations while rebalancing on insertion or deletion of a tree node. Items in the tree are stored according to a key provided at insertion. This implementation is an OO rendition of the ADT described in Cormen, Leiserson, Rivest, "Introduction to Algorithms" (c) 1990, MIT. Mon May 11 12:31:41 1998 Steve Huston * ace/OS.h: Made ACE_LD_SEARCH_PATH, ACE_LD_SEARCH_PATH_SEPARATOR_STR, ACE_DLL_PREFIX, ACE_DLL_SUFFIX settable via config.h. * ace/config-hpux-10.x.h: ace/config-hpux11.h: Set ACE_LD_SEARCH_PATH, ACE_DLL_SUFFIX. Thanks to Kirill Rybaltchenko and David Levine for identifying this problem. Mon May 11 12:27:05 1998 David L. Levine * ace/ACE.cpp (send_n): retry if ACE::send () fails due to EWOULDBLOCK. Thanks to Dave Brackman for reporting this. * tests/Env_Value_Test.cpp (main): check return values of options.setenv () calls. Thanks to Bob Laferriere for recommending this. * include/makeinclude/platform_vxworks5.x_ghs.GNU: instead of using GNU ranlib386 after using GHS ax for i386 targets, just use GNU ar386. * ace/gethrtime.cpp: added some comments about GHS asm support. * java/netsvcs/{Logger,Time}/Makefile, java/tests/netsvcs/Logger/Makefile: replaced WRAPPER_ROOT with ACE_ROOT. Mon May 11 05:14:18 1998 Nanbor Wang * ace/config-WinCE.h: Added ACE_HAS_NON_STATIC_OBJECT_MANAGER. CE console programs have to set this flag because the main functions is actually renamed and running in a threads. * tests/test_config.h: Excluded class and macros to redirect debugging messages to files under CE. This make debugging a bit easier but we should eventually put them back under CE. * tests/Map_Manager_Test.cpp: Made CE friendly. * ace/Hash_Map_Manager.cpp: Some ACE_ERROR were not CE friendly. * ace/Profile_Timer.{h,i}: * ace/Synch.{h,i}: Moved inline function definitions to Synch.i file. Windows CE can't grok any inline at all. Mon May 11 02:43:45 1998 Nanbor Wang * performance-tests/Misc/childbirth_time.cpp (main): Added a new method for benchmarking ACE_Thread_Manager::spawn_n. Added other cosmetic changes. Sun May 10 23:20:36 1998 Irfan Pyarali * ace/Token.cpp: Adding more debugging statements. * ace/Asynch_Acceptor.cpp (should_reissue_accept): Added template method that decides whether a new asynchronous accept should be issued. Sun May 10 23:28:57 1998 Nanbor Wang * ace/OS.cpp(inherit_log_msg): * ace/Log_Msg.cpp (thr_desc): Wait on Thread_Descriptor's lock instead of the "global" Thread_Manager lock. * ace/Thread_Manager.cpp: Moved acquire_release() from ACE_Thread_Manager to ACE_Thread_Descriptor. This method is called from ACE_Log_Msg::thr_desc to prevent a thread from using its thread descriptor before it is fully built. The change relieve spwaned threads from waiting for other threads created in the same spwan_n call to be created before it can start running. (insert): Added an extra argument to control whether we want to insert the newly created thread into ACE_Thread_Manager's thread table or not. Notice that it is default to 1 to remain the original behavior in case anyone is using this class/function directly in their code. However, in ACE_Thread_Manager, we always prevent it from inserting because we always register thread descriptors from spawn_i. Sun May 10 01:51:29 1998 Nanbor Wang * ace/OS.h: Renamed ACE_OS::Time_To_The_Beginning to ACE_OS::FILETIME_to_timval_skew. * ace/OS.cpp: Found the problem in ACE_OS::ctime_r. An internal compiler bug (?) caused the bug. The solution: move the format string out as a const string instead of putting it in sprintf directly. Weird. * ace/Log_Record.{h,cpp}: Made priority_name_ and its access function CE friendly. Sat May 9 20:09:13 1998 Nanbor Wang * ace/Thread_Manager.h: Changed the type of lock used by to ACE_SYNCH_MUTEX. Or else, it won't compile on platforms that doesn't support thread. Thanks to Woody Zenfell for reporting this. Fri May 08 22:29:01 1998 Nanbor Wang * ace/SOCK_Dgram_Mcast.cpp (subscribe): CE UNICODE related fix. Fri May 8 14:18:46 1998 Nanbor Wang * ace/Thread_Manager.h (ACE_Thread_Descriptor): Added ACE_INLINE to declarations of set_next and get_next to get around a bug in a version of g++. Fri May 8 11:57:23 1998 Douglas C. Schmidt * ace/Map_Manager.cpp: Fixed a bug where we weren't calling close_i() when resizing the buffer. * ace/Thread_Manager.cpp (set_grp): In ACE_Thread_Manager::{get,set}_grp we must check to see that we have a valid pointer after the ACE_FIND. Otherwise a seg fault occurs. Thanks to Chris Lahey for reporting this. Fri May 08 09:47:50 1998 David L. Levine * ace/config-linux-common.h: only use ACE_HAS_POLL with glibc2. Thanks to Saneyasu for reporting this. * ace/OS.i (sleep): On Linux without ::poll () (prior to glibc), copy the ACE_Time_Value argument because the system modifies it. * include/makeinclude/platform_osf1_4.0.GNU: moved -lm from LIBS to MATHLIB. * performance-tests/UDP/Makefile: added $(MATHLIB) to LDLIBS. * tests/Aio_Platform_Test.cpp (have_asynchio): use _SC_LISTIO_AIO_MAX instead of _SC_AIO_LISTIO_MAX if it's #defined. It is on DU 4.0. Fri May 08 08:43:42 1998 Steve Huston * include/makeinclude/platform_hpux_gcc.GNU: Added $(PIC) to definition of SOFLAGS. Thanks to Kirill Rybaltchenko for this fix. * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added code for Win32 so that if a subscribe is done without specifying an interface, the mcast address is subscribed to on each non-loopback interface. This works around a bug in NT's winsock in the presence of multiple IP interfaces. Won't hurt 95 - will just run a bit slower than it otherwise would. * examples/Reactor/Multicast/Multicast.{mdp,mak}: Added MSVC 4.2 workspace for this example. Fri May 8 03:43:25 1998 Nanbor Wang * ace/Thread_Manager.{h,cpp}: Added yet one more member variable into Thread_Descriptor to keep track of registration of Thread_Descriptors. By adding this variable, we can avoid an extra locking in remove_thr for most cases (normal cases ;-). Thanks to the inspiration from Arturo Montes . Thu May 07 22:06:13 1998 Ben Eng * ace/config-kcc-common.h,config-linux-{common,kcc}.h: updated KCC/Linux support, and integrated into config-linux-common.h. Thu May 7 20:32:20 1998 Douglas C. Schmidt * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp (main): Oops, we need to move the unlink() AFTER we create the file... Thanks to Sandro Doro for reporting this. Thu May 07 19:08:22 1998 Douglas C. Schmidt * ACE version 4.5.2 released. Thu May 7 14:10:41 1998 Carlos O'Ryan * ace/Timer_Hash_T.h: * ace/Timer_Hash_T.cpp: * ace/Timer_Heap_T.cpp: * ace/Timer_Wheel_T.cpp: The classes had a INHERITED typedef for the base class, but Solaris defines a macro by the same name. This causes very weird problems with EGCS (and probably other g++ versions). Thu May 07 04:15:23 1998 Nanbor Wang * ace/Profile_Timer.cpp (elapsed_time): Treat Win32 differently so I can use this function with WinCE Emulation build. The problem is that Win32 can't convert __int64 to double. * ace/OS.{h,cpp} (ACE_Time_Value): (Win32 only) Added a new static const member (Time_To_The_Beginning) of type DWORDLONG (unsigned _int64) to adjust the time skew between FILETIME and POSIX time. Changed the type of _100ns to ULARGE_INTEGER to eliminate unnecessary computation. Wed May 6 23:58:40 1998 Carlos O'Ryan * ace/XtReactor.cpp: The signature for the open() method of the notify pipe has been modified. Wed May 6 23:28:47 1998 Douglas C. Schmidt * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp: Fixed a couple of mistakes that were causing the UNIX domain sockets not to work. Thanks to Sandro Doro for recommending this. * performance-tests/Misc/context_switch_time.cpp (svc): An 'i' was being defined twice, gorp! It's fixed now! Wed May 06 22:00:14 1998 David L. Levine * ace/config-linux-common.h: only #define ACE_HAS_4_4BSD_SENDMSG_RECVMSG with __GLIBC__. Thanks to Chanaka Liyanaarachchi for reporting the lack of CMSG_DATA support on RedHat 4.2. Wed May 06 18:35:21 1998 Steve Huston * ace/ACE.cpp (get_ip_interfaces): Reset buf_len before each call to get_reg_key to get registry value for device's IP address. It gets overwritten on each call to get_reg_key. * include/makeinclude/platform_mvs.GNU: Added definition for PIC. Though not related to position-independent-code, it is a switch that makes shared lib builds work right. Removed the old SOBUILD def. Thanks to Chuck Gehr for helping with this strategy. Wed May 06 16:32:53 1998 Nanbor Wang * ace/Filecache.h (ACE_Filecache_Handle): Removed ACE_EXPORT_DECLARE and specified ACE_Export directly for ACE_Filecache_Handle and ACE_Filecache in calss declarations. * ace/Thread_Manager.{h,i,cpp}: A bug was found by Arturo Montes who noticed that when a thread was spawned and then exited immediately, its thread descriptor might get freed before even get registered into the thread table kept by the Thread_Manager. Although it doesn't make any sense to spawn a thread just to let it return immediately, a middleware shouldn't restrict the way how users want to use it. I got around this problem by adding a lock into Thread_Descriptor. Before spawning a thread, the Thread Manager will first grab the lock. It won't release the lock until calling append thread, at which point, the Thread_Descriptor of the thread has been stashed into the table. Removing the Thread_Descriptor also requires to hold this lock and release the lock before the Thread_Descriptor is "freed." Therefore, if a thread exit before its Thread_Manager ever gets a chance to register it, it will block and waiting. The type of the lock is defined by ACE_DEFAULT_THREAD_MANAGER_LOCK which, by default, is ACE_Thread_Mutex. User can change the definition by defining in their config.h file. For example, if you can be sure that all your threads will run for an extended long time (which, in most case, should be true,) you can disable this feature by defining this as a ACE_Null_Mutex to speed up spawning and termination of threads. (thread_desc_freelist_): Added a free list to Thread_Manager to recycle Thread_Descriptor. By default, this free list pre-allocate 0 Thread_Descriptor and has low-water-mark of 1, increment count 1 and a huge (25000) high water mark. That is, if you use a Thread_Manager for an extended period of time, you won't have to dynamically allocate memory for Thread_Descriptor for every thread after your system is stable (the thread count fluctuates between some certain values.) There are two ways to change the settings. First, by defining ACE_DEFAULT_THREAD_MANAGER_LWM, ACE_DEFAULT_THREAD_MANAGER_HWM, ACE_DEFAULT_THREAD_MANAGER_INC, and ACE_DEFAULT_THREAD_MANAGER_PREALLOC in your file. This changes the default setting of your ACE. (The global Thread_Manager use this setting.) Or, you can specify these values when creating a Thread_Manager. * ace/Free_List.cpp (alloc,dealloc): Don't grab the lock in these two functions. They only get called from add() and remove() which hold the lock before making the call. Actually, they also gets called from the constructor and destructor. But that shouldn't be a problem. * tests/Reactor_Notify_Test.cpp (run_test): Moved the #endif of ACE_HAS_THREADS down to avoid compilation error on non-threaded platforms. Tue May 5 14:12:08 1998 Douglas C. Schmidt * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: Added a platform config file courtesy of Arturo Montes . Tue May 05 08:35:18 1998 David L. Levine * ace/config-irix6.x-sgic++-nothreads.h: updated the determination of ACE_SIZEOF_LONG_DOUBLE. Thanks to Bob Laferriere for providing the fix. * include/makeinclude/platform_sunos5_g++.GNU: use -gstabs+ instead of -g on Solaris86. * etc/Svc_Conf_l.cpp.diff: updated. It's magic, Nanbor :-) The problem seems to be due to an old version left in /tmp/Svc_Conf_l.cpp, which confuses flex. * ace/config-linux-common.h,config-g++-common.h: moved ACE_HAS_PENTIUM (with i386) from config-linux-common.h to config-g++-common.h. * ace/config-linux-common.h: added ACE_HAS_POLL, so we don't use ::select () in ACE_OS::sleep (). Linux's ::select () modifies its timeout argument! * ace/OS.i (gethrtime): added RDTSC support for all g++ _and_ ACE_HAS_PENTIUM platforms. * ace/config-vxworks5.x.h: added ACE_HAS_PENTIUM with GHS on Intel platforms. * ace/Makefile: for GHS on Intel 8086, build gethrtime.cpp. It's used to provide a high-resolution time using the Pentium RDTSC instruction. I don't know how to get GHS' asm to do it, so it uses g++. * ACE-INSTALL.html: added note about carefully installing egcs on Linux. Thanks to Kurt Sussman for tracking down the cause of mysterious link failures. Tue May 05 02:15:49 1998 Nanbor Wang * ace/Svc_Conf_l.cpp: I know, I know. I shouldn't mess with this file directly. But I couldn't manufacture this file even with the stock Svc_Conf.l using Doug's flex. So, I reckon I'll just check this in now and fix the Svc_Conf_l.diff later. * ace/Service_Config.{h,cpp} (process_directive): Standard CE stuff. * WindozeCE/WinAdapter*.*: * WindozeCE/WindozeCE*.*: Replaced the old adapter for CE with a new one. The new version allows uses to scroll thru the "console" output. Mon May 04 17:09:39 1998 David L. Levine * performance-tests/Misc/context_switch_time.cpp: lots of cleanup. The main changes were the use of ACE_THR_PRI_FIFO_DEF for the default therad priority, and removal of some unnecessary thr_yield () calls. * tests/Aio_Platform_Test.cpp: added arguments to main (), removed #includes that are already in ace/OS.h, and added ACE_START_TEST/ACE_END_TEST calls. Mon May 4 13:08:18 1998 Douglas C. Schmidt * ace/config-sunos5.6.h: Removed a mysterious "30" at the end of an #undef. Thanks to J. Russell Noseworthy for reporting this problem. Mon May 04 08:49:09 1998 David L. Levine * ace/OS.cpp (ACE_Thread_Adapter::invoke): with ACE_NEEDS_LWP_PRIO_SET, added the call to ACE_OS::thr_setprio () so that the LWP priority will be set if running in the RT class. Applications no longer have to be concerned with this. * performance-tests/Misc/preempt.cpp (svc): removed ACE_OS::thr_setprio () calls to set LWP priority, now that ACE handles that internally. * include/makeinclude/platform_*linux.GNU: added "s" to ARFLAGS, so that ranlib is no longer necessary. Sun May 03 22:37:38 1998 Nanbor Wang * ace/Parse_Node.cpp (open_handle): WinCE doesn't support ExpandEnvironmentStringA. * ace/config-win32-common.h: Only define ACE_HAS_GETRUSAGE when ACE_HAS_WINNT4 != 0. Thanks to Paul Motuzenko for reporting this. Sun May 03 01:58:47 1998 Douglas C. Schmidt * ACE version 4.5.1 released. Sat May 2 14:35:04 1998 Douglas C. Schmidt * tests/Reactor_Notify_Test.cpp: Factored out some common code to make the test more concise. * tests/Reactor_Notify_Test.cpp: Modified the test to check whether our new mechanism for disabling the notify pipe works correctly. * ace/{WFMO,Select}_Reactor[_Impl]: Added the "disable_notify_pipe" flag in the constructor in order to disable this feature and save on descriptors if they aren't required. Thanks to Tom Venturella for motivating this. Sat May 02 Alexander Babu Arulanthu * tests/Aio_Platform_Test.cpp: Included this test program for testing a platform for Asynchronous I/O options. * tests/Makefile (BIN): Added Aio_Platform_Test. Fri May 01 17:52:32 1998 Nanbor Wang * ace/Arg_Shifter.{h,cpp}: Added macros ACE_Export and ACE_BUILD_DLL respectively. * ace/ACE_Library.mak: * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project. Fri May 1 13:52:32 1998 Douglas C. Schmidt * ace/Addr: Made the destructor for ACE_Addr virtual so that subclasses can be deleted correctly. Thanks to Wei Chiang for reporting this. * ace: Added Arg_Shifter from TAO and renamed it to ACE_Arg_Shifter. * ace/IOStream_T.i (recv_n): ACE_IOStream::eof (void) had a subtle bug if it is called when a get operation (>>) has not failed. Thanks to James CE Johnson for reporting this bug. * examples/Connection/misc/Connection_Handler.cpp: Make sure to activate() each active object using THR_DETACHED so we don't run out of threading resources. Thanks to Brad Walton for reporting this. * ace/Timer_Queue_Adapters.cpp: Rather than returning the result of schedule_ualarm(), the ACE_Async_Timer_Queue_Adapter::schedule() method should return the timer id. Thanks to James Garrison for reporting this. * examples/System_V_IPC/SV_Message_Queues: Renamed the so-called "ACE_Message_Block" to "Message_Block" so it wouldn't be as confusing. Thanks to Ganapathi for this suggestion. Fri May 01 17:52:32 1998 Nanbor Wang * ace/ACE_Library.mak: * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project. Fri May 01 14:09:21 1998 Steve Huston * ace/OS.h: Changed ACE_hrtime_t from signed to unsigned on Win32 to insure correct results from ACE_High_Res_Timer::elapsed_time calculations. Fixes bug P87. Fri May 01 11:52:47 1998 Nanbor Wang * ace/OS.h: Forgot to redefine ASYS_INLINE after #undef it. * ace/OS.i (last_error): On Win32, this should also update errno after calling SetLastError (). Thanks to Steve for pointing this out. Fixes bug P88. Fri May 01 10:01:09 1998 David L. Levine * ace/config-sunos5.6.h: replaced config-sunos5.6-sunc++-4.x.h with this config file, which supports both Sun C++ and g++. * ace/OS.i (gethrtime): for the default (::gettimeofday) case, use 64-bit instead of 32-bit arithmetic by casting to ACE_hrtime_t. * ace/Basic_Types.{h,i}: added ACE_U_LongLong::operator *. * ace/Env_Value_T.cpp: added #include of Env_Value_T.h. Fri May 1 00:35:40 1998 Nanbor Wang * include/makeinclude/wrapper_macros.GNU (ACE_LDSO_Version_Number): Fixed the problem of not able to parse a formal release number from ace/VERSION. Thu Apr 30 15:53:58 1998 Nanbor Wang * ACE.{h,i,cpp}: * DEV.{h,i,cpp}: * DEV_Connector.{h,i,cpp}: * DEV_IO.{h,i,cpp}: * Date_Time.{h,i,cpp}: * FIFO_Recv.{h,i,cpp}: * FIFO_Recv_Msg.{h,i,cpp}: * FIFO_Send.{h,i,cpp}: * FIFO_Send_Msg.{h,i,cpp}: * FILE.{h,i,cpp}: * FILE_Connector.{h,i,cpp}: * FILE_IO.{h,i,cpp}: * IO_SAP.{h,i,cpp}: * IPC_SAP.{h,i,cpp}: * LSOCK.{h,i,cpp}: * LSOCK_CODgram.{h,i,cpp}: * LSOCK_Connector.{h,i,cpp}: * LSOCK_Dgram.{h,i,cpp}: * LSOCK_Stream.{h,i,cpp}: * Log_Record.{h,i,cpp}: * Pipe.{h,i,cpp}: * SOCK.{h,i,cpp}: * SOCK_CODgram.{h,i,cpp}: * SOCK_Connector.{h,i,cpp}: * SOCK_Dgram.{h,i,cpp}: * SOCK_Dgram_Bcast.{h,i,cpp}: * SOCK_Dgram_Mcast.{h,i,cpp}: * SOCK_IO.{h,i,cpp}: * SOCK_Stream.{h,i,cpp}: * SPIPE.{h,i,cpp}: * SPIPE_Connector.{h,i,cpp}: * SPIPE_Stream.{h,i,cpp}: * SV_Message_Queue.{h,i,cpp}: * SV_Semaphore_Complex.{h,i,cpp}: * SV_Semaphore_Simple.{h,i,cpp}: * UPIPE_Acceptor.{h,i,cpp}: * UPIPE_Connector.{h,i,cpp}: Added inline control for these supposedly default inline functions. * ace/config-WinCE.h: Added ACE_LACKS_INLINE_FUNCTIONS. * ace/OS.h: Added a new macro ASYS_INLINE for platforms that don't support inline properly. This is controlled by the macro ACE_LACKS_INLINE_FUNCTIONS. Walked thru all macros and indented them properly. * ace/README: Added documentation for ACE_LACKS_INLINE_FUNCTIONS.