diff options
Diffstat (limited to 'ChangeLog-97a')
-rw-r--r-- | ChangeLog-97a | 2379 |
1 files changed, 0 insertions, 2379 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a deleted file mode 100644 index 76b836368c3..00000000000 --- a/ChangeLog-97a +++ /dev/null @@ -1,2379 +0,0 @@ -Tue Feb 25 21:19:57 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h,config-sunos*.h: default ACE_TIMER_QUEUE to 0, - and override to 10 ms in all Solaris config files. - - * ace/Svc_Conf_l.cpp,Makefile: #undef ACE_HAS_TERM_IOCTLS - so that /usr/include/sys/termios.h won't be included; it - #defines ECHO, and Svc_Conf_l.cpp has an ECHO symbol. - -Tue Feb 25 19:57:54 1997 <harrison@samba.cs.wustl.edu> - - * ace/Timer_Queue.cpp (gettimeofday): Added gettimeofday accessors - on the Timer_Queue. The default implementation calls - ACE_OS::gettimeofday. Applications can specify, via pointers to - functions, that a timer queue use an alternate gettimeofday - implementation (e.g., a high resolution timer). - - * ace/Reactor.cpp (schedule_timer): The Reactor no longer calls - ACE_OS::gettimeofday. Instead, it calls - Timer_Queue::gettimeofday. - - * ace/ReactorEx.cpp (schedule_timer): The ReactorEx no longer calls - ACE_OS::gettimeofday. Instead, it calls - Timer_Queue::gettimeofday. - -Tue Feb 25 17:40:57 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/Log_Msg.cpp: Updated the 'p' option of the log() method to - use the new ACE::sock_error() method for cases where - FormatMessage() fails. - - * ace/ACE: Added a new sock_error() method to class ACE which - returns the appropriate message for each WinSock error code. - This makes up for an apparent oversight in Win32. Thanks to - Michael R. MacFaden" <mrm@cisco.com> for this. - -Tue Feb 25 01:33:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.h: Moved <netinet/tcp.h> outside of the VXWORKS #ifdef - since it seems to be available on other platforms (e.g., - Solaris). If people find this not to be the case on all - platforms please let me know and I'll #ifdef it. Thanks to - Sumedh Mungee <sumedh@cs.wustl.edu> for reporting this. - -Tue Feb 25 16:20:29 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * examples/Connection/non_blocking/CPP-acceptor.cpp: Added a - specific checl for timeouts. Also, changed - ACE_PEER_ACCEPTOR_ADDR to ACE_PEER_STREAM_ADDR - - * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New - project files for Win32. - - * ace/Log_Msg.cpp: Minor changes. - -Mon Feb 24 17:16:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Log_Msg.cpp (ACE_Log_Msg): Enable the thread-specific - tracing flag by default. This ensures that tracing will work - "out of the box." - - * ace/config-sunos5.[45]-g++.h: Added a #define for - ACE_HAS_TERM_IOCTLS. Thanks to Joey Zhu <joey.zhu@wcom.com> for - reporting this. - - * ace/Synch.cpp (acquire): Simplified the recursive mutex logic - for acquire(). Thanks to Arthur J. Lewis" <hfdh99a@prodigy.com> - for reporting this. - - * examples/Connection/non_blocking/CPP-acceptor.cpp (init): Added - a #ifdef for ACE_WIN32 so that we don't register the signal - handler for SIGPIPE since it's not supported on Win32. Thanks - to Ivan Murphy <Ivan.Murphy@med.siemens.de> for reporting this - problem. - - * examples/Connection/non_blocking: The SPIPE examples in - (test_spipe_{acceptor,connector}.cpp) aren't ported to Win32 - yet. They currently don't work because ACE_SPIPE*'s can't be - registered with the ACE_Reactor (which only works with sockets). - I've #ifdef'd these examples so that they don't get compiled on - Win32. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for - reporting this problem. - -Mon Feb 24 20:28:10 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++ - won't convert unsigned __int64 to double. Thanks to Irfan - <irfan@cs.wustl.edu> for reporting this. - - * include/makeinclude/platform_{irix5.3_g++,linux*,m88k, - osf1_4.0_g++,sco-nothread,sunos*g++,unixware_g++}.GNU: - changed C++ compiler (CXX) from gcc to g++ so that libg++ - will be linked in. Thanks to James CE Johnson <jcej@lads.com> - for suggesting this. - - * examples/IOStream/{client,server}/Makefile,tests/Makefile: - removed -lg++, when gcc is the compiler, because it's no - longer needed with g++ as the compiler. - -Sat Feb 22 23:03:45 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.i: restored version 4.89 and 4.90 changes that - were lost in version 4.91. - - * ace/OS.{i,cpp},config-linux*.h: added ACE_OS::gethrtime () - support for Linux on Pentiums. - - * ace/High_Res_Timer.*: changed scale_factor type from - u_long to double so that it can be less than 1. - - * ace/Thread_Priority.cpp: "linux" instead of "LINUX". - - * tests/Priority_Task_Test.cpp (open): set this->priority_ because - an assertion uses it. Also, use ACE_NORMAL_PRIORITY_CLASS so that - root doesn't have to run the test on Solaris. - -Sat Feb 22 22:07:35 1997 Chris Cleeland <cleeland@cs.wustl.edu> - - * tests/Priority_Task_Test.cpp (open): Now use - ACE_Thread_Priority while setting the priority of the new - thread. - - * ace/Thread_Priority.cpp (convert_to_os_priority): Changed - return type for this to 'int' from 'long' on Linux. Thanks - to James CE Johnson <jjohnson@lads.com> for pointing this - out! - - * ace/OS.i (thr_cancel): Corrected erroneous macro argument. - Thanks to James CE Johnson <jjohnson@lads.com> for pointing - this out! - -Sat Feb 22 17:00:59 1997 <harrison@samba.cs.wustl.edu> - - * ace/OS.i (gethrtime): Added support for intel's RDTSC - instruction for pentium architectures. - -Sat Feb 22 10:57:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Stream.cpp (open): Make sure that if we allocate the Tasks - in the Stream head and the Stream tail that we set the M_DELETE - flag so that the close() method will clean up the memory. - Thanks to David Levine and Purify for noticing this problem. - -Fri Feb 21 08:06:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.i: Yikes, it looks like the Solaris and the POSIX version - of sigwait() are different! The Solaris version returns the - signal number, whereas the POSIX version returns 0 on success, - errno on failure, and sets a parameter with the signal on - success. I've fixed the ACE_OS C++ wrapper so that the right - thing happens, i.e., errno is always set to the error (if - sigwait() returns -1) and the signum is always returned as the - argument and the return value on success ... Thanks to Harry - Gunnarsson <hg@carmenta.se> for reporting this. - -Fri Feb 21 11:01:22 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Thread_Priority.cpp: fixed return type of - convert_to_os_priority () for Linux. Thanks to - James CE Johnson <jcej@lads.com> for pointing this out. - - * examples/Shared_Malloc/test_malloc.cpp, - examples/System_V_IPC/SV_Message_Queues/{T,}MQ_Server.cpp (main): - added ACE_UNUSED_ARG (sa);. - -Fri Feb 21 04:12:31 1997 <irfan@TWOSTEP> - - * ace/OS.h: Added ACE_SEH_FINALLY. - - * ace/ReactorEx.h: Added ACE_ReactorEx_Test as a friend class. I - think we should have one such friend class for all classes in - ACE. - - * examples/Reactor/ReactorEx/test_exceptions.cpp: New test which - checks how ReactorEx deals with structured exceptions thrown by - user code - - * ace/ReactorEx.cpp (safe_dispatch): Added protection against - structured exceptions caused by user code when dispatching - handles - -Thu Feb 20 17:32:54 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * apps/Gateway: Added a new -v flag to the peerd and gatewayd - applications so that they will print out the strings that are - passed to them. This makes it easier to debug and see what's - happening. - -Wed Feb 19 19:39:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp (recv): Removed - the VERBOSE #ifdefs since they weren't used and were causing - compile errors. Thanks to Bert Craytor - <Bert_Craytor@peoplesoft.com> for reporting this. - -Wed Feb 19 00:39:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * examples/ASX/Event_Server: Updated the README file a bit to - clarify some loose ends. The documentation now explains - precisely how to start up the transceivers correctly. Thanks to - Patty Genuald <genualdp@agcs.com> for suggesting this. - - * include/makeinclude: Removed the default symlink for - platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to - Amos Shapira <amos@dsi.co.il> for reporting this. - -Wed Feb 19 14:41:18 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu> - - * ace/Reactor.cpp: Modified to use timer_queue_->gettimeofday(). - - * ace/Proactor.cpp: Modified to use timer_queue_->gettimeofday(). - - * ace/ReactorEx.cpp: Modified to use - timer_queue_->gettimeofday(). Also had to modify the - ReactorEx_Notify mechanism to use the ReactorEx's timer queue to - call gettimeofday. - - * ace/Timer_Queue.h: Added a gettimeofday method. This allows - applications to replace the timer mechanism used by the - Reactors. The default implementation returns - ACE_OS::gettimeofday. However, a real-time application can - inherit from Timer_Queue and override gettimeofday to return a - value from a high resolution timer. - - * STL/bool.h: Changed the defines for type bool. First, bool is no - longer defined for WIN32 since yvals.h typedefs it already. - Also, I moved the defines out the namespace. I'm not sure if - that's the right thing to do. - -Tue Feb 18 16:41:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * include/makeinclude: Added minor enhancements to rules.local.GNU - and wrapper_macros.GNU so that it works with MVS. Thanks to - Chuck Gehr <gehr@sweng.stortek.com> for this. - - * include/makeinclude: Added a new platform_mvs.GNU file that - supports builds on MVS! Thanks to Chuck Gehr - <gehr@sweng.stortek.com> for this. - - * tests/TSS_Test.cpp (worker): To get TSS_Test.cpp to compile on - MVS we changed line 69 from: - - ACE_thread_key_t key = 0; - - to: - - ACE_thread_key_t key = ACE_OS::NULL_key; - - and line 122 from: - - key = 0; - - to: - - key = ACE_OS::NULL_key; - - Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting - this. - - * ace/Reactor.cpp (dispatch): Fixed the dispatching logic so that - we bail out as soon as we discover that our state has changed. - Thus, we'll recompute the fd_sets used for select(). - -Tue Feb 18 19:02:53 1997 <irfan@cha-cha.cs.wustl.edu> - - * ace/ReactorEx: - - (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay - <Hamutal_Yanay@mail.icomverse.com> for suggesting this. - - (b) Change closed_for_business_ to open_for_business_. Also made - sure that open and close can potentially be called multiple - times from multiple threads. - - (c) Changed unbind and unbind_all such that they iterate through - all the handles. - - (d) Added a check to see if the handle has been scheduled for - deletion before dispatching it. - -Tue Feb 18 21:24:57 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/IOStream.h,README: replaced ACE_WIN32 conditional with - ACE_LACKS_IOSTREAM_FX. - - * ace/config-{mvs,win*}.h: added #define ACE_LACKS_IOSTREAM_FX. - Thanks to Chuck Gehr <gehr@sweng.stortek.com> for pointing - out the need for this support for MVS. - - * examples/Reactor/Misc/test_demuxing.cpp: removed unused - variable "done". - - * examples/Reactor/Misc/test_signals_1.cpp (main), - examples/Reactor/Ntalker/ntalker.cpp (main): - added ACE_UNUSED_ARG (sig);. - -Tue Feb 18 17:15:24 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu> - - * ace/ace.mdp, ace/mak: Modified release configuration to build - acer.dll. - -Tue Feb 18 11:43:04 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Log_Msg.cpp: removed destructor because it's not declared - and it's empty. - - * ace/OS.i (thr_setprio): added another case (that is NOTSUP) - for platforms with Pthreads and with LACK_SETSCHED. Thanks to - Chuck Gehr <gehr@sweng.stortek.com> for pointing this out. - - * tests/Reactor_Notify_Test.cpp (main): added shutdown flag so - that normal termination reaches ACE_END_TEST. - - * tests/Reactors_Test.cpp (worker): changed "timeout" message to - "Reactor shutdown" because that indicates normal termination, - and won't fool the one-button test. - - * examples/Mem_Map/IO-tests/test_io.cpp (main): added - ACE_UNUSED_ARG (sa);. - - * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG - for sig1 and sig2. - -Tue Feb 18 03:50:10 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/ReactorEx: - - (a) Added a closed_for_business_ flag so that handle_events() - cannot be called after the ReactorEx has been closed down. - - (b) Transfer of ownership of the ReactorEx to a new owner has - changed. The transfer will not complete until all threads - are ready for it (just like the handle set). - ReactorEx->update_state() now looks out for changes in - ownership. - - * examples/Reactor/ReactorEx/test_MT.cpp: - - (a) The test now terminates and number of iterations can be - specified on the command line. - - (b) Graceful shutdown of ReactorEx is now exercised in the - test. This is a change for the earlier infinite loop. This - also shows how to gracefully close ReactorEx which is being - shared by multiple threads. - - (c) Timers were added to the test. - - * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF. - -Mon Feb 17 22:37:35 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu> - - * ace/Log_Msg.h (ACE_RETURN): Modified all ACE_RETURN macros to - use ACE_OS::last_error instead of errno. This makes these more - portable to Win32. - - * ace/Log_Msg.cpp (log): Modified Win32 version to use - FormatMessage if errnum is greater than sys_nerr. - - * ace/OS.i (last_error): Modified Win32 version to return - GetLastError if errno == 0. - -Mon Feb 17 18:32:29 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/OS.h: Protected the #ifdef for CLOCK_REALTIME so that it - won't conflict with an existing macro in AIX. Thanks to Chris - Lahey <CLahey@cccis.com> for this. - - * ace/Local_Name_Space_T.h: Added Local_Name_Space.h to - Local_Name_Space_T.h so that templates will work correctly on - AIX. Thanks to Chris Lahey <CLahey@cccis.com> for this. - - * tests: Added a new test, Reactor_Notify_Test.cpp, which tests - out the new max_notify_iterations() method on the Reactor. - - * ace/Reactor: Finished rewriting and testing the new dispatching - logic of the Reactor. The new implementation guards against - pathological cases where ACE_Event_Handler::handle_*() methods - remove registered ACE_Event_Handler objects whose handles are - pending in the dispatch_set. Previously there was no good way - to guard against this. Now, it should be handled automatically. - - * ace: Added many minor fixes to remove warnings with the SGI C++ - compiler. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for - suggesting this. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all - the warnings for the SGI C++ compiler. Thanks to Gonzalo - Diethelm <gonzo@ing.puc.cl> for suggesting this. - -Mon Feb 17 20:59:47 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/IOStream.h: added null ipfx (), etc., methods for ACE_WIN32 - because its iostream class doesn't have them. - - * ace/OS.h: added #include of <netinet/tcp.h> on VxWorks. - - * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that - OS.h #includes <netinet/tcp.h>. - - * ace/ReactorEx.h: made ACE_ReactorEx_Handler_Repository destructor - virtual because the class has other virtual functions. - - * tests/IOStream_Test.cpp: removed ACE_WIN32 #ifndef, and - removed q_char bool conversion operator because it shouldn't - be needed. - - * examples/Reactor/Misc/pingpong.cpp (handle_input): cast buf_len - to ssize_t to avoid signed/unsigned comparison. - - * examples/Service_Configurator/IPC-tests/client/\ - remote_dgram_client_test.cpp (main): cast mmap.size () to - ssize_t to avoid signed/unsigned comparison. - -Mon Feb 17 09:25:08 1997 Chris Cleeland <cleeland@cs.wustl.edu> - - * ace/config-linux-lxpthreads.h: Bumped the Linux kernel version - number assigned to the symbol LINUX. Also added conditional - defines for PTHREAD_{MAX,MIN}_PRIORITY when using Xavier Leroy's - LinuxThreads. - - * ace/Thread_Priority.cpp: Added convert_to_os_priority() for Linux. - -Mon Feb 17 03:15:48 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * tests/SOCK_Test.cpp (server): Changed recv_n() to recv(). - - * tests/tests.{mak,mdp}: Added two new tests: IOStream and - Reactor_Notify. - - * ace/Reactor: Removed all special checks for setting - ACE_Reactor::max_notify_iterations_ on WIN32 to be 1. This was - made possible after we figured out that the errno was being - reset after the recv() call in handle_input(). This allows - ACE_Reactor_Notify::handle_input() to serve upto - ACE_Reactor::max_notify_iterations_ notifications in one shot - rather than just 1 on WIN32. This should speed up the Reactor on - WIN32 platforms. - -Sun Feb 16 12:23:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Reactor.cpp: Totally rewrote the ACE_Reactor's dispatching - mechanism so that it now keeps track of whether the state of the - wait_set_ has changed during a dispatch (i.e., whenever - register_handler_i() or remove_handler_i() is called). If the - wait_set_ state *has* changed, then we bail out and rerun - select() in order to get the latest changes. - - * ace/Reactor.cpp: Changed the implementation of the - ACE_Reactor_Notify class so that (1) it short-circuits a trip - through the ACE_Reactor::notify_handle() method (after all, it's - just going to call its own handle_input() method back) and (2) - the ACE_Reactor_Notify::handle_input() method now returns a - count of the number of handlers that it dispatched. - - * ace/Log_Msg.h: Added a (%P|%t) so that we now print out the - process id and thread number for failed ACE_ASSERT() calls. - - * tests: Removed the unnecessary template specializations of - ACE_Atomic_Op<ACE_Thread_Mutex, int> since this is already done - in libACE. - - * ace/Reactor.cpp: Removed the #ifdef preventing the enabling of - non-blocking mode for the recv() side of the Reactor's - notification pipe (socket) for Win32. I believe that with the - new max_notify_iterations scheme we should be all set. - - * ace/ReactorEx.cpp: Added an identical API for bounding the - max_notify_iterations() for ReactorEx. - - * ace/Reactor.cpp: Enhanced the Reactor's notify() mechanism so - that it is now possible to set the max_notify_iterations(), - which limits the number of times that the - ACE_Reactor_Notify::handle_input() method will iterate and - dispatch the ACE_Event_Handlers that are passed in via the - notify pipe before breaking out of its recv() loop. This is - necessary to keep from starving out other Event_Handlers. - Thanks to Rod Skinner <rods@in.ot.com.au> for pointing out the - need for this. - - * ace/Reactor.cpp: Fixed a bug in the WIN32 - ACE_Reactor_Notify::handle_input() logic. We were calling - requeue_position(0) when we should have been calling renew(). - -Sat Feb 15 11:46:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/ACE.cpp: It appears that VxWorks doesn't support fcntl(). - However, it does seem to support ioctl(). Therefore, that's how - we'll set the descriptors into non-blocking mode. Thanks to - Dave Mayerhoefer <m210229@svappl36.mdc.com> for reporting this. - - * ace/SOCK_Stream.h: Corrected the documentation for - ACE_SOCK_Stream::recv_n (void *buf, size_t len, int flags, const - ACE_Time_Value *timeout). Thanks to Paul Roman - <proman@npac.syr.edu> for reporting this. - - * ace/SOCK_Stream.i (recv_n): Fixed a minor bug in the - SOCK_Stream.i line 38: - - ACE_TRACE ("ACE_SOCK_Stream::send_n"); - - should be - - ACE_TRACE ("ACE_SOCK_Stream::recv_n"); - - Thanks to Paul Roman <proman@npac.syr.edu> for reporting this. - -Fri Feb 14 00:40:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/TTY_IO.cpp (control): Moved the drop out timer value from - the ACE struct to the WinNT struct. Thanks to Brad Flood - <BFLOOD@tcs.lmco.com> for this fix. - -Thu Feb 13 21:24:17 1997 <irfan@cha-cha.cs.wustl.edu> - - * ace/OS.i (event_wait): Fixed the missing check for success. - - * ace/Synch: Fixed problems with multiple removal of - resources. Thanks to Bert (Bcraytor@aol.com) for pointing this - out. - - * examples/Threads/test.{mdp,mak}: Reorganized project so that it - is easier to use. - - * examples/Threads: Small changes to make tests run faster. - -Thu Feb 13 01:49:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/OS.i (stat): Added stat() to ACE_OS. - - * apps/jaws: The ACE web server has now been ported to Win32. - - * ace/ReactorEx: Add a new version of remove_handler(). - - * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only - <concurrent_threads> are activated. - -Wed Feb 12 22:58:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/ReactorEx: Made minor changes to the ReactorEx. - - * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new - ReactorEx test to use ACE_Tasks. - -Wed Feb 12 00:08:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/ReactorEx: Finished a complete rewrite of - ReactorEx. The new version allows multiple threads of - control to wait simultaneously in - ::WaitForMultipleObjects(). This was difficult because the - set of ACE_HANDLEs used in ReactorEx->handle_events() is - shared between all threads. We devised a clever protocol - that ensures all changes to the handle set are - serialized. This serialization was achieved by using - multiple (auto and manual) events and mutexes and by taking - advantage of the "waitAll" semantics of - WaitForMultipleObjects(). - - Concept of "owner" thread is introduced in ReactorEx. We - need to keep track of the "owner" because we don't want - multiple threads to try to expire timers. Therefore the - "owner" thread is the only one allowed to expire - timers. Also, the owner thread is the only thread which - waits on the internal notify handle (which is used to - dispatch explicit calls to - ACE_ReactorEx::notify(). Initially, the creator thread of - ReactorEx becomes the "owner" thread. Ownership can later be - transferred among threads, just as with the standard - ACE_Reactor. - - We also updated the Handler Repository since it now - keeps track of <handle, event_handler> tuples to be added - and deleted from the current handle set at the appropriate - time (i.e., when all threads are out of - WaitForMultipleObjects() and have completed all necessary - dispatching). The Handler_Repository implements the update - protocol that is used to serialize changes to its internal - state. - - Two slots were added to the <size> parameter in the - constructor and open methods of ReactorEx that will store - handles used for internal management. Therefore, users can add - upto MAXIMUM_WAIT_OBJECTS - 2 handles into ReactorEx. On - current WinNT platforms (e.g., 3.51 and 4.0) - MAXIMUM_WAIT_OBJECTS is 64. - - Note that the interface to ReactorEx did not change in this - process. Your existing code should work without changes. - Moreover, we've optimized the implementation so that if only - 1 thread calls ACE_ReactorEx::handle_events() the code is - very efficient. Moreover, you can dynamically add or remove - threads without having to register them with the ReactorEx. - - * examples/Reactor/ReactorEx/test_MT.cpp: This application tests - multiple threads simultaneously calling - ReactorEx->handle_events(). It also shows how different threads - can update the state of ReactorEx. - -Wed Feb 12 00:08:42 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu> - - * ace/Synch: Added a remove() call to ~ACE_Thread_Mutex so that it - will be removed (and resources cleaned up) automatically when an - ACE_Thread_Mutex object goes out of scope. Thanks to Jay - Denkberg <jay_denkberg@mail.icomverse.com> for reporting this. - - * ace: Added a new config file (config-irix6.2-sgic++-nothreads.h) - that works for non-Pthread versions of SGI 6.2. Thanks to Fred - LaBar <flabar@fallschurch.esys.com> for this. - - * ace/XtReactor: Fixed a bunch of minor bugs that crept into the - ACE_XtReactor. Thanks to Fred LaBar - <flabar@fallschurch.esys.com> for reporting this. - - * ace/OS.i (thr_getprio): Fixed a typo in the #ifdefs so that we - return ACE_NOTSUP_RETURN(-1) if threading isn't enabled. Thanks - to Fred LaBar <flabar@fallschurch.esys.com> for reporting this. - -Tue Feb 11 11:26:03 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.{h,i},config-vxworks*.h,README: added ACE_HAS_CLOCK_GETTIME, - and only support ACE_OS::clock_gettime if that's defined. - It can be supported on Solaris 2.5, but -lposix4 is then required. - - * ace/Thread_Priority.*: added increment () and decrement () - operations. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: - added -pta back to avoid link problems with template classes - that have virtual functions that are all inline, if inlining - is disabled. Though we don't see the problem, other 4.1 users do. - Thanks to mscallinan@CCGATE.HAC.COM for reporting this. - - * examples/Logger/simple-server/Logging_Handler.cpp (handle_input): - cast "len" to ssize_t to prevent mixed signed/unsigned comparison. - - * examples/Logger/simple-server/server_loggerd.cpp (main): - added ACE_UNUSED_ARG (sa);. - - * examples/Reactor/Misc/notification.cpp (Thread_Handler ctor): - changed type of n_threads argument from int to size_t to avoid - signed/unsigned comparison. - -Mon Feb 10 15:27:02 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Timer_Queue: Added a virtual destructor so that subclasses - deleted via ACE_Timer_Queue *'s will call the right destructor. - Thanks to Stuart Powell <stuartp@in.ot.com.au> for reporting - this. - - * ace/Timer_Heap.cpp: Added support for automatically growing - ACE_Timer_Heaps. This allows heaps to grow automatically as new - ACE_Event_Handlers are added dynamically. Thanks to Stuart - Powell <stuartp@in.ot.com.au> for this enhancement. - - * ace/Memory_Pool: Added support that allows flags to be passed in - to the MMAP_Memory_Pool. This can be used to set the - appropriate type of backing store semantics (e.g., MAP_PRIVATE - and MAP_SHARED). Thanks to Fred LaBar - <flabar@fallschurch.esys.com> for providing this. - -Sun Feb 9 11:56:37 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu> - - * ace/Map_Manager.cpp (bind_i): A recent change to Map_Manager - broke the Connector since errno was getting set to ENOENT rather - than EWOULDBLOCK. Thanks to Mark Rabotnikov - <mark@usp.elscintcorp.co.il> for finding this. - -Sun Feb 09 21:44:34 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/ACE.{h,cpp}: added static u_long is_prime (). - - * ace/{OS.cpp,Thread_Priority.cpp}: added comment about thread - priorities only being tested for 1003.1C version of Pthreads. - Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> - for suggesting this. - - * ace/OS.{h,i}: added ACE_OS::clock_gettime (). It allows - applications to get high-resolution time on POSIX systems. - - * ace/Future.cpp (dump): cast ref_count_ to an int because - g++ doesn't figure it out (it's an ACE_Atomic_Op<ACE_Thread_Mutex, - int>, which does have an int conversion operator). - - * ace/Timer_List.cpp (constructor): added initializer for - timer_id_ to prevent unitialized memory read report from Purify. - - * tests/IOStream_Test.cpp,Makefile: added IOStream_Test, - complements of James CE Johnson <jcej@lads.com>. Very cool! - - * tests/Future_Test.cpp: replaced call to ::sin () - with one to ACE::is_prime () to remove dependency on libm. - - * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1, peer2): removed - unused variables c_addr and serv_addr: they were replaced by - a global. - - * examples/Threads/future{1,2}.cpp: replaced call to ::sin () - with one to ACE::is_prime () to remove dependency on libm. - - * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: removed - #include of math.h, it wasn't needed. - -Sat Feb 08 15:19:50 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/ReactorEx.h: commented out ACE_ReactorEx_Notify::message_queue_ - declaration if not ACE_WIN32 because Sun C++ chokes on it. - - * examples/IPC_SAP/{FILE,SPIPE}_SAP/client.cpp: declare "len" as - ssize_t to avoid signed/unsigned comparison. - -Fri Feb 7 01:13:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.i (select): Simplified Chris' fixes for the weird - Linux select() semantics. - - * ace/OS: Added a new accessor method called waiters() in - ACE_cond_t that returns the number of waiters on the condition - variable. Thanks to Karlheinz for suggesting this. - - * ace/OS: Changed all the ACE_cont_t, ACE_rwlock_t, etc. so that - their fields are private, but made class ACE_OS a friend. - Applications should not be mucking with these fields since they - may change. - - * ace/OS.h: Fixed a minor typo where friend class ACE_rwlock_t - should be friend class ACE_OS. Thanks to Thilo Kielmann - <kielmann@informatik.uni-siegen.de> for reporting this. - - * ace/Log_Msg.cpp: Added a destructor to ACE_Log_Msg and changed - ACE_TSS_cleanup so that it calls delete (ACE_Log_Msg *) ptr. - Thanks to Per Anderson <Per.Andersson@hfera.ericsson.se> for - reporting this. - - * tests/Map_Manager_Test.cpp: Create a file Map_Manager_Test_Key.h - and move the class Key into the include file. Include this *.h - file in Map_Manager_Test.cpp. This is needed for template - generation on AIX. Thanks to Chris Lahey <CLahey@cccis.com> for - pointing this out. - -Fri Feb 7 17:29:40 1997 Chris Cleeland <cleeland@cs.wustl.edu> - - * ace/OS.cpp (set_sched_params): added support for POSIX - threads. Thanks to Thilo Kielmann - <kielmann@informatik.uni-siegen.de> for figuring it out and - for providing the code. - - * tests/Naming_Test.cpp (test_find): Changed final delete[] to - not try to delete a static buffer. :-( - - * tests/SOCK_Test.cpp (server): Added assertion test for - modified select timeval. - -Fri Feb 07 13:56:24 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority - support for Digital Unix. Thanks to Thilo Kielmann - <kielmann@informatik.uni-siegen.de> for figuring the priorities - and priority classes out and for providing the code. - - * ace/High_Res_Timer.{h,cpp},config-linux*.h,README: - use struct timespec instead of timespec_t, because not all - platforms have the timespec_t typedef. Thanks to - Marius Kjeldahl <marius@funcom.com> for reporting this on Linux - and Chris Lahey <CLahey@cccis.com> for reporting it on AIX. - - * ace/IOStream.h: use "ssize_t send (...)", etc., instead of exact - function prototypes. - - * examples/IPC_SAP/TLI_SAP/db-server.cpp: declare struct member as - const char * instead of const char [] because it's not static and - the struct doesn't have constructors. - - * examples/Reactor/Multicast/server.cpp (Server_Events ctor): - reordered initializers to match declaration order. - -Fri Feb 07 05:08:51 1997 <irfan@cha-cha.cs.wustl.edu> - - * ace/Synch.cpp (dump): Fixed access error. - - * ace/OS.h: Fixed ACE_rwlock_t friend declaration. - - * ace/OS.i: Moved ACE_cond_t::waiters() such that it is now - visiable to NT. Also fixed ACE_OS::cond_timed_wait by returning - the correct return value on a TIMEOUT. Also fixed typo in - ACE_OS::sema_wait. - -Thu Feb 6 20:25:13 1997 Chris Cleeland <cleeland@cs.wustl.edu> - - * ace/OS.i (select): Adapted ACE_OS::select methods for use on - platforms (such as Linux) that allow select(2) to modify its - struct timeval arg. New behavior is triggered by the define - ACE_HAS_NONCONST_SELECT_TIMEVAL. Thanks to Jorn Jensen - <jornj@funcom.com> for reporting this! - -Thu Feb 06 09:48:43 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/config-sunos-sun*.h,README: added - ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR. - - * ace/IOStream.{h,cpp}: support - ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR - so that this builds with SunC++. - - * examples/IOStream/client/iostream_client.cpp: - reordered args and fixed argv indexes. - - * examples/IOStream/server/iostream_server.cpp: - use ACE_DEFAULT_SERVER_PORT for default port. - - * tests/Naming_Test.cpp (randomize): changed type of "size" arg to - size_t to avoid compiler warnings about signed/unsigned comparison. - -Thu Feb 06 09:40:47 1997 Chris Cleeland <cleeland@cs.wustl.edu> - - * ace/config-linux*.h: added typedef of timespec_t. - -Wed Feb 5 01:45:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.i: Changed the Win32 implementation of all methods that call - WaitForMultipleObjects() so that errno is set to - WAIT_ABANDONED if the mutex is abandoned. This makes it - possible for users to understand why ACE_OS methods that use - synchronization operations fail. Thanks to Ivan Murphy - <Ivan.Murphy@med.siemens.de> for reporting this problem. - - * ace/IOStream.cpp (ACE_Streambuf): Moved the const initialization - from the header file to the constructor since this is the only - portable way to do this. Thanks to Michael Maxie - <maxie@acm.org> for reporting this. - - * ace/OS.i: Updated the call to thr_setprio() for pthreads so that - it first determines the existing scheduling parameters and then - updates the priority. Thanks to Thilo Kielmann - <kielmann@informatik.uni-siegen.de> for help with this. - - * ace/config-osf1-4.0*.h: Updated ACE_NEEDS_HUGE_THREAD_STACKSIZE - to be 1 mega to minimize porting surprises. Thanks to Thilo - Kielmann <kielmann@informatik.uni-siegen.de> for help with this. - - * tests/Naming_Test.cpp: Cleaned up a few minor things related to - int i = 0 vs. size_t i = 0. - - * ace/SOCK_Dgram.cpp: Added a new macro called - ACE_HAS_SOCKADDR_MSG_NAME, which is used on platforms (e.g., - DG/UX) that require a cast to (struct sockaddr *) for the - msg_name field of struct msghdr. - -Wed Feb 05 10:45:41 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/IOStream.h: replaced __*manip with expanded types, because - Sun C++ doesn't have those typedefs; and added complete prototypes - for send, recv, send_n, and recv_n. - - * ace/IOStream.cpp: fixed "#define ACE_IOSTREAM_C" to keep g++ sane. - - * ace/Hash_Map_Manager.{h,cpp},Map_Manager.{h,cpp}: replaced - DEFAULT_SIZE with ACE_DEFAULT_MAP_SIZE so that Naming_Test runs - on SunC++ 4.1. - - * ace/High_Res_Timer.*: added optional scale factor. - - * examples/IOStream/{client,server}/Makefile: addd -g++ if building - with gcc. - - * tests/Naming_Test.cpp: moved declaration of "i" out of for loop - because it is used after the loop. - - * examples/ASX/UPIPE_Event_server/{Consumer,Supplier}_Router.cpp - (open): return 1 if init () succeeds. There's a commented-out - call to activate the objects that would (should?) return a value. - - * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp (main): declare n - as ssize_t instead of size_t to avoid compiler warning about - signed/unsigned comparison. - -Tue Feb 4 19:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Signal.cpp: Fixed all the ACE_Sig_Handler[s] methods so that - they now use ACE_Guard, rather than ACE_TSS_Guard, *unless* they - are actually performing callbacks to user-code. Not only is - this faster, but it also avoids thread-specific storage key - leaks on platforms like Solaris! - - * ace/OS.cpp (thr_keyfree): Added a new #ifdef for - ACE_HAS_THR_KEYDELETE, which is defined for UNIXWARE. This - fixes a nasty problem with leaking thread-specific keys. Thanks - to Nigel Owen <Nigel@voicelink.co.nz> for reporting this. - - * ace/Message_Block.cpp: Added a #include for - "ace/Service_Config.h". - - * ace/Malloc.i: Fixed a few warnings by removing the names of - unused parameters. - - * ace: Added many minor changes to ACE so that it will work on - DG/UX. Thanks to Michael Maxie <maxie@acm.org> for all these. - - * ace/LSOCK_Stream.cpp: Applied the same fix as to LSOCK.cpp. - - * ace/LSOCK.cpp: Removed the cast of 0 to (char *) for msg_name - since some platforms use (struct sockaddr *). By omitting the - cast the compiler will figure it out correctly. Thanks to - Michael Maxie <maxie@acm.org> for this. - - * ace/IOStream: Added a new template adapter for creating an - iostream-like object using an ACE IPC Stream for the actual I/O. - Thanks to James CE Johnson <jcej@lads.com> for this. - - * examples/Misc/test_iostreams.cpp: Added a test that illustrates - how the new ACE_iostreams mechanism works. Thanks to James CE - Johnson <jcej@lads.com> for this. - - * ace/Message_Block: Updated the ACE_Message_Block implementation - to use ACE_Service_Config::alloc() if the user doesn't supply a - customize version. This also means that we never delete the - allocator_strategy_, so we can remove this flag and reduce the - amount of storage by 4 bytes. Thanks to Irfan for noticing that - we can do this. - - * ace/platform_dgux4_epc.h: Added a new platform config file - for DG/UX. Thanks to Michael Maxie <maxie@acm.org> for - this. - - * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX. - Thanks to Michael Maxie <maxie@acm.org> for this. - -Tue Feb 04 18:26:01 1997 <irfan@cha-cha.cs.wustl.edu> - - * ace/Service_Config.cpp (alloc): The implementation now creates a - ACE_New_Allocator rather than a ACE_Allocator_Adaptor. If - you still want the old behavior, simply provide your own - custom allocator singleton for ACE_Service_Config. - - * ace/OS.i (mktemp): Added the missing ACE_INLINE directive. - - * ace/OS.h: ACE_HAS_INLINED_OSCALLS is now automatically defined - when __ACE_INLINE__ is defined. This avoids mysterious linking - problems that occur otherwise. - - * ace/Malloc: Added a virtual destructor to ACE_Allocator. Also - added a new class ACE_New_Allocator which is a sub-class of - ACE_Allocator. This class uses the new/delete operators to - allocate and free up memory. Please note that the only methods - that are supported are malloc() and free(). All other - methods are no-ops. If you require more functionality, please use: - ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL, - MUTEX>> This will allow you to use the added functionality of - bind/find/etc. while using the new/delete operators. - -Mon Feb 3 15:35:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/config-aix-*.h: Added a (char *) cast to - ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby - <John.D.Cosby@cpmx.saic.com> for reporting this. - - * ace/OS.cpp: Added a new set() method that sets the Time_Value - from a double. Thanks to Brad Flood for this suggestion. - - * ace/OS: Changed ACE_OS::flock_t to ACE_OS::ace_flock_t to avoid - a name clash on DG/UX. Thanks to Michael Maxie <maxie@acm.org> - for reporting this. - -Tue Feb 4 03:02:52 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * tests/Naming_Test.cpp: Added timing and made debug print outs - optional. Also added randomization of the test data. - - * ace/OS.h: Fixed prototype for gethrtime () - -Mon Feb 03 21:00:56 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD - even if ACE_HAS_THREADS is not defined. Thanks to - Michael Maxie <maxie@acm.org> for pointing this out. - - * examples/Threads/{process_mutex.cpp,process_semaphore.cpp, - task_three.cpp,thread_manager.cpp,thread_specific.cpp} (main): - added ACE_UNUSED_ARG (sa);. - - * examples/Threads/reader_writer.cpp: fixed declaration of - "shared_data" to be "static volatile" instead of "volatile - static", and removed unused variable "n". - - * examples/Threads/thread_pool.cpp: removed unused variable "result". - -Sun Feb 02 21:24:02 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: changed hrtime_t to ACE_hrtime_t. - - * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to - enable gethrtime () support. - - * ace/High_Res_Time.{h,i,cpp}: removed platform-specific #ifdef's, - instead added "unsupported ()" static member function; changed - changed signature of elapsed_time to take time reference as - argument instead of return value; added elapsed_time - (ACE_Time_Value &) and elapsed_time_incr (ACE_Time_Value &). - - * examples/Thread/context_switch.cpp: use ACE_High_Res_Timer - instead of the old Timer adapter. - - * ace/config-aix-4.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T. - - * ace/config-aix-4.2.x.h: added #define ACE_HAS_LONGLONG_T. - - * ace/Thread_Priority.{h,cpp}: moved #include of OS.h from .cpp - to .h file. - -Sun Feb 02 10:30:29 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Local_Name_Space.cpp: removed ACE_Map_Manager, ACE_Map_Iterator, - and ACE_Map_Entry: they don't appear to be used and, without - including their headers, this file won't compile. - - * ace/Hash_Map_Manager.cpp (Hash_Map_Manager (ACE_Allocator *)): - reordered initializers to match declaration order. - -Sat Feb 1 15:11:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro - flag since it is no longer needed. Thanks to Rob Jordan - <jordan@hursley.ibm.com> for reporting this. - -Sat Feb 1 03:25:21 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/SString.cpp: Added two methods to the wide string - implementation for high-performance. Even though these methods - are somewhat ugly and not the "OO" way of doing things, - performance was at stake here. - - * ace/Registry_Name_Space.cpp (resolve): Fixed the implementation - by correctly figuring out the size of the value in the - Registry. This allows us to dynamically allocated the correct - amount of memory. - - * ace/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the - maximum path length. - - * ace/Naming_Context.cpp: Fixed various memory leaks. - - * ace/Local_Name_Space_T.h: Replaced the simple-minded Map_Manager - with the new (improved) Hash_Map_Manager. - - * ace/Local_Name_Space.cpp: Added new methods operator!= and hash - required by the map. - - * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra - constructor. - - * tests/Naming_Test.cpp: Removed memory leaks. - -Fri Jan 31 19:39:48 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Hash_Map_Manager.cpp (ctor): reordered initializers - to match declaration order. - - * tests/Time_Value_Test.cpp: cast double argument to long - because there no longer is a constructor that takes a double. - - * ace/Hash_Map_Manager.{h,cpp}: removed #include of - ace/Hash_Map_Manager.i because it doesn't exist. - Protected .cpp file against multiple includes. Moved - #include of "ace/Malloc.h" from .h to .cpp file. - - * ace/Map_Manager.cpp (current_size, total_size): cast -1 to - size_t to avoid warning about signed-to-unsigned conversion. - - * ace/OS.h: moved hrtime_t typedef for ACE_WIN32 so it doesn't - get defined twice. - - * ace/OS.i (getservbyname): one last ACE_HAS_NONCONST_GETBY change: - missed "lproto" to "proto". - - * bin/create_ace_build: added checks for existing symlinks, so - now the script can be re-run safely at any time on a build - tree to update it. - -Fri Jan 31 02:16:30 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/config-aix-*.h: Made the default value for - ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions - with AIX. Thanks to Rob Jordan <jordan@hursley.ibm.com> for - this. - - * examples/Map_Manager: Added a new example of the - Hash_Map_Manager. - - * tests/Map_Manager: Integrated the Hash_Map_Manager into the - Map_Manager test and greatly improved the test (e.g., by adding - timing). - - * ace: Added a new implementation of the Map_Manager called - Hash_Map_Manager. This, of course, uses hashing rather than - linear search. The result should be a much faster - implementation for many types of applications. - -Thu Jan 30 13:55:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Map_Manager: Changed the return type of total_size() and - current_size() to size_t. - - * ace/OS: Had to remove the ACE_Time_Value (double) constructor - since it caused ambiguities with ACE_Time_Value (long). Thanks - to Per Andersson for figuring this out. - - * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Added - -D_REENTRANT to make things work correctly in MT programs. - Thanks to Marius for this fix. - - * ace/OS.h: Added several extra constructors for ACE_Time_Value so - that it won't cause problems with the new ACE_Time_Value - (double) constructor. - - * ace/Log_Record.cpp (ACE_Log_Record): Added an "L" to the 0 - initial value used for time_stamp_. Thanks to Marius for - reporting this. - - * ace: Added the new config-aix-4.2.x.h file, which supports the - AIX4.2 platform. Thanks to Rob Jordan <jordan@hursley.ibm.com> - for this. - - * include/makeinclude/platform_aix4.2.GNU: Added support for the - new AIX4.2 platform. Thanks to Rob Jordan - <jordan@hursley.ibm.com> for this. - - * ace/OS.h: It's now possible to override ACE_DEFAULT_BASE_ADDR in - a config.h file. This is important for platforms that need to - put shared memory segments at particular address ranges. Thanks - to Rob Jordan <jordan@hursley.ibm.com> for suggesting this. - -Thu Jan 30 16:01:37 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/{config-aix-4.1.x.h,README}: added ACE_HAS_AIX_HIRES_TIMER, - see change to gettimeofday in OS.i below; and ACE_HAS_LONGLONG_T. - - * ace/OS.i (gettimeofday, gethrtime): use read_real_time () if - ACE_HAS_AIX_HIRES_TIMER. Thanks to Bob Olson - <olson@mcs.anl.gov> for this suggestion. - - * ace/OS.h: define hrtime_t as long long if ACE_HAS_AIX_HIRES_TIMER. - - * ace/OS.{i,cpp}: uninlined ACE_OS::gethostbyname (), - and ACE_OS::inet_ntoa () on VxWorks, because they have - static char arrays. - - * ace/OS.i (gethostbyaddr, getservbyname, gethostbyaddr, - gethostbyname, getservbyname_r): with ACE_HAS_NONCONST_GETBY, - instead of copying the const argument, just cast it to (char *). - Thanks to Michael Maxie <maxie@acm.org> for pointing out the - problem with the nonstatic char arrays with sizes determined at - runtime. - - * ace/High_Res_Timer.*: added ACE_HAS_AIX_HIRES_TIMER support. - Also, renamed get_time () to elapsed_microseconds (). - - * examples/Threads/{Timer.h,context_switch_time.cpp}: - ACE_High_Res_Timer::elapsed_microseconds () instead of - ACE_High_Res_Timer::get_time (). - - * bin/create_ace_build: added this script: it creates an ACE build - tree in directory "build/<build name>" below the current - directory, which must be a ACE "top level" directory (such as - $WRAPPER_ROOT). The build tree directory structure mirrors that - of the ACE top level directory structure, except that instead of - containing any plain files, it contains only symlinks to the files - in the ACE top level structure. - -Thu Jan 30 06:57:50 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Thread_Priority.cpp (convert_to_os_priority): changed - switch (priority_class) to switch (priority_class_). - Thanks to Chris Lahey <CLahey@cccis.com> for pointing this out. - Also, return -1 on other than Solaris, Win32, and VxWorks. - -Wed Jan 29 22:05:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * tests/Naming_Test.cpp: Added the prefix "test_" to the bind(), - find(), rebind(), and unbind() functions. This avoids name - clashes with the bind() call from the socket API. Thanks to - Marius for this info. - - * ace/OS.cpp (ACE_Time_Value): Added a new constructor that makes - it possible to construct an ACE_Time_Value from a double. - Thanks to Brad Flood <BFLOOD@tcs.lmco.com> for this. - - * ace/OS.i (thr_join): If ACE_HAS_THREADS is defined, but none of - the threading APIs match (e.g., AIX) then we'll return - ACE_NOTSUP_RETURN(-1). Thanks to Chris Lahey for help with - this. - - * include/makeinclude/platform_aix.GNU: Made some changes to the - type of dynamic linker and libraries used by AIX 4.1. Thanks to - Chris Lahey for help with this. - - * ace/config-aix-4.1.x.h: Changed from BSD 4.3 to 4.4. Thanks - to Chris Lahey for help with this. - -Wed Jan 29 09:03:48 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: moved ACE_id_t and ACE_pri_t typedefs out of the - ACE_HAS_THREADS section. - - * ace/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks. - - * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated - comments. - - * examples/Threads/{context_switch_time.cpp,Timer.h,Makefile}: - added context switch timing test. Currently only works on - Suns because that's the only platform for which ACE has a - high-resolution timer. - - * Makefile: added chmod of VERSION file in TIMESTAMP macro. - -Wed Jan 29 00:59:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Removed - the -D_MIT_POSIX_PTHREADS symbol since we're using Xavier's - threads instead. Thanks to Marius Kjeldahl <marius@funcom.com, - mariusk@sn.no> for reporting this. - - * ace/config-linux-lxpthreads.h: Removed the _MIT_POSIX_PTHREADS - symbol since we're using Xavier's threads instead. Thanks to - Marius Kjeldahl <marius@funcom.com, mariusk@sn.no> for reporting - this. - -Tue Jan 28 23:32:58 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/SString: Added hash() methods to each ACE String class so - that we can use this with the new ACE_Hash_Set implementation of - ACE_Map_Manager. - - * ace/ACE.h (ACE): Added a UNICODE version of hash_pjw() so that - we can use it to hash ACE_WString. - - * ace/OS.i (thr_setprio): Fixed a typo that was left over from a - previous change. Thanks to Fred LaBar - <flabar@fallschurch.esys.com> for reporting this. - - * apps/Gateway/Gateway/{proxy_config,consumer_config}: Added - comments to these config files so they are easier to understand. - Thanks to Chuck Gehr for motivating this. - - * apps/Gateway/Peer/Peer.cpp: Changed the name from connection_id_ - to proxy_id_, which is more accurate. - - * apps/Gateway/Peer/Peer.cpp: Added a destructor to Peer_Handler - so that it can clean itself up properly when shutdown with a - signal. This fixes a nasty bug. - - * ace/config-win32-msvc4.x.h (ACE_HAS_MFC): By default, ACE now - enables ACE_HAS_MFC. This makes it possible to use - AfxBeginThread() with the ACE_THR_AFX flag. - - * ace/OS.cpp: Fixed a typo in the call to ::AfxBeginThread() - function. Thanks to Karlheinz for reporting this. - - * apps/Gateway/Peer/Peer.cpp: Removed all uses of the Map_Manager - from the Peer. There's only ever one connection from a Gateway - per-Peer, so what was this doing here anyway?! It was causing - problems due to multiple deletions, so removing it improves - robustness of the tests. - - * ace/OS.i: Commented out the "extern char **_sys_siglist" - definition since this was conflicting with the definition in - Solaris. If some platforms needs this, we'll need to add a - specific #ifdef. - -Tue Jan 28 21:57:45 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.{h,cpp}: added ACE_OS::set_sched_params (). It permits - platform-independent setting of thread priorities and - priority classes. It is currently supported on Solaris, - Win32, and VxWorks. - - * ace/Scheduling_Parameters.{h,i,cpp}, - ace/Thread_Priority.{h,i,cpp}, ace/Makefile: - Added these two classes to support ACE_OS::set_sched_params (). - -Tue Jan 28 12:42:39 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags. - - * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe. - - * tests/Pipe_Test.cpp (main): Added an iteration count to control - the number of children created by the main process. - - * ace/Memory_Pool.cpp (init_acquire): cast this->minimum_bytes_ to - size_t to avoid compiler warning if size_t is unsigned. - - * ace/OS.h: Added strncat to the OS class. - -Tue Jan 28 09:13:00 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/ACE.cpp (ACE::ldfind), - ace/Local_Name_Space_T.cpp, - ace/Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry), - ace/Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find), - Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool), - ace/Naming_Context.cpp (ACE_Naming_Context::open), - ace/Parse_Node.cpp (ACE_Location_Node::open_handle), - ace/Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host, - ACE_Registry::Binding_Iterator::Object_Iteration::next_n, - ACE_Registry::Binding_Iterator::Context_Iteration::next_n), - tests/UPIPE_SAP_Test.cpp: - changed "sizeof char" to "sizeof (char)" because g++ and Sun C++ - (properly) choked on it. - - * ace/Local_Name_Space_T.cpp (create_manager_i): - -- ::strncat () instead of ACE_OS::strcat () - -- "lock_name_for_backing_store" instead of - "lock_name_for_local_name_space" - - * ace/Naming_Context.cpp (both constructors): reordered - initializers to match declaration order. - - * include/makeinclude/platform_sunos5_g++.GNU: removed - -fno-strict-prototypes because it's not needed with SunOS 5.5.1. - -Mon Jan 27 21:33:00 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * tests/Naming_Test.cpp (main): Made modifications to the test to - make it more dynamic. Also made it work with UNICODE and - ACE_Naming_Context. - - * ace/Local_Name_Space_T.cpp (create_manager_i): Added a better - naming scheme for the locks. - - * ace: Changed the calculations of string lengths such that the - size of the character type is carefully considered. - - The following were affected: - - ACE.cpp (ACE::ldfind) - Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry) - Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find) - Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool) - Naming_Context.cpp (ACE_Naming_Context::open) - Parse_Node.cpp (ACE_Location_Node::open_handle) - Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host, - ACE_Registry::Binding_Iterator::Object_Iteration::next_n, - ACE_Registry::Binding_Iterator::Context_Iteration::next_n) - - * ace/OS.h: Added UNICODE support for ACE_DEFAULT_LOCALNAME. - - * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to: - - /* Proactor */ - ACE_Overlapped_File::ACE_Overlapped_File - ACE_Overlapped_File::open - - * ace/Registry_Name_Space.h: Changed the order of #include and - #define as that the correct set of MACROS are defined for the - include files. - - * tests/MM_Shared_Memory_Test.cpp: Added UNICODE support. - -Mon Jan 27 09:16:03 1997 David L. Levine <levine@cs.wustl.edu> - - * include/makeinclude/platform_sunos5_sunc++.GNU, - include/makeinclude/platform_sunos5_sunc++_orbix.GNU, - ace/config-sunos5.5-sunc++-4.x-orbix.h - ace/config-sunos5.5-sunc++-4.x.h: - disabled exception handling by commenting out ACE_HAS_EXCEPTIONS - in the config files and adding -noex to the platform files, - because it causes trouble, at least on MP machines. - -Mon Jan 27 14:54:31 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Memory_Pool.h: Added code to ACE_MMAP_Memory_Pool_Options to - take a minimum_bytes parameter. This is needed to prevent mmap - remapping when a large segment is requested. Thanks to Fred - LaBar <flabar@fallschurch.esys.com> for this. - -Sun Jan 26 13:39:13 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.i: Changed the typo sis_siglist to sys_siglist. Also, - changed the logic from #if !defined (ACE_HAS_SYS_SIGLIST) to - #if defined (ACE_HAS_SYS_SIGLIST) since this makes more sense... - Thanks to Nanbor Wang <nw1@cs.wustl.edu> for noticing this. - -Sat Jan 25 20:30:23 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/config-sunos5.5-sunc++-4.1.h: commented out ACE_HAS_EXCEPTIONS - #define because -noex is required with it, and that causes core - dump during thread exit on multiprocessor UltraSparcs. - - * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: added -noex - back because of core dump during thread exit on - multiprocessor UltraSparcs. - - * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp, - examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp (control): - added "default" case to switch statement to eliminate compiler - warnings about enumeration values not being handled in switch. - - * examples/ASX/UPIPE_Event_Server/event_server.cpp (consumer): - removed unused variable "iter". - -Sat Jan 25 12:50:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.i: Updated all the cond_timedwait() and cond_wait() - methods so that they decrement the count of waiters by one even - when errors occur. Thanks to Irfan for finding this. - - * ace/Map_Manager.cpp: Updated the ACE_Map_Iterator code so that - it no longer crashes if the Map has been closed. Thanks to - Slawomir Kuzniar <kuzniar@Bear.COM> for reporting this. - -Sat Jan 25 11:34:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu> - - * ace/SOCK_Connector.cpp (complete): Added a sleep of zero seconds - which allows non-blocking connects to work properly on NT. - - * ace/config-winnt-4.0-msvc4.x.h and config-win32-msvc4.x.h: - Added ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS. - - * ace/OS.i: Moved out all code for Time_Value from #if region. It - is common to all. - - * ace/Reactor: Added helper routines to stop the VC++ compiler from - bitching about destructors in exception handling code. - - * ace/ace.{mak,mdp}: Removed Time_Value.cpp from project. - - * tests/tests.{mak,mdp}: Corrected the creation of SOCK_Test and - Message_Blob_Test executables and temporary files. - -Fri Jan 24 09:01:50 1997 David L. Levine <levine@cs.wustl.edu> - - * examples/Connection/misc/Connection_Handler.cpp: added - specialization of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - so that subproject will build with g++ without optimization. - - * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations - of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH> and - ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - so that subproject will build with g++ without optimization. - - * tests/Reactor_Exceptions_Test.cpp (main): added ACE_UNUSED_ARG - for argc and argv when ACE_HAS_EXCEPTIONS is not defined. - - * performance-tests/Misc/test_mutex.cpp: made destructor of - Thread_Mutex_Derived virtual because the class has other virtual - functions. - -Thu Jan 23 11:51:45 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/config-sunos5.5-g++.h: commented out ACE_HAS_EXCEPTIONS because - -fhandle-exceptions is broken in g++ 2.7.2 (and is required in order - to use exception handling); also, added ACE_HAS_INLINED_OSCALLS, if - __ACE_INLINE__ is #defined. - - * ace/config-sunos5.5-sunc++-4.1.h: added ACE_HAS_INLINED_OSCALLS, - if __ACE_INLINE__ is #defined. - -Wed Jan 22 15:04:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.h: Moved the ACE_TIMER_SKEW macro to below the #inclusion - of config.h and updated it so that it can be overridden in the - config.h file if necessary. Thanks to Bob Olson - <olson@mcs.anl.gov> for motivating this. - - * ace/OS.cpp: Fixed the implementation of - ACE_Thread_ID::operator== so that it works correctly when thread - ids and thread handles aren't ints. Thanks to Chuck Gehr for - reporting this. - - * ace/OS.i (thr_getprio): Moved a stray #else into the right - place. Thanks to Chuck Gehr for reporting this. - - * ace/OS.i (sema_post): this->count_++ should have been - s->count_++. Thanks to Chuck Gehr for reporting this. - - * ace/Synch_T.cpp: Added an extern "C" definition for - ACE_TSS_C_cleanup(). Thanks to Chuck Gehr for reporting this. - - * ace: Added a new #define called ACE_LACKS_SYS_NERR to the - config files for MVS and VxWorks. This is used in OS.cpp - as follows: - - #if defined (ACE_LACKS_SYS_NERR) - int sys_nerr = ERRMAX + 1; - #endif /* ACE_LACKS_SYS_NERR */ - - Thanks to Chuck Gehr for reporting this. - - * Removed all #inclusions of "ace/Time_Value.h." This file - no longer contains anything besides a #include "ace/OS.h" - and is only kept around due to backwards compatibility. - - * ace: Moved the contents of Time_Value.h into OS.h to reduce the - confusion that arises from the #inclusion of "config.h" in - Time_Value.h. Also merged the contents of Time_Value.{i,cpp} - into OS.{i,cpp}. Thanks to the MDA guys for motivating this. - - * tests/Reactor_Exceptions_Test.cpp: Added a new test that - exercises the Reactor with C++ exceptions. Thanks to Luca for - the test. - - * ace/Reactor.cpp (handle_events): Added Win32 structured - exception handling support to the ACE_Reactor::handle_events() - method so that it correctly releases the token lock when Win32 - SEH occur in callback routines. Thanks to Luca for reporting - this problem. - - * ace: Added a new macro called ACE_HAS_EXCEPTIONS, which - indicates that the compiler supports C++ exception handling. - - * include/makeinclude/platform_sunos5_sunc++*.GNU: Commented out - the -noex flag for now. Hopefully, things will work correctly - now. - - * ace/Thread_Manager.cpp (exit): Removed the final acquire() on - ace_mon, which is no longer necessary since the Guard classes - now keep track of whether they are "owned". Thanks to Karlheinz - and Detlef for this fix. - -Wed Jan 22 09:05:31 1997 David L. Levine <levine@cs.wustl.edu> - - * Makefile,VERSION: modified top-level Makefile (and VERSION) - to add a timestamp to the VERSION file if creating a release - from the /project/adaptive/ACE_wrappers directory. If it - causes problems, this will disable it: - % make TIMESTAMP= release. - - * ace/Local_Tokens.cpp (dump): replaced "ACE_TSS<ACE_TPQ_Entry>" - with "ACE_TPQ_ENTRY" so that ACE_NO_TSS_TOKENS is supported. - - * ace/Synch.h: fixed typo in comment header for ACE_Thread_Semaphore - - * ace/config-vxworks-ghs-1.8.h,config-vxworks5.2-g++.h, - config-unixware-2.01-g++.h: - protect ACE_HAS_INLINED_OSCALLS #defined with - #if defined (__ACE_INLINE__). - - * apps/Gateway/Gateway/Event_Channel.cpp (open): added - ACE_UNUSED_ARG (sig);. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.h: - declared a friend of class Peer_Router_Context because it - has a private destructor, to eliminate compiler warning - about not having any friends. - - * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp - (open): added return 0 in "true" branch of if statement so - that the function always returns a value. - -Tue Jan 21 09:19:44 1997 David L. Levine <levine@cs.wustl.edu> - - * tests/Reader_Writer_Test.cpp (reader): commented out unused - variable "n"; also, commented out unused function - print_usage_and_die. - - * tests/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added - ACE_UNUSED_ARG (sa);. - - * tests/Thread_Pool_Test.cpp (open): added return 0 at end. - -Tue Jan 21 11:00:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * apps/Gateway/Gateway/Gateway.cpp (parse_args): There was a small - bug in parse_args (latest beta), it mixed proxy and consumer - conf files. Thanks to Per Andersson - <Per.Andersson@hfera.ericsson.se> for reporting this. - -Mon Jan 20 13:29:28 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.i, ace/Task.h, and ace/Thread_Manager.h: changed a few - occurrences of NULL to 0 (for other than Win32 platforms), - primarily to avoid compiler warnings on VxWorks if ACE.h isn't - #included before stddef.h. - - * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp - (handle_input): replaced %d format with %hu for u_short arg. - - * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp - (run_writer): initialized variable "t" to avoid compiler warning. - - * examples/Connection/misc/Connection_Handler.cpp (handle_timeout): - added ACE_UNUSED_ARG (tv); also, added explicit int return type - to definition of Connection_Handler::close (u_long). - - * examples/Threads/task_four.cpp (Invoker_Task::svc): - moved declaration of "task" out of for loop because it is - also used after the for loop. - - * netsvcs/lib/Name_Handler.cpp, Server_Logging_Handler.cpp, - TS_Clerk_Handler.cpp, TS_Server_Handler.cpp, Token_Handler.cpp: - added ACE_UNUSED_ARG (sig);. - -Sun Jan 19 11:10:49 1997 David L. Levine <levine@cs.wustl.edu> - - * include/makeinclude/platform_sunos5_sunc++.GNU, - platform_sunos5_sunc++_4.1.GNU: - added comment about compiler warnings with +w option. - Also, added +w to platform_sunos5_sunc++_4.1.GNU. With the - other changes in this ChangeLog entry, there no longer should - be significant warnings from Sun C++ when building ACE. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp - (Peer_Handler::put): added ACE_UNUSED_ARG (tv);. - - * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main), - netsvcs/clients/Tokens/invariant/invariant.cpp (main): - commented out argc and argv. - - * examples/Mem_Map/file-reverse/file-reverse.cpp (main): - removed unused variable "cp". - - * netsvcs/clients/Tokens/manual/manual.cpp (handle_input, - handle_exception): added ACE_UNUSED_ARG (fd); and - (create_proxy): added return statement at end: even - though it should never be reached, it eliminates a - compiler warning. - - * examples/OS/Process/process.cpp, - examples/Reactor/Misc/test_reactors.cpp, - netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp, - netsvcs/clients/Tokens/mutex/test_mutex.cpp, - netsvcs/clients/Tokens/rw_lock/rw_locks.cpp, - performance-tests/TTCP/ORBeline/ttcp_i.cpp, - performance-tests/TTCP/Orbix/ttcp_i.cpp (main): - return 0 instead of 42. - -Fri Jan 17 11:47:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/OS.h: Added an equivalent set of - ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the - ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm - <gonzo@ing.puc.cl> for suggesting this. - - * ace/OS.cpp (ACE_Thread_Adapter): Added a new feature that allows - logging features to be inherited by threads. It works with - those OSs (e.g., Win32) that use ACE_Thread_Adapter class. At - some point, we might do this for all the OSs. Thanks to Luca - for this. - - * examples/Connection/misc/Connection_Handler.cpp: Added a - new example that illustrates how to use the Acceptor pattern - to create multiple threads, each running its own Reactor. - - * ace/Log_Msg.cpp (dump): Some of the variables in the dump() - method have the wrong format specification type. These are: - restart_ (%d), flags_ (%x), priority_mask_ (%d). They are now - fixed, thanks to Luca. - - * tests/Priority_Task_Test.cpp (open): Add an ACE_ASSERT to make - sure that the tasks activate() correctly. Thanks to David for - finding this. - - * ace/config-linux-lxpthreads.h: Added #defines for - ACE_HAS_AUTOMATIC_INIT_FINI and ACE_HAS_SVR4_DYNAMIC_LINKING. - Thanks to Marius for this. - - * ace/Malloc.h: Changed the typedef of ACE_Malloc_Align to a macro - called ACE_MALLOC_ALIGN to allow users to override this value in - their config.h file. This is necessary for platforms that don't - have "long" word alignments. Thanks to Fred LaBar - <flabar@fallschurch.esys.com> for this suggestion. - - * ace/OS.h: Added an #ifdef check for ACE_HAS_IRIX62_THREADS and - if so, we'll use the if (&a) /* null */; } form of the - ACE_UNUSED_ARG macro to avoid unnecessary warnings. Thanks to - Fred LaBar <flabar@fallschurch.esys.com> for testing this out. - -Fri Jan 17 16:33:25 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/High_Res_Timer.*: added elapsed_time () and get_time (). - - * netsvcs/clients/Tokens/collection/collection.cpp, rw_locks.cpp: - commented out unused variables to avoid compiler warnings; and - return 0 from main (). - - * include/makeinclude/rules.local.GNU, - netsvcs/lib/Makefile, - examples/Service_Configurator/IPC-tests/server/Makefile: - fixed ESOBUILD mechanism to work on all platforms, not just Linux. - Thanks to Marius Kjeldahl <marius@funcom.com> for this fix. - - * ace/OS.i and OS.cpp: uninlined functions that use varargs, because - they usually won't get inlined anyways. - - * ace/OS.cpp (thr_create): added #else clause to be sure that - always sparam.sched_priority always get set to the priority argument. - - * netsvcs/clients/Naming/Client/Client_Test.cpp: commented out - unused parameters and wrapped combined assignments/conditional - values to avoid compiler (g++) warnings. - - * tests/Priority_Task_Test.cpp: added check for successful thread - spawn, and ACE_NEW_THREAD to svc () so that messages get logged. - -Thu Jan 16 17:03:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * include/makeinclude: Added support for shared object files - on Linux. Thanks to Marius Kjeldahl <mariusk@sn.no, - marius@funcom.com> for his help with this. - - * ace: Merged in the IRIX support, mainly the missing netdb reentrant - functions. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> - and Carlos O'Ryan <coryan@mat.puc.cl> for their help. - - * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to - avoid name clashes with STL (ugh). - - * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things - will link. Thanks to John Morey for reporting this. - - * ace/Synch_T.h: Fixed: class ACE_Write_Guard: method: - tryacquire_write so that it will call - ...->lock_->tryacquire_write() and not - ...->lock_->acquire_write(). Thanks to Alexandre Karev - <Alexandre.Karev@cern.ch> for this fix. - -Thu Jan 16 15:51:16 1997 David L. Levine <levine@cs.wustl.edu> - - * Dump.cpp (register_object): initialized "slot" so that g++ doesn't - complain about uninitialized use. - - * Reactor.cpp (initialized): use ACE_GUARD_RETURN instead of - ACE_GUARD because the function returns a value; - (find): initialize "i" if handle is out of range so that g++ - doesn't complain about uninitialized use. - - * Service_Repository.cpp (remove): removed unused variable "handle". - - * Thread_Manager.h: made destructor virtual now that spawn_i () is - virtual. - - * Timer_Heap.cpp: changed some int loop indicies to size_t to - make sure that comparisons are consistently signed or unsigned. - - * OS.h, config-vxworks*.h: removed ACE_HAS_GREENHILLS_SOCKETS - ACE macro because the code it wrapped applies to all VxWorks - compilers, not just GreenHills. - -Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/ACE.cpp (round_to_pagesize): If _SC_PAGESIZE is enabled then - we set the ACE::pagesize_ variable using sysconf(2). Thanks to - James Mansion for this suggestion. - -Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/Timer_Queue.cpp (expire): Changed a line of code from - - ACE_Timer_Queue_Iterator &iterator (this->iterator ()); - - to - - ACE_Timer_Queue_Iterator &iterator = this->iterator (); - - so that the Visual C++ compiler can grok it. Thanks to John - Morey for reporting this. - - * ace/Reactor.cpp: Modified the close() method so that it can be - called multiple times with no bad side-effects. - - * ace/Pipe.cpp: Modified the close() method so that it can be - called multiple times with no bad side-effects. - - * ace/Reactor: Added an initialized() method that indicates - whether the Reactor was successfully initialized. Also - rearranged the code in ACE_Reactor::open() so that initialized_ - is only set at the end of the method when everything succeeds. - If things *don't* succeed, we call close() on the way out. - Thanks to Luca for these suggestions. - - * ace/Reactor.cpp (close): When closing down the ACE_Reactor, we - now set initialized_ back to 0 so that it can be reopened again - later. - - * tests/Reader_Writer_Test.cpp: There were some problems with this - test due to the fact that on many pthreads platforms pthread_t - isn't an int (it's a struct). Thanks to Chuck Gehr - <gehr@sweng.stortek.com> for the fix. - - * ace/OS.i (exit): In WIN32 when the process exits through an - ExitProcess() call, some process resources (e.g., file handles) - are freed before the static variable destructors are - called. This results in an application error when tracing is - enabled. Removing the ACE_TRACE call in ~ACE_Event_Handler - seems to fix this. Thanks to Luca for this fix. - - * ace/OS: Fixed the implementation of semaphores for the POSIX - port (POSIX lacks semaphores). The trick was to add a "waiters" - field, along with the semaphore count. Thanks to John Bossom - <John.Bossom@Cognos.COM> for reporting this. - - * examples/Threads/wfmo.cpp: Added a new test program that seems - to indicate that the Win32 WaitForMultipleObjects() function can - be called in multiple threads, all of which wait on the same set - of HANDLEs. Note that the dispatching of the threads is - relatively "fair" (i.e., everyone gets a chance to process the - various HANDLEs as they become active). Thanks to Ari Erev - <Ari_Erev@comverse.com> for suggesting this and providing the - initial code. - - * ace/Thread_Manager.h: Made the spawn_i() method virtual and - moved it into the protected section of the class so that it can - be over-ridden by subclasses. Thanks to Tim Harrison for - suggesting this. - -Tue Jan 14 15:57:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/OS.h: Changed the default size of ACE_DEFAULT_TIMERS to - _SC_TIMER_MAX (which is typically around 40 or so). - Thanks to Stuart Powell <stuartp@in.ot.com.au> for - suggesting this. - - * tests/Timer_Queue_Test.cpp (main): Added some additional logic - so that we can test the performance of the preallocated and - non-preallocated ACE_Timer_Heap. - - * ace/Timer_Heap: Added a new "preallocate nodes" mechanism to the - ACE_Timer_Heap. If this is enabled by the constructor, then we - preallocate as many ACE_Timer_Nodes as there are slots in the - heap. This allows us to completely remove the need for dynamic - memory allocation, which is important for real-time systems. - - * ace/Thread_Manager.cpp (remove_thr): Optimized the code just a - tad by decrementing the current_count_ *first*. Thanks to Per - Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this. - - * ace/ReactorEx: Updated the implementation so that the - handle_events() method now in fact *does* return the number of - event handler's dispatched (i.e., the implementation matches the - documentation...). Thanks to Hamutal Yanay - <Hamutal_Yanay@mail.icomverse.com> for reporting this. - - * ace/Service_Repository.cpp (remove): Removed an extra call to - ACE_OS::dlclose(). This is already being called in the - destructor of ACE_Service_Record. Thanks to Karlheinz for - reporting this. - - * man: Updated all the nroff and html documentation. - - * ace/Timer_Heap: Implemented the spiffy new timer cancellation - algorithm that requires only O(log N) time to remove a timer - from the ACE_Timer_Heap. This is about 50 to 100 times faster - than using the ACE_Timer_List implementation. - -Tue Jan 14 21:01:36 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: Replace "Linux" preprocessor symbol with "linux". - -Mon Jan 13 17:57:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/Synch: Added lock() accessor methods to both - ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal - Yanay <Hamutal_Yanay@mail.icomverse.com> for suggesting this. - - * ace/config-mvs.h: Added a #define for ACE_HAS_GETPAGESIZE. - Thanks to Chuck Gehr for this information. - - * ace/LSOCK_Stream.h: Added a new typedef for PEER_ADDR that is - associated with ACE_UNIX_Addr. Thanks to Mark Rabotnikov - <mark@usp.elscintcorp.co.il> for suggesting this. - -Mon Jan 13 22:24:09 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/OS.h: Added #undefs of sigemptyset and sigfillset on Linux - when __OPTIMIZE__ is enabled. Yes, the system header on Linux - really #defines them when optimizing! Thanks to an anonymous - ACE user for pointing this out. - - * tests/tests_config.h: Dropped ACE_MAX_ITERATIONS back to 10. - -Sun Jan 12 16:59:52 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/Timer_List.cpp (schedule): Cleanup the code so that (1) - timer_id never == -1 (in order to distinguish it from error - return values and (2) so that we avoid an unnecessary check for - operator new failure. - - * ace/OS.h: Added a new #define called ACE_DEFAULT_MAX_TIMERS, - which specifies the maximum number of ACE_Event_Handlers - supported by ACE_Timer_Heap. - - * ace/Proactor.cpp (ACE_Proactor): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace/ReactorEx.cpp (open): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace/Reactor.cpp (open): Updated the allocation of - ACE_Timer_Queue so that it really points to an ACE_Timer_List by - default. Naturally, this can be overridden by users. - - * ace: Added two new classes called ACE_Timer_List and - ACE_Timer_Heap, which derive from ACE_Timer_Queue. - ACE_Timer_List is essentially the old behavior of - ACE_Timer_Queue, i.e., it uses an implementation of a linked - list of ACE_Timer_Nodes. ACE_Timer_Heap, on the other hand, - uses a heap-based callout queue, which is more appropriate for - certain real-time applications. - - * ace/Timer_Queue: Revised the ACE_Timer_Queue implementation so - that it's now an abstract base class with most of the - implementation details pushed into the ACE_Timer_List and - ACE_Timer_Heap subclasses. - - * ace/Timer_Queue.h: Made all the ACE_Timer_Queue methods public - so that we can override them in a subclass (e.g., the new - ACE_Timer_Heap). - - * examples/Logger/Acceptor-server/server_loggerd.cpp: Fixed this - example application so that it only uses a single Reactor (the - REACTOR::instance()) rather than two Reactors. Thanks to Sandro - Doro <alex@aureus.sublink.org> for reporting this. - - * netsvcs/lib/Logging_Strategy.cpp: Fixed the #include of - fstream.h and iostream.h to use the '<' '>' notation rather than - the '"' and '"' notation. This avoids problems with running - "make depend". Thanks to Rino Simioni <sir@necsy.it> for - reporting this fix. - -Sun Jan 12 18:20:49 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/ACE.cpp (round_to_pagesize): fixed typo in reference to - ACE::pagesize_. - - * ace/ACE.cpp: initialize ACE::pagesize_ to 0. - - * ace/config-irix*.h and config-win*.h: removed ACE_PAGE_SIZE - definition because these platforms no longer use it. - - * tests/UNIX*.conf and Win32server.conf: replaced net_svcs - with netsvcs. - -Sat Jan 11 15:11:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * ace/OS.i (thr_setprio): The POSIX implementation of - ACE_OS:thr_setprio did not set the priority. It calls: - - pthread_setschedparam( thr_id, &policy, ¶m ) - - and then does - - prio = param.sched_priority. - - instead of - - param.sched_priority = prio; - - This is now fixed. Thanks to John Bossom <John.Bossom@Cognos.COM> - for reporting this. - - * ace/config-irix*.h: Modified all the IRIX config files to - use the new ACE_HAS_GETPAGESIZE feature since this is necessary - to differentiate between IRIX and IRIX64. - Thanks to Fred LaBar <flabar@fallschurch.esys.com> for - reporting this. - - * ace/ACE.cpp: Modified the round_to_pagesize() so that if - a config.h file enables ACE_HAS_GETPAGESIZE then we use - that function in preference to the value in config.h. - Thanks to Fred LaBar <flabar@fallschurch.esys.com> for - suggesting this. - - * ace/ACE.cpp: Modified the round_to_pagesize() so that on - platforms that allow the page size to be obtained dynamically - we'll get that rather than replying on what it set in the - config.h file. We'll cache this value in a static variable - to speedup searches. Thanks to James Mansion for suggesting - this. - - * apps/Gateway/Gateway: Finished adding support for thread-safe - reference counting to the uses of ACE_Message_Block. - - * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced - the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile - correctly on non-MT platforms. - -Fri Jan 10 12:38:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - - * Added a COPYING file that explicitly states the copyright status - of ACE. - - * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h: - By default, we'll revert to *not* enabling - ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is - well-support by the compiler since it breaks some application - code that expects to use 3 template parameters for - ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM - macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr" - tuple) in order to achieve portability in either case. Thanks - to Karlheinz for pointing out the need for backwards - compatibility. - -Wed Jan 8 01:00:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * tests/Message_Block_Test.cpp: Enhanced the torture test of the - ACE_Message_Block so that it stresses the reference counting - implementation in a multi-threaded environment. - -Wed Jan 08 10:26:45 1997 David L. Levine <levine@cs.wustl.edu> - - * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to - allocator_strategry_ after deleting it; fixed template - specializations (for g++) by using macros instead of class names; - commented out template specializations because Service_Record.cpp - already has them, and they should only appear once in the library - in order to avoid link clashes - - * ace/Service_Object.cpp (ACE_Service_Object): reordered - initializations in constructor - - * ace/Service_Record.cpp (ACE_Service_Record): reordered - initializations in constructor - - * ace/config-linux-lxpthreads.h: added - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to - James CE Johnson <jcej@lads.com> for tracking down this - problem and testing the fix. - -Tue Jan 7 13:03:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Message_Block: Continued to improve the - ACE_Message_Block/ACE_Data_Block implementation. - - * ace/Message_Block: Added a new constructor to ACE_Message_Block - that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for - this idea. - - * ace/Log_Msg.cpp: Now that we've prevented signal handlers from - occurring within critical sections of ACE_Log_Msg::log() we - don't need to use the ACE_Recursive_Thread_Mutex anymore. - Instead, we just need ACE_Thread_Mutex. - - * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in - ACE_Log_Msg::log() that acquires the mutex that serializes - output. This prevents nasty problems with recursive to - ACE_Log_Msg::log() from within signal handlers. - - * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout - of ACE_Time_Value::zero to the ACE_Reactor::notify() method when - called in the ACE_Service_Config::end_reactor_event_loop(). - This prevents the Reactor from blocking indefinitely if there's - no longer a thread to receive from the notification pipe. - - * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal - nametest.cpp and nametest.h files. I'm not sure why they were - still there, but they shouldn't have been! - - * ace/Synch.i (remove): this->owner_ should be set to -1 before - calling this->release(). Thanks to Per Andersson - <Per.Andersson@hfera.ericsson.se> for suggesting this. - - * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit" - to the ACE_Thread_Control::exit() method. This controls whether - we call ACE_OS::thr_exit() after removing the thread from the - Thread Manager's internal table. This is necessary to work - around pthread bugs on certain platforms (e.g., AIX and Linux). - - * ace/Synch.h: Removed the - ACE_Recursive_Thread_Mutex::set_nesting() method since this - isn't being used and is potentially dangerous. Thanks to Per - Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this. - - * ace/XtReactor: Updated the XtReactor so that it uses the next - internal Reactor implementation. Thanks to Mark Rabotnikov - <mark@usp.elscintcorp.co.il> for reporting this. - - * ace/Task.i: Updated the grp_id(int) method to cache the group id - in the task and then set it in the Thread_Manager, if there is - one. Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com> - for suggesting this. - - * ace/Log_Record.h: Updated the ACE_Log_Record class to use the - new ACE_MAXLOGMSGLEN macro. - - * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By - default this is 4k. However, you can reset it in the config.h - file if you'd like to increase or decrease the size. Thanks to - Anthony McConnell for suggesting this. - - * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and - tss2.cpp examples and improved the comments. Thanks to Luca for - suggesting this. - - * ace/Service_Object.cpp (fini): Added the "virtual" keyword to - the new destructor of ACE_Service_Type. Thanks to David for - reporting this. - - * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block - and ACE_Message_Block locking_strategy() methods so that they'd - be defined as inline before being used. Thanks to David for - reporting this. - -Mon Jan 6 16:46:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Service_Manager.cpp (fini): Only try to remove the - ACE_Service_Manager from the Reactor if it's actually been - registered in the first place (i.e., if it's get_handle() method - does not return ACE_INVALID_HANDLE). - - * netsvcs/servers/svc.conf: Changed the name of the net services - .so file from libnet_svcs to netsvcs so that it will work - correctly with our new "cross-platform" svc.conf ACE::ldfind() - strategy. Thanks to Marius Kjeldahl <marius@funcom.com> for - reporting this. - - * ace/Reactor.cpp (find): Added a strategic break and a check for - handle_in_range(). Thanks to Tim for this help! - - * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part - from the executable shared object file names in the svc.conf - file so that it will work with the new "cross-platform" svc.conf - ACE::ldfind() strategy. Thanks to Marius Kjeldahl - <marius@funcom.com> for reporting this. - - * ace/Service_Record.cpp (fini): Added an extra assignment to a - temporary const void *obj to avoid problems with MSVC++ and it's - cast mechanism. - - * ace/ReactorEx.h: Added a default parameter to - ACE_ReactorEx::notify(). Thanks to Tim for noticing this. - -Sun Jan 5 10:48:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * tests: Added a new test for ACE_Message_Block, which is called - Message_Block_Test.cpp (no surprise there ;-)). This test - exercises the reference counting mechanisms. - - * ace/Message_Block.h: Made the destructors for ACE_Message_Block - and ACE_Data_Block virtual, so that these classes can be - subclassed and ACE_Message_Blocks can delete these - subclasses (either via release() or delete). Thanks to Tilo - Christ for suggesting this. - - * ace/Message_Block.cpp: Modified the implementation - of ACE_Message_Block/ACE_Data_Block so that we always create - an allocator_strategy_. By default, this strategy will be - ACE_Allocator_Adapter <ACE_Malloc <ACE_Local_Memory_Pool, ACE_Null_Mutex> >; - This greatly simplifies the code. - - * ace/Message_Block.h: It's now possible to assign a - Message_Block's priority when you create it. - - * ace/Reactor: Sped things up some more by merging the Reactor's - any_ready() and fill_in_ready() methods together. This reduces - redundant computations. - - * ace/Reactor: Changed the name of ACE_Reactor::detach() to - ACE_Reactor::remove_handler_i() and changed the name of - ACE_Reactor::attach() to ACE_Reactor::register_handler_i(). - This is more consistent with the other naming schemes. - - * ace/Reactor.cpp: Reworked the implementation of the Handler - Repository's unbind() method in order to simplfy the logic. - Also merged in all the Reactor's detach() functionality into the - unbind() method in order to localize all the handler removal - processing. - - * ace/Reactor[Ex].cpp: Added more descriptive errno entries for - failed operations in the handler repository. - - * ace/Reactor.cpp: Modified the implementation of the Handler - Repository's bind() method so that it reports an error if you - try to register an Event_Handler for an invalid HANDLE. - - * ace/Reactor.cpp: Reimplemented the internals of the Reactor to - prepare for the upcoming merge of the Reactor and ReactorEx to - use a single code base. - - * ace/Timer_Queue.cpp: Modified the behavior of the expire() - methods so that they return the number of ACE_Event_Handlers - whose handle_timeout() method was called. - -Sat Jan 4 11:47:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will - be recast as a strategy in subsequent implementations. - - * ace/Reactor.cpp: Added a new call, - ACE_Handler_Repository::handle_in_range(), which checks to make - sure that the HANDLE is within the range of 0 .. max_handlep1_. - This factors out some redundant code. - - * ace/Reactor.cpp: Sped up the performance of the Reactor by - removing redundant calls to - ACE_Handler_Repository::invalid_handle() and - ACE_Handler_Repository::find(). - - * tests/Reactors_Test.cpp: Added a test for - the new Reactor::notify() method with timeouts. - - * examples/Reactor/Misc/notification.cpp (svc): Added a test for - the new Reactor::notify() method with timeouts. - - * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they - use timed send() operations for their notify() methods. This - makes it possible for users to bound the amount of time they're - willing to wait to try and notify the Reactor. This is mostly - useful to avoid infinite blocking if there is congestion in the - Reactor's notification mechanism. - - * ace/ACE.cpp: Added a new timed send() method that uses the - write() system call on UNIX and the socket send() call on Win32. - This new method is used in the new ACE_Reactor::notify() method, - which now supported timed notifications. - - * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code - and reduce unnecessary #ifdefs, I've merged the max_handlep1_ - and cur_size_ fields (which are now called max_handlep1_). - -Fri Jan 3 10:47:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace: Replaced all uses of "delete mb" with mb->release (); - - * ace/Stream_Modules.cpp: Replaced the use of explicit bit - twiddling with the ACE_BIT* macros. - - * ace/Message_Block.cpp: Make sure that we use the - allocator_strategy_ to create the memory for the reference count - since this may need to go into shared memory if that's the - memory pool where the Message_Block allocations are coming from. - - * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and - ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW, - except that these - - * ace/Message_Block.cpp (release): Make sure to "delete this" - outside the scope of the locking_strategy_. - - * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type. - Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for - suggesting this. - - * ace/Service_Object.i: Be smarter about how we reassign the name_ - pointer, i.e., delete the old one and make a copy. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Module.cpp (open): Rearranged the assignments to - reader_q->mod_ and writer_q->mod_ so that we don't try to - initialize through NULL pointers. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_ - to NULL so that the following change works correctly now. - Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for - reporting this. - - * ace/Service_Record.i (name): Make sure to delete [] (char *) - this->name_ before allocating a new one. Thanks to - Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting - this. - - * ace/Message_Block: Reworked the reference counting implemention - so that reference counts are shared correctly amongst their - various owners. This requires making a deep copy the "header" - portion, but a shallow copy of the "data." - - * ace/Message_Block.cpp (ACE_Message_Block): Updated all three - ACE_Message_Block constructors so that they all call the init() - method. This centralizes all the initialization logic in one - place. - -Thu Jan 2 00:42:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the - cont_ field to 0 after "releasing" it so that we don't - mistakenly think it's still around later on. This problem arose - in the ACE_Message_Queue::close() method, which was trying to - count the number of bytes being freed. - - * ace/Message_Queue.cpp (close): Fixed a subtle bug where we - weren't actually deleting messages from the - ACE_Message_Queue::close() routine. This should work now... - - * ace/Message_Queue.cpp (close): Replaced the use of "delete mb" - with "mb->release()" since the Message_Blocks are now reference - counted. - - * ace/Message_Block: Enhanced the reference counting scheme so - that you can increment and decrement the count by an arbitrary - amount. This is particular useful when you know you'll be - sending the same Message_Block to N consumers. - - * ace/Singleton: The dump() must be used same as instance() - (without supplying an object) so it must be declarated *static*, - i.e., - - static void dump (void); - - Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting - this. - - * examples/ASX/Event_Server: Completely rewrote and retested the - ACE Event Server example. The new code is *much* easier to - understand, has many more comments, is more robust, and compiles - much faster since I removed many of the templates. - - * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the - tranceiver so that it shuts down correctly when the Event_Server - exits. - - * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a - problem where we were trying to select() on ACE_STDIN on Win32. - Naturally, this doesn't work, so we used the - ACE::register_stdin_handler() to fix this. Thanks to - Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com> - for reporting this. - - * examples/ASX/Event_Server/Event_Server/Options: Changed the - Options class to be a Singleton... - - * ace/Task.h: Added "const" method qualifier to accessor methods - like is_reader() and is_writer(). - -Wed Jan 1 00:10:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - - * ace/Message_Block: Added a new static release() method that - behaves like the non-static method release(), except that it - checks if <mb> is 0. This is similar to CORBA::release(), which - is useful if you want to eliminate lots of checks for NULL - pointers before calling release() on them. - - * Updated all places in ACE where we use - ACE_Event_Handler::READ_MASK when we should be using - ACE_Event_Handler::ACCEPT_MASK. - - * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: - Changed the name of the acceptor class from Handle_Thr_Stream to - Handle_Thr_Acceptor, which is more accurate. - - * ace/Reactor: Since we've now got an - ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept - connections asynchronously using Win32 overlapped I/O) we can - now use this with the ACE_Reactor, as well. In particular, any - time that we are registering a "passive-mode" socket acceptor we - can now specify ACE_Event_Handler::ACCEPT_MASK. This is much - more intuitive than using the READ_MASK (which never made any - sense...). The ACE_Reactor now treats the ACCEPT_MASK as a - READ_MASK internally, so you can still use READ_MASK if you'd - like (i.e., this change doesn't break any existing code). - - * ace/Event_Handler: Changed "get_priority" and "set_priority" to - simply "priority(void)" and "priority(int)" to be more - consistent with other parts of ACE. - - * apps/Gateway/Gateway: Updated the Gateway so that the - concurrency strategies can now be specified on the - command-line (or in the svc.conf file), rather than being - determined at compile-time. This is much more flexible. - See the ./apps/Gateway/Gateway/README file for details. - - * apps/Gateway/Gateway: Verified that all the multi-threading - strategies still work. - - * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we - "release" the continuation field, rather than delete it, since - its reference count may be > 1. - - * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that - we always print a message to stderr if we're exiting, - regardless... Thanks to David Levine for pointing this out. - - * apps/Gateway/Gateway: Moved all of the configuration file - parsing logic *outside* of the Event_Channel into the Gateway - class so that we wouldn't have unnecessary dependencies. - - * apps/Gateway/Gateway: Redesigned the Gateway so that the - Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy) - most of their work to the Event_Channel. This "lightweight - proxy" design is an improvement since it is now possible to - emulate the COS Event Channel semantics within the Event_Channel - "kernel." - - * Happy new year! Let's start a new ChangeLog to celebrate the - new year. - |