Tue May 12 13:45:45 1998 Chris Gill * orbsvcs/orbsvcs/Sched/Config_Scheduler.{cpp,h}: Fixed compile problem when using ACE_Scheduler instead of ACE_DynScheduler 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 17:00:00 1998 Chris Gill * ace/ace_dll.dsp orbsvcs/orbsvcs/RtecScheduler.idl orbsvcs/orbsvcs/orbsvcs.dsp orbsvcs/orbsvcs/Sched/Config_Scheduler.{cpp,h} orbsvcs/orbsvcs/Sched/DynSched.{cpp,h} orbsvcs/orbsvcs/Sched/Scheduler.h orbsvcs/orbsvcs/Sched/Strategy_Scheduler.{cpp,h} Integrated strategized scheduler with off-line scheduling interface in Config_Scheduler.{cpp,h}. To use the strategized scheduler, define the following symbols in ace/config.h (you can substitute RMS, etc for MUF, and can choose a different value for the minimum critical priority - more on this in the release notes, once the dynamic portion is integrated): #define TAO_USES_STRATEGY_SCHEDULER #define TAO_USES_MUF_SCHEDULING #define TAO_MIN_CRITICAL_PRIORITY 0 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 . 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. 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. Wed May 6 02:57:40 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. 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.