Cleanup ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE, all platforms support it so far as I can...
[ACE_TAO.git] / ACE / ChangeLogs / ChangeLog-1997b
blobda7e8bf2f84d11e879db6823ac8841cebbd097ea
1 Tue Nov 25 16:18:49 1997  David L. Levine  <levine@cs.wustl.edu>
3         * ACE version 4.4, released Tue Nov 25 16:18:49 1997.
5 Tue Nov 25 16:03:09 1997  David L. Levine  <levine@cs.wustl.edu>
7         * Makefile: fixed Version.h generation to work properly when
8           $$beta is undefined.
10 Mon Nov 24 10:33:34 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
12         * ACE version 4.3.56, released Mon Nov 24 10:33:34 1997.
14 Sun Nov 23 13:32:02 1997  David L. Levine  <levine@cs.wustl.edu>
16         * ace/IOStream.h: removed DIGITAL_UNIX from #include decision,
17           so now it just depends on DEC_CXX and its version.  Thanks to
18           Dani Flexer <danif@ivory-sw.com> for this fix.
20         * netsvcs/lib/Server_Logging_Handler.cpp: updated template
21           instantiations to match recent change to Server_Logging_Handler_T.h.
23 Sat Nov 22 19:16:35 1997    <irfan@TWOSTEP>
25         * tests/Process_Strategy_Test.cpp:
27           main: Removed signal handling code.  It is unnecessary since we
28           do not use kill() anymore.
30           Process_Strategy: This subclass of ACE_Process_Strategy
31           overwrites the process creation method to include connection
32           counting.
34           connection_completed: Made sure that the Reactor is woken up
35           after all the connections have completed.
37         * ace/Priority_Reactor.cpp (init_bucket): Removed extra code.
39         * ace/Acceptor.cpp (activate_svc_handler): open svc_handler only
40           if result is 0.  Also removed extra tracing code.
42         * ace/Handle_Set.i (reset): Purify is reporting a UMR
43           (uninitialized memory copy) when copying a Handle_Set.  This
44           comes from the mask fd_set not being memset to 0 by FD_ZERO.
45           This is therefore a harmless error.
47         * tests/Priority_Reactor_Test.cpp (main): The ordering of
48           auto_ptrs is very subtle....  "auto_ptr<ACE_Reactor> reactor"
49           should come before "auto_ptr<ACE_Select_Reactor> impl", i.e.,
50           the implementation should be destroyed *before* the forwarding
51           class.  This is apparent when the implementation class is
52           removing registered event handlers that hold a pointer to the
53           forwarding class.
55 Sat Nov 22 16:04:07 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
57         * ace/Message_Queue.cpp:
58           Fixed some formating problems in the ACE_Message_Queue::dump
59           method, thanks to Arturo Montes <mitosys@colomsat.net.co> for
60           finding this one.
62 Sat Nov 22 14:38:22 1997  Steve Huston  <shuston@riverace.com>
64         * ace/config-aix-4.2.x.h: Added ACE_TLI_TCP_DEVICE "/dev/xti/tcp".
65           This fixes Riverace problem ID P32; AIX now joins HP-UX in
66           supporting XTI/TLI, but not everything (problem P27).
68         * ace/UPIPE_Connector.h:
69         * ace/TLI_Connector.h:  Added meta-type information PEER_ADDR and
70           PEER_STREAM.  Fixes Riverace problem ID P37.
72         * apps/JAWS/server/HTTP_Server.cpp: Added 'const' to "char *prog".
73           Fixes Riverace problem P36.
75         * examples/Connection/misc/test_upipe.cpp:
76         * examples/Connection/non_blocking/CPP-connector.cpp:
77         * examples/Threads/process_mutex.cpp:
78         * examples/Threads/process_semaphore.cpp:
79           Added 'const' to "char *" - can't initialize a char * with
80           a const string.  Fixes Riverace problem ID P38, P40.
82         * examples/Threads/thread_specific.cpp, tss1.cpp:  Moved the Errno
83           class out to a new file, thread_specific.h.  AIX xlC needs to have
84           the class in a .h file for template generation.  Fixes Riverace
85           problem P42.
86         * examples/Threads/Makefile: Make sure that, on AIX, the tempinc
87           directory is cleared before building each new program.
89         * performance-tests/Synch-Benchmarks/Makefile: Changed SHLIB to use
90           $(SOEXT) rather than .so.  Fixes Riverace problem ID P41.
92         * tests/Thread_Pool_Test.cpp: Moved 'this->getq(mb)' out of an
93           ACE_ASSERT.  Thanks to Arturo Montes <mitosys@colomsat.net.co>
94           for finding this.
96 Sat Nov 22 05:44:10 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
98         * tests/Process_Strategy_Test.cpp (main): Shuffled things around
99           in fork() block.  This is fun.
101         * ace/Strategies_T.cpp (activate_svc_handler): Added an
102           ACE_UNUSED_ARG macro to muffle g++.
104         * tests/Process_Strategy_Test.cpp (handle_close): Added a return
105           type specifier.  Without it, g++ laments.
107         * ace/Acceptor.cpp (activate_svc_handler): Should be if (open (...) ==
108           -1) then error, not if (open (...) != -1) then error.
110         * ace/ACE.cpp (set_handle_limit): Removed a duplicated ACE_TRACE
111           macro.
113 Sat Nov 22 00:26:11 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
115         * ace/Thread_Manager.cpp (close): Activated automatic wait on
116           close functionality.  I think I get it right this time.
118 Fri Nov 21 19:59:37 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
120         * ace/IPC_SAP.cpp:
121           Added a couple of ACE_NOTREACHED protections. Thanks to Brian
122           Mendel <bmendel@mdc.com> for reporting this.
124 Fri Nov 21 17:12:48 1997    <nw1@CHA-CHA>
126         * ace/Thread_Manager.cpp (close): Deactivated automatic wait on
127           close for now.  It doesn't seem to work on Solaris.
129         * ace/Thread_Manager.{h,cpp} (wait): Added codes to remove detached
130           threads.  This function can be activated selectively.  I added
131           this so we can ignore detached threads when closing down the
132           default thread manager.
134           (close): Activated the code to wait (join) all threads managed
135           by the thread manager.  It will ask wait function to remove all
136           detached thread first (and so they won't be counted into threads
137           we are waiting for.)
139 Fri Nov 21 13:22:25 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
141         * ACE version 4.3.55, released Fri Nov 21 13:22:25 1997.
143 Fri Nov 21 12:18:28 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
145         * ace/Acceptor.cpp,Strategy_T.cpp: Removed the use of gotos.  See
146           Dijkstra '67 for motivation...
148         * tests/Process_Strategy_Test.cpp (open): Make sure that we set
149           the Reactor of the Svc_Handler to 0 if we're running the
150           threading test.
152         * tests/Reactor_Notify_Test.cpp: Added back THR_BOUND to
153           make things work on Solaris.
155 Fri Nov 21 02:23:47 1997    <irfan@TWOSTEP>
157         * tests/Process_Strategy_Test.cpp:
159           - The event loop execution was based on a fragile timeout
160             mechanism.  This was changed to a more robust mechanism that
161             counts the connections.
163           - The unlinking of the file was moved from the server to the
164             client.  This is necessary since there maybe multiple server
165             processes that cannot really coordinate when the file should
166             be removed.
168         * ace/Strategies_T.cpp (ACE_Concurrency_Strategy):
169           ACE_Concurrency_Strategy and all three of the subclasses
170           (ACE_Reactive_Strategy, ACE_Process_Strategy, and
171           ACE_Thread_Strategy) were messed up.  Only ACE_Reactive_Strategy
172           was (trying) to set the correct blocking mode of the socket.
173           Therefore, moved the socket mode setting code to the base class,
174           ACE_Concurrency_Strategy, so that all the classes can share it.
176           This did create one problem though.  If the implementation of
177           the reactor uses event associations (i.e., WFMO_Reactor), we
178           cannot try to set the socket mode since the registration of the
179           svc_handler caused an event association to be created for the
180           socket and by default (thanks Microslush) the socket is set to
181           non-blocking mode.  If the user is excepting to have a socket in
182           blocking mode, he is in for a surprise.  Maybe we should return
183           a failure if the user is expecting a socket in blocking mode.
184           This is probably too harsh for now.
186         * tests/Future_Test.cpp (open): Added THR_DETACHED since we don't
187           wait for this thread.
189         * tests/Reactor_Notify_Test.cpp (open): Changed THR_BOUND to
190           THR_DETACHED since we don't wait for this thread.
192         * tests/IOStream_Test.cpp (server): Make sure to close the socket
193           in ACE_SOCK_Acceptor and ACE_SOCK_IOStream.
195         * ace/WFMO_Reactor.cpp (open): When I changed open() last, I
196           ignored the order of the registeration of notify_handler_ and
197           wakeup_all_threads_handler_.  Unfortunately, the order of the
198           two registrations is very important since the optimization for
199           owner thread takes advantage of this ordering.  Therefore,
200           revert the order of registertion to notify_handler_ followed by
201           wakeup_all_threads_handler_.
203         * tests/version_tests/run_all_tests.bat: Added new bat file to
204           make the running of all the different configurations easier.
206         * tests/version_tests/version_tests.{mak,mdp}: Added a mammoth
207           testing scheme that is used to test all 8 configurations of the
208           tests under Win32.  These 8 configurations are:
210           DLL Debug
211           DLL Release
212           DLL Unicode Debug
213           DLL Unicode Release
214           static Debug
215           static Release
216           static Unicode Debug
217           static Unicode Release
219           run_tests.bat from the test directory can then be used to run
220           these various configurations.  run_tests.bat was also extended
221           to allow the user to purify the tests.  Simply execute
222           run_tests.bat with the purify command line option.
224 Thu Nov 20 17:43:15 1997    <nw1@COYOTE>
226         * ace/Thread_Manager.cpp (kill_thr): Changed to prevent thread
227           manager from "discard" a thread when a certain operation is not
228           supported by the operation system.  Removed the mechanism that
229           preserves errno during "thread removal."  We no longer remove
230           thread right after an error occured.
232 Thu Nov 20 17:53:35 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
234         * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Make
235           sure make sure that the semaphores created by the program are
236           released as well as the storage files deleted.  Thanks to Tom
237           Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for reporting
238           this.
240         * ace: Added a new version of config-osf1-3.2.h.  Thanks to Dani
241           Flexer <danif@ivory-sw.com> for updating this.
243 Thu Nov 20 18:22:24 1997  Steve Huston  <shuston@riverace.com>
245         * ace/README
246           ace/TLI.h
247           ace/TLI_Acceptor.h
248           ace/TLI_Connector.h
249           Changed from using hardcoded "/dev/tcp" as the XTI device name to
250           a new config-related define, ACE_TLI_TCP_DEVICE.  If the config
251           doesn't set one, it defaults to "/dev/tcp".  Thanks to Steve Coy
252           <stevec@magna.com.au> for zeroing in on this problem in HP-UX.
254           ace/config-hpux-10.x.h:  ACE_TLI_TCP_DEVICE is "/dev/inet_cots".
255           Note that XTI won't work 100% well on HP still - this is Riverace
256           problem ID P27.
258         * netsvcs/lib/Server_Logging_Handler_T.h: Hardcoded to always use
259           ACE_SOCK_Stream (and friends) rather than ACE_TLI_Stream and friends.
260           XTI doesn't work real well on some platforms (particularly HP-UX
261           and AIX).  When they're fixed, this can be undone (Riverace problem
262           ID P28).
264         * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: Changed 'char *host' to
265           'const char *host' so it can be initialized from a const char string.
267 Thu Nov 20 14:19:57 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
269         * tests/Priority_Reactor_Test.h:
270         * tests/Priority_Reactor_Test.cpp:
271           The test has a limited execution time now, and only reports a
272           warning if runs out of time. This may be due to some failed
273           connections, but it is hard to avoid that.  On the other hand
274           the default time should be large enough, in our machines the
275           test only takes 14 seconds, so 60 seconds should be enough.
276           NOTE: this problem reveals a problem *only* in the test itself
277           not in ACE_Priority_Reactor.
279 Thu Nov 20 11:29:51 1997  David L. Levine  <levine@cs.wustl.edu>
281         * ace/Timer_{Heap,List}_T.{h,cpp}: added
282           ACE_Timer_{Heap,List}::get_first () accessors.  Thanks to
283           Stephen Henry <shenry@mdc.com> for this suggestion.
285 Thu Nov 20 11:27:44 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
287         * ACE version 4.3.54, released Thu Nov 20 11:27:44 1997.
289 Thu Nov 20 10:45:08 1997    <irfan@TWOSTEP>
291         * tests/MT_SOCK_Test.cpp: Uncommented socket close call.
293         * ace/WFMO_Reactor.cpp (open): Open the notification handler
294           *after* the timer queue has been created.
296         * ace/ACE.cpp (get_ip_interfaces): Changed rep() to fast_rep() to
297           prevent memory leak.
299         * ace/Reactor.cpp (ACE_Reactor): Fixed error of not creating any
300           Reactors on UNIX.
302 Thu Nov 20 08:36:54 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
304         * ace/Thread_Manager.{h,cpp}:  Added a dummy argument to internal
305           thread functions.  Without them, MSVC wrongly optimizes codes
306           and the stack were all clobbered when entering these functions.
308 Wed Nov 19 23:24:03 1997    <nw1@CHA-CHA>
310         * ace/Reactor.cpp: Rearragned macros so we use Select_Reactor as
311           default if we don't have Winsock2.  Irfan did it, not me.
313 Wed Nov 19 22:11:20 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
315         * ACE version 4.3.53, released Wed Nov 19 22:11:20 1997.
317 Wed Nov 19 15:55:52 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
319         * config-netbsd.h: NetBSD 1.3alpha has a better MSYNC. Commented out
320         ACE_HAS_BROKEN_NETBSD_MSYNC
322 Wed Nov 19 14:26:36 1997  Nanbor Wang  <nw1@lindy.cs.wustl.edu>
324         * stdcpp.h, OS.h: Changed ACE_CONFIG_H to ACE_USER_CONFIG_H.  It
325         conflicts with the macro in various configuration files.
327 Wed Nov 19 15:55:45 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
329         * ace/config-sunos5.*.h: Replaced all uses of ACE_HAS_UNICODE with
330           ACE_HAS_XPG4_MULTIBYTE_CHAR.  At this point, I think only NT has
331           the UNICODE macro now.  Thanks to Steve Huston for validating
332           this.
334         * STL/bstring.h: Added a special-case for BorlandC++.  However, I
335           think this can be generalized for all compilers.  Thanks to
336           Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
338         * ace/OS: Fixed strpbrk() to handle the const char * and char *
339           cases of ANSI C++.  Thanks to Valik Solorzano Barboza
340           <valik@xs4all.nl> for reporting this.
342         * ace/OS.h: Added a special case for _MSC_VER since BC++ doesn't
343           have wchar.h!  Thanks to Valik Solorzano Barboza
344           <valik@xs4all.nl> for reporting this.
346 Wed Nov 19 13:43:33 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
348         * Merged the purify testing into run_tests.  Just use
350           "run_tests purify ..."
352           to purify instead of running the tests.  If you thought this
353           batch file looked bad before....
355 Wed Nov 19 12:17:50 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
357         * ace/{OS,stdcpp}.h (ACE_CONFIG_H): Added this macro to protect
358           config.h from getting included multiple times.
360         * ace/stdcpp.h:  Reverted include OS.h back to config.h.
362 Wed Nov 19 09:20:05 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
364         * ACE version 4.3.52, released Wed Nov 19 09:20:05 1997.
366 Wed Nov 19 07:54:44 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
368         * ace/ACE.cpp (crc32): Reverted the COMPUTE macro back to its
369           original value.  For some reason, the version given by Valik was
370           failing.
372         * ace/SV_Semaphore_Complex.cpp (open): Make sure initialize the
373           sem_number_ data member, though this isn't actually used for
374           anything.
376         * ace/ACE.cpp: Added a #ifdef for __unix since this is the only
377           case where we'll actually have the ifreq autoptr.  Thanks to
378           Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
380         * ace/Log_Record.cpp (print): Added a work around for a really
381           lame bug with BORLANDC.  Thanks to Valik Solorzano Barboza
382           <valik@xs4all.nl> for reporting this.
384 Wed Nov 19 04:22:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
386         * ACE version 4.3.51, released Wed Nov 19 04:22:38 1997.
388 Wed Nov 19 04:02:09 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
390         * include/makeinclude/rules.local.GNU (show_uninit): It seems
391           there was a missing '@' at the beginning of the line.  Thanks to
392           Hans Rohnert for reporting this.
394         * tests/Process_Strategy_Test.cpp (handle_input): Fixed Irfan's
395           code, which keeps breaking ACE ;-).
397 Wed Nov 19 01:55:06 1997    <irfan@TWOSTEP>
399         * ace/WFMO_Reactor.cpp (resume_handler_i, suspend_handler_i,
400           unbind_i): Since things don't happen immediately in the
401           WFMO_Reactor world, we must make sure that this request is not a
402           duplicate.  If so we must ignore it.
404         * ace/Asynch_Acceptor.cpp (open): Fixed addr type mismatch problem.
406         * tests/UPIPE_SAP_Test.cpp (main): Make sure to close the socket
407           in ACE_UPIPE_Acceptor.
409         * tests/SPIPE_Test.cpp (server): Make sure to close the socket in
410           ACE_SPIPE_Acceptor.
412         * tests/SOCK_Test.cpp (spawn): Make sure to close the socket in
413           ACE_SOCK_Acceptor.
415         * tests/Reactor_Notify_Test.cpp (Supplier_Task): Make sure to
416           close the pipe down.
418         * tests/Process_Strategy_Test.cpp (handle_input): Fixed ACE_DEBUG
419           statement to pass the correct number of arguments.
421         * tests/MT_SOCK_Test.cpp (spawn): Make sure to close the socket in
422           ACE_SOCK_Acceptor.
424         * tests/Reactor_Exceptions_Test.cpp (main): Make sure to close the
425           socket in ACE_SOCK_Dgram.
427         * tests/run_purify_tests.bat: Added "mkdir purify_results".
429         * tests/run_tests.bat, run_purify_tests.bat: Changed explicit name
430           of bat file (e.g., run_tests, run_purify_tests) to %0.  This
431           will allow the bat file to be used from other directories.
433         * ace/config-win32-common.h: Removed extraneous define of
434           ACE_HAS_TEMPLATE_INSTANTIATION.
436 Wed Nov 19 00:37:22 1997    <nw1@COYOTE>
438         * ace/stdcpp.h: Changed to use "ace/OS.h" instead of using
439           "ace/config.h" directly to avoid redefinition of user defined
440           macros.
442         * ace/Log_Msg.cpp (close): Disable Win32 to delete
443           ACE_Log_Msg::instance ().  On Win32, this should be done by
444           ACE_TSS_Cleanup.
446         * ace/OS.cpp (cleanup_tss): Enabled Win32 to call
447           ACE_Log_Msg::close.  This is required to properly release
448           resourses held by ACE_Log_Msg_Manager.
450 Tue Nov 18 19:28:36 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
452         * ace/Select_Reactor.cpp (unbind),
453           ace/WFMO_Reactor.cpp (handle_signal): Fixed a large number of
454           bugs with non-portable "scope of the for loop counter"...
455           Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
456           reporting this.
458         * ace/Thread_Manager: Added == and != operators for
459           ACE_Thread_Descriptor to fix things with BORLANDC's template
460           mechanism.  Thanks to Valik Solorzano Barboza <valik@xs4all.nl>
461           for reporting this.
463         * ace/Select_Reactor: Added == and != operators for
464           ACE_Event_Tuple to fix things with BORLANDC's template
465           mechanism.  Thanks to Valik Solorzano Barboza <valik@xs4all.nl>
466           for reporting this.
468         * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32.
469           Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
470           reporting this.
472         * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly
473           with BORLANDC.  Thanks to Valik Solorzano Barboza
474           <valik@xs4all.nl> for reporting this.
476         * ace/OS: Added operator== and operator!= for ACE_Cleanup_Info so
477           that it will work correctly with BORLANDC's template mechanism.
478           Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
479           reporting this.
481         * ace/config-win32-common.h: Added
482           ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC.  Thanks to
483           Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
485         * ace/Filecache.cpp: Fixed a bug with BORLANDC.  Thanks to Valik
486           Solorzano Barboza <valik@xs4all.nl> for reporting this.
488         * ace/ACE.cpp (crc32): Added some parens to the COMPUTE macro to
489           make it easier to grok.  Thanks to Valik Solorzano Barboza
490           <valik@xs4all.nl> for reporting this.
492 Tue Nov 18 16:27:32 1997    <irfan@TWOSTEP>
494         * ace/Log_Msg.cpp (log): Added a %D option to Log_Msg for
495           "month/day/year hour:minute:second:microsecond". Thanks to John
496           Mulhern <9107@MN3.LAWSON.lawson.com> for suggesting this.
498         * ace/config-win32-common.h: If __ACE_INLINE__ is defined to be 0,
499           we will undefine it.
501 Tue Nov 18 15:59:37 1997  Steve Huston  <shuston@riverace.com>
503         * ace/IOStream.cpp: In underflow() and overflow(), use base() to
504           check for buffer in use in every case - not just without
505           ACE_HAS_STANDARD_CPP_LIBRARY==1.  Thanks to James CE Johnson
506           (jcej@lads.com) for this fix.
508         * tests/MT_SOCK_Test.cpp: Allow the test to run even if not all of
509           the proceses can be forked.
511 Tue Nov 18 15:27:37 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
513         * ace/Timer_Queue_Adapters.cpp: Reordered include files.  Thanks
514           to Torbjorn Lindgren <tl@funcom.no> for noticing the problem.
516 Tue Nov 18 11:40:18 1997  Steve Huston  <shuston@riverace.com>
518         * ace/IOStream.(cpp h): Added:   &&(ACE_HAS_STANDARD_CPP_LIBRARY != 0)
519           to the #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) lines to only use
520           the new iostreams things if that's been selected by the config file.
521           In ACE_Streambuf::overflow(), changed:
522              if (!eback())  to    if (!pbase())
524 Tue Nov 18 08:23:53 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
526         * tests/Thread_Pool_Test.cpp (open): Moved the activate() method
527           from the Thread_Pool constructor to the open() hook since the
528           Thread_Pool class invoked ACE_Task::activate, indirectly invokes
529           Thread_Pool::svc.  There existed a miniscule probability this
530           code would have crashed since on extremely broken C++ compilers
531           the virtual member function Thread_Pool::svc may not correctly
532           initialized in Thread_Pool constructor (i.e., it might point to
533           ACE_Task_Base::svc() at this point).  The chance of this
534           happening is incredibly remote, but it's still a good ideal to
535           put the call in the open() method so we can check the return
536           value in the application.  Thanks to Arturo for pointing this
537           out.
539 Tue Nov 18 05:40:53 1997  David L. Levine  <levine@cs.wustl.edu>
541         * ace/OS.cpp (inet_aton): on Chorus only, use the native
542           ::inet_aton ().  Thanks to Wei for pointing this out.
544         * ace/OS.cpp (gethostby{addr,name}): on VxWorks only, don't htonl
545           the input address because it already should be in network byte
546           order.  Store the output address in network byte order.  Thanks
547           to Wei for noticing this error.
549         * include/makeinclude/wrapper_macros.GNU: add -DACE_PURIFY to
550           CFLAGS if purify make flag is set, and -DACE_QUANTIFY if
551           quantify is set.  Thanks to Chris Cleeland for this suggestion.
553         * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): reordered
554           initializers to match declaration order.
556         * etc/purify.solaris2: added suppression of pthread_setcanceltype
557           BSW.
559 Tue Nov 18 00:11:26 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
561         * ACE version 4.3.50, released Tue Nov 18 00:11:26 1997.
563 Mon Nov 17 22:35:22 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
565         * examples/Shared_Malloc/test_malloc.cpp: Added some additional
566           calls to Malloc::instance ()->remove () to cleanup all the
567           semaphore locks.  Thanks to Tom Arbuckle
568           <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
570         * ace/Memory_Pool.cpp (init_acquire): Fixed a problem caused by
571           failing to initialize the minimum_bytes_ field in the
572           ACE_Shared_Memory_Pool class.  Thanks to Tom Arbuckle
573           <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
575         * examples/Shared_Malloc/test_malloc.cpp: Updated the Shared
576           Malloc test program to use the Singleton Thread Manager.
578 Mon Nov 17 18:09:06 1997    <nw1@CUECA>
580         * All eight different configurations of ACE passed all tests on
581           our Alpha/NT.
583 Mon Nov 17 15:37:52 1997  David L. Levine  <levine@cs.wustl.edu>
585         * ace/INET_Addr.cpp (get_host_name): on VxWorks only, moved
586           ::hostGetByAddr code block to _after_ the check for the
587           address being INADDR_ANY.  Without that check, get_host_name ()
588           never returns the caller's own hostname.
590         * netsvcs/lib/Makefile: the first line of the Local Target
591           (Server_Logging_Handler.*) override mysteriously disappeared.
593 Mon Nov 17 02:09:57 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
595         * ACE version 4.3.49, released Mon Nov 17 02:09:57 1997.
597 Mon Nov 17 02:03:21 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
599         * ace/IOStream_T.cpp: Added a few more fixes for KCC C++ and its
600           standard C++ library support.
602 Mon Nov 17 01:34:34 1997    <nw1@COYOTE>
604         * netsvcs/servers/main.cpp (main): Removed daemon and changed to
605           use the singleton service configurator.  Thanks to John Mulhern
606           and Stephen Coy for tracing this down and Irfan for coming out
607           with the fix.
609 Sun Nov 16 21:58:51 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
611         * tests/*.dsp, ace/*.dsp: Added Release, Unicode Debug, and
612           Unicode Release versions for each of the tests.
614           Also found out that precompiled headers take up insane
615           amounts of disk space when used with ACE and also slows
616           the compilation down.  I turned it off for the tests and
617           for the ace libraries
619 Sun Nov 16 13:34:29 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
621         * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking):
622           Changed the line
624           status = con.complete (sock);
626           to
628           if (sock.get_handle () != ACE_INVALID_HANDLE)
629             status = con.complete (sock);
631           The change worksaround a core dump due the the following
632           conditions:
634           - the find_another_host function in SOCK_Connector_Test comes
635             up with the entry for an NT machine.
637           - the ACE_OS::connect call at line 64 of SOCK_Connector.cpp
638             "successfully" fails returning -1 but in this case
639             errno is set to ECONNREFUSED.
641           - Since errno is not EINPROGRESS or EWOULDBLOCK the
642             ACE_SOCK_Stream 'new_stream' close member function is called
643             which, besides closing the "handle", also sets it to
644             ACE_INVALID_HANDLE.
646           - Since the errno was ECONNREFUSED the 'if' test at line 97 of
647             SOCK_Connector_Test.cpp is true and the next statement
649             status = con.complete (sock);
651             is called causing a core dump since sock.get_handle() is
652             ACE_INVALID_HANDLE (-1 on Solaris).
654           Thanks to Jack Erickson <jack@pinion.com> for reporting this.
656         * ace/OS: Cast away the constness of the parameters to _tempnam()
657           for Borland C++.  Thanks to Valik Solrzano Barboza
658           <valik@xs4all.nl> for this.
660         * ace/config-unixware-2.1.2-g++.h: Changed
661           ACE_HAS_OSF1_GETTIMEOFDAY to ACE_HAS_SVR4_GETTIMEOFDAY.  Thanks
662           to John Connett <jrc@skylon.demon.co.uk> for reporting this.
664         * ace/SPIPE_Addr.cpp (set): Fixed a problem where we were
665           potentially writing into character constants.  Thanks to Darrell
666           Brunsch for finding this.
668         * ace/Get_Opt.cpp (operator): We need to make sure that all uses
669           of ACE_OS::strchr() are consistent with respect to const
670           correctness.  Thanks to Darrell Brunsch for finding this.
672         * ace/config-win32-common.h: Added a few minor changes for Borland
673           C++.  Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for
674           this.
676         * ace/Log_Record.cpp (print): Changed the formal parameter from
677           "const char host_name[]" to "const char *hostname" so that we
678           can assign this in the function if necessary.  Thanks to Valik
679           Solrzano Barboza <valik@xs4all.nl> for this.
681         * ace/OS.cpp: Moved the constructor for ACE_Cleanup_Info into the
682           OS.cpp since it doesn't really need to be inline.
684         * ace/WFMO_Reactor.cpp (notify): Replaced a "sizeof
685           ACE_Notification_Buffer" with "sizeof
686           (ACE_Notification_Buffer)".  It's odd that the first approach
687           (which is incorrect) isn't flagged by MSVC++...  Thanks to Valik
688           Solrzano Barboza <valik@xs4all.nl> for this.
690         * ace/OS.i (sema_init): Added an ACE_ALLOCATOR_RETURN in the
691           appropriate spot.
693         * ace/ACE.cpp: Moved the implementation of strsplit_r() into the
694           ACE.cpp file since it's rather long...
696         * ace/OS: To be more conformant to the standard C++ library,
697           I've added a pair of methods for strstr(), strchr(), strrchr(),
698           etc. e.g., the function signature strstr(const char*, const
699           char*) is replaced by the two declarations:
701           const char *strstr (const char* s1, const char* s2);
702           char *strstr (char* s1, const char* s2);"
704           Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for this.
706         * ace: Added "ace.idl", which is a config file for Borland C++
707           5.x.  Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for
708           this.
710         * include/makeinclude/platform_linux_kcc.GNU (SOFLAGS): Improved
711           this file a bit to work better with NULL pointers.  Thanks to
712           Ben Eng <ben@jetpen.com> for reporting this.
714         * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp (main):
715           Changed allocator to alloc to avoid conflicts with STL.  Thanks
716           to Ben Eng <ben@jetpen.com> for reporting this.
718         * ace/config-linux-kcc.h: Added some fixes for the KCC compiler.
719           Thanks to Ben Eng <ben@jetpen.com> for reporting this.
721         * ace/IOStream: Added fixes for the standard C++ library.  Thanks
722           to Ben Eng <ben@jetpen.com> for reporting this.
724 Sat Nov 15 17:31:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
726         * Ran "make depend" on all of ACE.
728 Sat Nov 15 15:55:52 1997  Steve Huston  <shuston@riverace.com>
730         * tests/Priority_Reactor_Test.cpp: Removed the writer->peer().close()
731           call from client() that I added yesterday.  ACE_Svc_Handler::destroy
732           will end up doing the close - thanks to Irfan for pointing this out.
734 Sat Nov 15 01:31:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
736         * ACE version 4.3.48, released Sat Nov 15 01:31:58 1997.
738 Fri Nov 14 23:36:12 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
740         * ace/{OS,ACE}.{h,i} (strsplit_r): Moved strsplit_r from ACE_OS to
741           ACE, which is where it should go.
743         * ace/ACE.cpp (ldfind): Changed uses of strsplit_r to be scoped
744           under ACE rather than ACE_OS.
746 Fri Nov 14 22:57:04 1997  David L. Levine  <levine@cs.wustl.edu>
748         * ace/config-vxworks*.h: added ACE_LACKS_NETDB_REENTRANT_FUNCTIONS.
749           This is necessary for the gethostby{addr,name}_r support added
750           yesterday.
752 Fri Nov 14 18:42:23 1997  Steve Huston  <shuston@riverace.com>
754         * tests/Priority_Reactor_Test.cpp: Fixed client to close its socket
755           before exiting from the thread/process.
757 Fri Nov 14 17:41:40 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
759         * ace/OS.i: Fixed some typos in strsplit_r().
761         * ace/OS.h: Moved the ACE_ALLOCATOR* stuff from Malloc_T.h to
762           OS.h, which is where it belongs.
764         * examples/Reactor/Dgram: Reformatted some of the example
765           code to make it more readable.
767 Fri Nov 14 17:08:00 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
769         * ace/OS.i (strsplit_r): Added fixes so that this properly returns
770           the last piece.  Thanks to Scott Herscher <scott@expersoft.com> for
771           submitting this!  Also beefed up the comments.
773         * ace/OS.h: Added definitions to work around VxWorks' lack of
774           proper ANSI C/C++ prototypes for the functions found in
775           <arpa/inet.h>.  The definitions were taken from Solaris 2.5.1, but
776           appear to work just fine.  For now this is only in effect when
777           compiling with the Green Hills (ghs) environment, but it should
778           probably be used for others (such as g++) as well.
780 Fri Nov 14 01:10:33 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
782         * ACE version 4.3.47, released Fri Nov 14 01:10:33 1997.
784 Fri Nov 14 00:14:21 1997  David L. Levine  <levine@cs.wustl.edu>
786         * ace/OS.* (gethostbyaddr_r,gethostbyname_r): added VxWorks
787           support.
789 Thu Nov 13 20:29:18 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
791         * ACE version 4.3.46, released Thu Nov 13 20:29:18 1997.
793 Thu Nov 13 19:11:36 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
795         * ace/config-sunos5.4.*: Solaris 2.4 doesn't support the ualarm()
796           call unless you use the (broken) /usr/ucb/cc compiler.  Here's a
797           patch for $ACE_ROOT/ace/config-sunos5.4-sunc++-4.x.h to fix the
798           problem.  Thanks to Caleb Epstein
799           <epstein_caleb_unix@jpmorgan.com> for reporting this.
801 Thu Nov 13 19:25:50 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
803         * include/makeinclude/platform_irix6.x-sgic++.GNU:
804           Updated comment on when should the user disable the use of
805           -lpthread
807 Thu Nov 13 18:18:16 1997  Steve Huston  <shuston@riverace.com>
809         * ace/Containers.h, Containers.cpp, Hash_Map_Manager.cpp, Malloc_T.h:
810           Removed the conditional code for the macro
811           ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR.  The workaround for
812           this compiler bug is to remove "this->" from the object pointer
813           used in the ACE_DES_FREE_TEMPLATE macro invocation.  This compiler
814           bug is HP case SR5003396259 for future reference.
816         * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_ANSI_CASTS; removed
817           ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR (both for aC++ only).
819         * ace/README: Removed ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR, as
820           it is no longer used.
822 Thu Nov 13 16:51:40 1997    <nw1@CHA-CHA>
824         * ace/OS.h:  Added two new macros ACE_FACTORY_DECLARE and
825           ACE_FACTORY_DEFINE.  Changed definitions of
826           ACE_SVC_FACTORY_DECLARE AND ACE_SVC_FACTORY_DEFINE to use these
827           two macros.  Refer to changes of the ACE_Export related macros
828           below, you can now declare/define your service factories as,
830                ACE_FACTORY_DECLARE (FOOBAR, fac_class);
831                ACE_FACTORY_DEFINE (FOOBAR, fac_class);
833           This will ensure they get define properly and proper decoration
834           will be added.
836 Thu Nov 13 16:52:31 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
838         * ace/Thread_Manager.cpp: Removed all ! defined
839           (ACE_HAS_FSU_PTHREAD).  Thanks to ARTURO MONTES
840           <mitosys@colomsat.net.co> for reporting this.
842         * ace/config-gcc-2.7.2.h: Added ACE_HAS_TEMPLATE_SPECIALIZATION.
843           Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for reporting
844           this.
846         * ace/config-fsu-pthread.h: added ACE_LACKS_THREAD_PROCESS_SCOPING.
847           Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for reporting
848           this.
850         * ace/OS.h: Separate definition of proper export flag for
851           platforms from setting these flags for building/not building
852           DLL.  I keep ACE_Export and ACE_Svc_Export to remain backward
853           compatibality but now, they are defined using the new "common"
854           definition.  This changes is made in hope that it will simplify
855           codes generated by TAO_IDL compiler.
857           Several new directives are added to these file.  These common
858           directives will be set to proper values (macros) according to
859           the platform we use.  They are:
861                 ACE_Proper_Export_Flag
862                 ACE_Proper_Import_Flag
863                 ACE_EXPORT_SINGLETON_DECLATATION(T)
864                 ACE_IMPORT_SINGLETON_DECLARATION(T)
865                 ACE_PROPER_SINGLETON_INSTANTIATION(T)
867           I use them to define ACE_Export and ACE_Svc_Export.  I hope it
868           is easier to define your own export decoration flag now.  Here
869           is an example.  Say you want to define an export flag for your
870           DLL file : foobar.dll.  First, you need to add the following to
871           a common header file:
873           // Here are definition for FOO_BAR library.
874           #if defined (FOOBAR_HAS_DLL) && (FOOBAR_HAS_DLL == 1)
875           #  if defined (FOOBAR_BUILD_DLL)
876           #    define FOOBAR_Export ACE_Proper_Export_Flag
877           #    define FOOBAR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
878           #    define FOOBAR_SINGLETON_INSTANTIATION(T) ACE_PROPER_SINGLETON_INSTANTIATION (T)
879           #  else
880           #    define FOOBAR_Export ACE_Proper_Import_Flag
881           #    define FOOBAR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
882           #    define FOOBAR_SINGLETON_INSTANTIATION(T)
883           #  endif /* FOOBAR_BUILD_DLL */
884           #else /* ! FOOBAR_HAS_DLL */
885           #  define FOOBAR_Export
886           #  define FOOBAR_SINGLETON_DECLARATION(T)
887           #  define FOOBAR_SINGLETON_INSTANTIATION(T)
888           #endif /* FOOBAR_HAS_DLL */
890           Be sure to include "ace/OS.h" before these definitions so that
891           the macros they use will be properly initialized.  After you've
892           done this, on Win32, define "FOOBAR_HAS_DLL=1" if you want to
893           build DLL, define it as "FOOBAR_HAS_DLL=0" if you want to build
894           static library.  In your library project file, you must define
895           the directives FOOBAR_BUILD_DLL and decorate classes/objects you
896           want to export with FOOBAR_Export so that they can be declared
897           automatically according whether you are building/linking with
898           static library or dynamic library.
900 Thu Nov 13 05:47:42 1997  David L. Levine  <levine@cs.wustl.edu>
902         * ace/Thread_Manager.cpp: added ACE_TSS_Singleton<ACE_Dynamic,
903           ACE_Null_Mutex> instantiation, for the recent Svc_Handler
904           change.
906         * ace/Object_Manager.h (default_mask): moved out of ACE_MT_SAFE
907           protection.
909         * ace/OS.{h,i},config-vxworks-ghs-1.8.h,README (strlen,strcpy):
910           protect declarations of wchar versions with
911           ACE_HAS_WCHAR_TYPEDEFS_CHAR.  GreenHills typedefs wchar to char.
913         * ace/Singleton.cpp: register ACE_TSS_Singletons for cleanup with
914           Object_Manager.
916         * ace/OS.{i,cpp} (gethostbyaddr): added VxWorks support.
918 Thu Nov 13 02:06:58 1997  Chris Cleeland  <cleeland@macarena.cs.wustl.edu>
920         * ace/Signal.i: Changed to use new Object Manager member.
922         * ace/Object_Manager.cpp: Added a new member to the Object
923         Manager--default_mask.  This is the default signal mask employed
924         by ACE_Sig_Set.  Moving the object into the OM saves cycles b/c we
925         only construct it once and just re-use every time.
927         * ace/Handle_Set.cpp: Added two new macros--ACE_DIV_BY_WORDSIZE and
928         ACE_MULT_BY_WORDSIZE--which either divide or multiply the argument
929         by ACE_Handle_Set::WORDSIZE.  The manner in which this is
930         accomplished is governed by the #define
931         ACE_USE_SHIFT_FOR_EFFICIENCY--when defined, ACE tries to use
932         shifts to implement multiplication and division rather than actual
933         multiply and divide operations.  Currently this is disabled.
935 Wed Nov 12 19:13:05 1997    <irfan@TWOSTEP>
937         * ace/Svc_Handler: Changed hand written tss singleton to
938           ACE_TSS_Singleton.  Lot of (unnecessary) code disappeared.
939           Thanks to David Levine for suggesting this.
941         * ace/Object_Manager: Removed ACE_SVC_HANDLER_LOCK.
943 Wed Nov 12 16:29:15 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
945         * platform_netbsd.GNU: added /usr/lib/c++rtO.o to SOBUILD to
946           insure that static objects' ctors are called.
948 Wed Nov 12 00:20:38 1997  David L. Levine  <levine@cs.wustl.edu>
950         * ace/OS.{i,cpp} (inet_ntoa): use VxWorks' native inet_ntoa.  It's
951           not documented but it works.
953         * ace/OS.cpp (gethostbyname): on VxWorks, load static first_addr on
954           every call, not just the first.
956         * include/makeinclude/rules.local.GNU: removed extra "fi" in
957           install operation.
959         * include/makeinclude/platform_sunos5_sunc++.GNU: removed +w from
960           CFLAGS because it generates too many spurious warnings.
962         * ace/TTY_IO.cpp (control): commented out unused local variable
963           c_line.  Thanks to Amos Shapira <amos@gezernet.co.il> for
964           reporting this.
966         * ace/OS.{h,i} (hostname): added Chorus support.  Thanks to Wei
967           for the patches.
969 Tue Nov 11 23:44:17 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
971         * ACE version 4.3.45, released Tue Nov 11 23:44:17 1997.
973 Tue Nov 11 21:26:36 1997  Douglas C. Schmidt  <schmidt@lindy.cs.wustl.edu>
975         * platform_sunos5_sunc++.GNU, platform_irix6.x-sgic++.GNU, rules.local.GNU:
976           Added some minor fixes.
978 Tue Nov 11 20:18:27 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
980         * Makefile: Added the tests and netsvcs directory to
981           RELEASE_LIB_FILES since this is pretty important to determine
982           whether ACE works.  Thanks to Chuck Gehr and Steve Coy for this
983           suggestion.
985         * tests/UNIXclerk.conf: Changed "merengue" to "localhost."
986           Thanks to Steve Coy for this suggestion.
988         * ace/config-lynxos.h (getopt): Missing 't' from const => see
989           getopt prototype parameter list.  Thanks to Manojkumar Acharya
990           <mja@cvsf325.gpt.co.uk>.
992 Tue Nov 11 08:09:16 1997  David L. Levine  <levine@cs.wustl.edu>
994         * ace/OS.cpp (inet_aton): declare local ip_addr as an ACE_UINT32
995           instead of a long.  Real programmers have 64-bit longs.
997         * ace/INET_Addr.cpp (get_host_name): added ACE_UNUSED_ARG (len);
998           for VxWorks only.
1000 Tue Nov 11 13:19:46 1997  Torbjorn Lindgren  <tl@funcom.com>
1002         * include/makeinclude/rules.local.GNU: Fixed so that the ACE
1003         makefiles doesn't create circular symlinks (happens if
1004         something fails when building libACE.* with "make -k", or when
1005         doing parallel builds). It's now possible to do parallel
1006         builds of libACE.* without having to clean up a mess afterwards.
1008         * include/makeinclude/platform_irix6.x-sgic++.GNU: Removed
1009         .so build with links instead (ace/apps/examples/tests and my own
1010         programs all work well with this, and the manual seems to suggest
1011         that it hasn't ever been necessary on this platform)
1013         * ace/config-irix6.x-sgic++-nothreads.h: Added
1014         ACE_HAS_XPG4_MULTIBYTE_CHAR for SGI IRIX 6.[2-5].
1016 Tue Nov 11 04:50:06 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
1018         * examples/Reactor/Multicast/server.cpp (handle_timeout): Fixed a
1019           typo.  Thanks to Sandro Doro <doros@aureus.sublink.org> for
1020           reporting this.
1022 Tue Nov 11 04:20:09 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1024         * ACE version 4.3.44, released Tue Nov 11 04:20:09 1997.
1026 Tue Nov 11 01:44:39 1997    <irfan@TWOSTEP>
1028         * examples/Naming/test_open.cpp (main): Added a new naming test
1029           that binds to the net_local server and tries to bind entries to
1030           it.
1032         * netsvcs/lib/Name_Handler.cpp: Added a new class called
1033           Naming_Context.  This helper class adds the correct default
1034           constructor to the ACE_Naming_Context class so that we can use
1035           it in ACE_Singleton.
1037           Previously, each Name_Handler was getting its own
1038           Naming_Context.  This is obviously incorrect as the mapping
1039           address in already occupied by the first Name_Handler.
1040           Therefore, the Naming_Context was changed into a Singleton
1041           accessable by all Name_Handlers.
1043         * ace/WFMO_Reactor.cpp (handle_additions && handle_deletions):
1044           Changed code to make sure that we should not make the upcall
1045           until all the internal data structures have been updated.  This
1046           is to protect against upcalls that try to deregister again.
1048 Tue Nov 11 01:28:50 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1050         * ACE version 4.3.43, released Tue Nov 11 01:28:50 1997.
1052 Mon Nov 10 21:30:04 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1054         * INET_Addr.cpp: In the ACE_INET_Addr::get_host_name (char
1055         hostname[], size_t len) method, an unnecessary local variable
1056         called "name" was being used and the actual parameter "hostname"
1057         was never getting updated. The local variable is now removed and
1058         we use the actual parameter everywhere.
1060 Mon Nov 10 20:44:43 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
1062         * etc/ACE-guidelines.html: Added a section for ACE Design Rules,
1063           and added a design rule about sentinels.
1065 Mon Nov 10 18:11:05 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
1067         * ace/Singleton.h (ACE_TSS_Singleton): Changed ACE_TSS<TYPE> to
1068           ACE_TSS_TYPE (TYPE), so that the ACE_TSS_TYPE macro (defined in
1069           OS.h) gets used. (Irfan's suggestion.)
1071 Mon Nov 10 17:02:40 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1073         * ace/OS.h: Reformatted the #ifdef structure of the
1074           ACE_HAS_XPG4_MULTIBYTE_CHAR to conform to ACE usage.
1076         * ace/Service_Repository.cpp: The close() method needed a '\n' in
1077           one of the debug messages.  Thanks to Steve Coy for reporting
1078           this.
1080 Mon Nov 10 14:09:24 1997  Steve Huston  <shuston@riverace.com>
1082         * ace/OS.h, OS.i, README:  Added new macro, ACE_HAS_XPG4_MULTIBYTE_CHAR
1083           for platforms which supply wchar.h and wide character functions.
1084           Added the use if it in OS.h, and use the functions in OS.i,
1085           strlen and strcpy with wchar_t arguments.
1087         * ace/config-hpux-10.x.h, config-aix-4.2.x.h, config-mvs.h,
1088           config-sunos5.5-sunc++-4.x.h: Added ACE_HAS_XPG4_MULTIBYTE_CHAR.
1090 Mon Nov 10 13:33:02 1997    <irfan@TWOSTEP>
1092         * ace/OS.h (ACE_WRITE_GUARD): Added macros for ACE_WRITE_GUARD and
1093           ACE_READ_GUARD. Thanks to Brian Raven <Brian.Raven@liffe.com>
1094           for suggesting this.
1096         * tests/Thread_Mutex_Test.cpp: Modified version of Mutex_Test that
1097           exclusively works on a Thread_Mutex.
1099         * tests/Mutex_Test.cpp: Removed this test.  It have been
1100           superseded by Thread_Mutex_Test and Process_Mutex_Test.
1102         * ace/OS.i (thread_mutex_trylock): Fixed the return value and
1103           errno for this system call such that it is consistent with other
1104           trylock calls.
1106 Mon Nov 10 10:21:55 1997  David L. Levine  <levine@cs.wustl.edu>
1108         * ace/INET_Addr.cpp: updated gethostbyname/addr support for
1109           Chorus.  Thanks to Wei Chiang <chiang@tele.nokia.fi> for
1110           the patches for this fix.
1112         * ace/config-chorus.h: disabled ACE_LACKS_SOCKETPAIR.  Thanks
1113           to Wei for this fix, also.
1115         * tests/Thread_Mutex_Test.cpp (test): don't compile this function
1116           if ACE_HAS_THREADS is not defined.
1118         * tests/IOStream_Test.cpp (main): removed extra % at end of
1119           ACE_ERROR_RETURN message.
1121         * etc/ace_ld,include/makeinclude/platform_vxworks5.x_g++.GNU:
1122           added ace_ld, a drop-in replacement for ld that supports munching.
1123           We need to munch for VxWorks/g++.
1125         * ACE-INSTALL.html: updated VxWorks info to mention requirement
1126           for perl with VxWorks/g++.  And, LD_LIBRARY_PATH must be set
1127           to find the ACE libraries on the host if using TAO.
1129 Sun Nov 09 23:29:43 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1131         * ACE version 4.3.42, released Sun Nov 09 23:29:43 1997.
1133 Sun Nov 09 22:18:30 1997    <irfan@TWOSTEP>
1135         * ace/config-win32-common.h (ACE_HAS_ANSI_CASTS): VC++ compilers
1136           support ANSI style casts.
1138         * ace/OS.h (ACE_static_cast): Added ANSI style cast macros to ACE.
1139           Thanks to Stephen Coy <stevec@magna.com.au> for suggesting this.
1141 Sun Nov  9 21:34:16 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1143         * ace/OS: Enhanced ACE_OS so that it *always* defines
1144           implementations for the wchar_t versions of strlen() and
1145           strcpy(), even if the platform doesn't explicitly support
1146           UNICODE.  This is necessary since TAO needs these functions.
1148         * ace/OS.h: Added a typedef for wchar_t to handle the case where
1149           the OS doesn't support UNICODE.
1151         * ace/ACE.cpp: Added hex character routines from TAO since they
1152           are generally useful.
1154         * ace/OS.h: Moved the TAO-specific #defines into TAO, where they
1155           belong.  Thanks to David Levine and Chris Cleeland for insisting
1156           on this...
1158 Sun Nov 09 17:55:50 1997    <nw1@COYOTE>
1160         * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp (open):
1161           Removed codes that reset a socket's non-blocking flag.  This has
1162           been taken care of by ACE_Acceptor::activate_svc_handler now and
1163           resetting this flag twice on NT caused us grief.  Thanks to
1164           Georges Ata <George_ata@srt.ccmail.compuserve.com> for reporting
1165           the bug.
1167         * ace/ACE.i (hex2byte,nibble2hex): Replaced ACE_INLINE to inline
1168           for these two functions.  Functions in this file are always
1169           inlined.
1171         * ace/config-win32-common.h (ACE_LACKS_RLIMIT): Added this flags
1172           so we don't need to treat ACE_WIN32 specially.
1174         * ace/OS.i (getrlimit,setrlimit): Removed unnecessary conditional
1175           flag ACE_WIN32.
1177         * ace/Thread_Manager.cpp (wait): Merged the two blocks within this
1178           function so that we can avoid relase/acquire lock
1179           unnecessarily.  Thanks to Doug for his careful scrutiny.
1181 Sun Nov 09 09:27:24 1997  David L. Levine  <levine@cs.wustl.edu>
1183         * ace/Thread_manager.cpp (wait): removed unused local,
1184           threads_waited_on.
1186 Sat Nov 08 23:20:50 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1188         * ACE version 4.3.41, released Sat Nov 08 23:20:50 1997.
1190 Sat Nov  8 15:46:30 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1192         * ace/INET_Addr.cpp: Enhanced the get_host_name() functions so
1193           that if the sin_addr.s_addr == INADDR_ANY we assume that we're a
1194           server, and we return our "hostname".
1196         * Added a number of minor fixes for UNIXWARE with G++.  Thanks to
1197           Michael Rueger <m_rueger@syscomp.de> for reporting these.
1199         * ace/Thread_Manager.h: Both Irix5 and VxWorks have problems with
1200           local typedefs with GCC.  Thanks to Laura Paterno
1201           <lpaterno@d0chb.fnal.gov> for reporting this.
1203         * ace/Timer_Queue_Adapters.cpp: Changed some errant uses of lock_
1204           to mutex_.  Thanks to David Levine for reporting this.
1206         * ace/ACE.cpp: set_handle_limit() was buggy because it never
1207           increased the handle limit.  With this change we do not need
1208           special code in ACE_Select_Reactor with ACE_LACKS_RLIMIT because
1209           this is managed in ACE::set_handle_limit.  Thanks to Arturo for
1210           this fix.
1212         * ace/Select_Reactor.cpp (open): We no longer need to
1213           conditionally compile for ACE::set_handle_limit().  Thanks to
1214           Arturo for this fix.
1216 Fri Nov  7 18:53:13 1997  Sumedh Mungee  <sumedh@macarena.cs.wustl.edu>
1218         * ace/config-netbsd.h: Added file for NetBSD 1.2G.
1220         * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking):
1221           Added ECONNREFUSED as a "valid failure", alongwith EWOULDBLOCK.
1223         * ace/OS.i (msync): msync on NetBSD takes only two parameters as
1224           opposed to the usual three. (It doesnt have the "flags"
1225           parameter.)  The ACE_HAS_BROKEN_NETBSD_MSYNC flag works around
1226           that.
1228 Fri Nov  7 16:04:35 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1230         * ace/Thread_Manager.cpp: Added a missing '>' for one of the
1231           template specializations.  Thanks to Torbjorn Lindgren
1232           <tl@funcom.no> for reporting this.
1234         * ace/OS.cpp: ACE_OS::ACE_OS is defined in OS.cpp, which causes
1235           the compiler to complain about multiple definitions.  Other
1236           ACE_CLASS_IS_NAMESPACE doesn't have constructors, which is why
1237           they work.  Thanks to Torbjorn Lindgren <tl@funcom.no> for
1238           reporting this.
1240 Fri Nov 07 15:14:51 1997  David L. Levine  <levine@cs.wustl.edu>
1242         * examples/Threads/tss1.cpp: replaced ACE_SYNCH_1 and _2 with
1243           _DECL and _USE.
1245         * ace/config-linux{,-common}.h: created config-linux-common.h
1246           and moved alpha-specific defines to it.
1248         * ace/FILE_Addr.cpp (set): explicitly declare int return type.
1250         * performance-tests/Misc/preempt.cpp (get_options): DEC CXX didn't
1251           like conversion of -1 to u_int, so changed return type to int and
1252           all ACE_ERROR_RETURNs to return -1.
1254 Fri Nov 07 10:05:12 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1256         * ACE version 4.3.40, released Fri Nov 07 10:05:12 1997.
1258 Fri Nov  7 09:58:09 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
1260         * ace/Connector.cpp (fini): Added a call to
1261           ACE_Map_Manager::close() in fini() since the destructor may not
1262           be called.  Thanks to Eric C. Newton <ecn@smart.net> for
1263           reporting this.
1265         * ace/{FILE,SPIPE}_Addr.cpp (set): Added a return value.  Thanks
1266           to Marios Zikos <zikos@csi.forth.gr> for reporting this.
1268 Fri Nov 07 02:45:55 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1270         * ACE version 4.3.39, released Fri Nov 07 02:45:55 1997.
1272 Fri Nov  7 01:06:08 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1274         * ace/Message_Queue: Added a new method called deactivated(),
1275           which returns true if the queue has been deactivated.  Thanks to
1276           Wei Chiang <chiang@tele.nokia.fi> for reporting this.
1278         * ace/{config-chorus.h,OS.cpp}: Added a new macro called
1279           ACE_CHORUS_DEFAULT_MIN_STACK_SIZE.  Thanks to Wei Chiang
1280           <chiang@tele.nokia.fi> for reporting this.
1282         * ace/DEV_Addr.cpp,
1283           ace/FILE_Addr.cpp,
1284           ace/SPIPE_Addr.cpp,
1285           ace/INET_Addr.cpp,
1286           ace/UNIX_Addr.cpp: Fixed the set(const Foo &) method so that
1287           it correctly detects cases where we're passed in a
1288           ACE_Addr::sap_any.  This is a total hack...
1290         * ace/{OS.h,Addr.cpp}: Added a new AF_ANY flag, which is set to -1.
1292 Thu Nov  6 23:05:14 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1294         * Changed the obtusely named ACE_SYNCH_1 and ACE_SYNCH_2 macros to
1295           ACE_SYNCH_DECL and ACE_SYNCH_USE, respectively.  Thanks to Mike
1296           Kamrad <J.M.KAMRAD.II@cdev.com> for suggesting this.
1298         * ace/Select_Reactor.cpp, ace/ACE.cpp: Broaded the comparison so
1299           that we only try to use {set|get}rlimit() if ACE_LACKS_RLIMIT is
1300           *false*.  Thanks to Arturo Montes <mitosys@colomsat.net.co> for
1301           reporting this.
1303         * ace/Object_Manager: Added support for
1304           get_singleton_lock(ACE_Mutex *).  Thanks to Arturo Montes
1305           <mitosys@colomsat.net.co> for reporting this.
1307         * ace/Connector.cpp: If connect_n() fails make sure to return -1.
1308           Thanks to Stephen Coy <stevec@magna.com.au> for pointing out the
1309           problem.
1311         * ace/config-sco-5.0.0.h: Removed the ACE_LACKS_RLIMIT flag.
1312           Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
1313           this.
1315         * tests: Changed all uses of "localhost" to
1316           ACE_DEFAULT_SERVER_HOST.  This solves some problems with MVS.
1317           Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
1318           this.
1320         * examples/Timer_Queue: Changed COMMAND to CMD so it won't
1321           conflict with the HP/YUX compiler.  Thanks to Sandro Doro
1322           <doros@aureus.sublink.org> for reporting this.
1324 Thu Nov 06 22:13:01 1997    <irfan@TWOSTEP>
1326         * examples/Connection/blocking/SPIPE-connector.cpp (init): Fixed
1327           odd looking typecast.
1329         * ace: Changed the comparison &local_sap == &ACE_Addr::sap_any to
1330           local_sap == ACE_Addr::sap_any.  Thanks to Steve Coy
1331           <stevec@magna.com.au> for pointing out that the default
1332           parameter const ACE_Addr &local_sap = ACE_Addr::sap_any will
1333           cause a copy of sap_any to be made and passed to the method,
1334           invalidating the memory address comparison.
1336           The following files were effected:
1338           Asynch_Acceptor.cpp
1339           SOCK_Acceptor.cpp
1340           SOCK_CODgram.cpp
1341           SOCK_Dgram.cpp
1342           TLI_Acceptor.cpp
1343           TLI_Connector.cpp
1345         * ace/Addr.cpp: Made sure that the type and size of
1346           ACE_Addr::sap_any does not match the type and size of any other
1347           Addr type.  This is necessary for local_addr==ACE_Addr::sap_any
1348           to return 0 when local_addr is anything other than
1349           ACE_Addr::sap_any.
1351         * ace/Synch_T.h: Fixed all the ACE_SYNCH_* defines.  Thanks to
1352           Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing the
1353           problems.
1355 Thu Nov 06 18:30:42 1997  Steve Huston  <shuston@riverace.com>
1357         * ace/Addr.(h i), DEV_Addr.(h i), FILE_Addr.(h i), INET_Addr.(h
1358           cpp), SPIPE_Addr.(h i), UNIX_Addr.(h i): Changed the operators
1359           == and != to be non-virtual, and to accept the 'sap' argument as
1360           its own type (not ACE_Addr for all of them).  The
1361           implementations of the operators compare type-specific data
1362           without having to check the inherited type member.  Thanks to
1363           Steve Coy <stevec@magna.com.au> and Irfan and Nanbor for a huge
1364           amount of work on these changes.  *** NOTE - there is still some
1365           SOCK_Connector problems related to these changes on HP-UX.  The
1366           hunt continues.
1368         * ace/Connector.cpp (connect_n): return -1 if any of the connect
1369           attempts fail.
1371         * tests/Reactor_Performance_Test.cpp: Don't crash if any of the
1372           client's connect attempts fail.
1374         * ace/Reactor.h: Added #include "ace/Handle_Set.h" - AIX needs the
1375           class definition when generating templates in programs.
1377         * tests/Map_Manager_Test.cpp: Don't even try if the compiler doesn't
1378           have template specialization working correctly.
1380         * tests/Priority_Reactor_Test.h: Added #include "ace/SOCK_Stream.h"
1381           so AIX could generate template code correctly.
1383         * tests/Reactor_Performance_Test.cpp: Moved class definitions out to
1384           Reactor_Performance_Test.h (new file) to allow AIX to generate
1385           templates.
1387         * tests/SOCK_Connector_Test.cpp: Added a couple more checks to make
1388           sure the local host is not the test target, and changed from using
1389           port 4242 to 42000 (there is actually a program on AIX which listens
1390           at port 4242).
1392         * tests/Thread_Manager_Test.cpp: Moved a class definition out to
1393           Thread_Manager_Test.h (new file) to allow AIX to use it in template
1394           generation.
1396         * tests/Timer_Queue_Test.cpp: Limit the number of iterations to 2000.
1398 Thu Nov  6 16:51:36 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
1400         * tests/SOCK_Connector_Test.cpp (find_another_host): Added
1401           ACE_NETBSD to the #if define around gethostent.
1403 Thu Nov 06 00:08:01 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1405         * ACE version 4.3.38, released Thu Nov 06 00:08:01 1997.
1407 Wed Nov  5 21:32:36 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1409         * ace/Service_Repository.cpp (close): Looking in the
1410           Service_Repository while shutting it down does really bad
1411           things.  Some careful changes to the loop in
1412           Service_Repository::close() fixed this.  Thanks to Eric
1413           C. Newton <ecn@smart.net> for reporting this.
1415         * Added new support for SCO UNIX with no threads.  Thanks to
1416           Arturo Montes <mitosys@colomsat.net.co> for reporting this.
1418 Wed Nov 05 20:31:36 1997    <irfan@TWOSTEP>
1420         * ace/Connector.cpp (close): Added an explicit close() method for
1421           the Strategy_Connector.  This closes down all Strategy_Connector
1422           specific things and then calls close() on the base class.  Also
1423           modified the destructor to call this routine.
1425 Wed Nov  5 17:09:05 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1427         * ace/OS.cpp (cleanup_tss): Rearranged how TSS'es get cleanup on
1428           Win32.  This was causing a tiny memory leak on NT.
1430 Wed Nov  5 15:03:31 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1432         * ace/Thread_Manager.{h,cpp}:  Changed the data type of
1433           terminated_thr_queue_ back to
1434           ACE_Unbounded_Queue<ACE_Thread_Descriptor>.
1436 Wed Nov 05 14:16:27 1997  Steve Huston  <shuston@riverace.com>
1438         * ace/OS.i (mutex_trylock): Fixed code for ACE_HAS_DCE_DRAFT4_THREADS
1439           (HP-UX) to process the returned status correctly.  Thanks to
1440           Robert Head <rhead@virtc.com> for reporting this.
1442 Wed Nov 05 13:01:49 1997  David L. Levine  <levine@cs.wustl.edu>
1444         * ace/ACE.cpp (daemonize): added ACE_UNUSED_ARG (close_all_handles)
1445           if ACE_LACKS_FORK.
1447 Wed Nov 05 01:06:53 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1449         * ACE version 4.3.37, released Wed Nov 05 01:06:53 1997.
1451 Tue Nov 04 23:11:41 1997    <nw1@COYOTE>
1453         * ace/Thread_Manager.h: Added an ACE_Unbounded_Queue to
1454           collect threads that need to be removed.  We can no longer
1455           remove thread descriptors directly from <thr_list_> because that
1456           would clobber the integrity of the double-linked list.  Changed
1457           the data type of <terminated_thr_queue_> from
1458           ACE_Unbounded_Queue<ACE_Thread_Descriptor> to
1459           ACE_Unbounded_Queue<ACE_Descriptor*> to reduce the codes
1460           generated.
1462         * ace/Thread_Manager.cpp:  Reordered several thread operations so they
1463           won't remove thread descriptor directly while traversing the
1464           <thr_list_>.  Removed #ifdef <VXWORKS> from template
1465           instantiation section because now VxWorks needs it too.
1467         * ace/Container.{h,cpp}:  Added more check on validities of passed in
1468           node to ACE_Double_Linked_List::remove_element.  Also changed
1469           the function to reset a node's <prev_> and <next_> to prevent
1470           double removal of a node, which messes up the list structure.
1472         * ace/ace_{dll,lib}.dsp: Excluded Acceptor.cpp from make
1473           explicitly.  Moving this file to "template file folder" was not
1474           enough.
1476 Tue Nov  4 18:03:51 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1478         * ace/config-sco*.h: Added #define ACE_DEFAULT_CLOSE_ALL_FILES 0
1479           to the SCO Unix config files.
1481         * ace/ACE.cpp: Added a new macro called
1482           ACE_DEFAULT_CLOSE_ALL_FILES to workaround a bug with SCO Unix.
1483           Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
1484           this.
1486         * The ACE developer's drinking song:
1488           100 little bugs in the code,
1489           100 bugs in the code,
1490           fix one bug, compile it again,
1491           101 little bugs in the code.
1492           101 little bugs in the code.....
1494           Thanks to Steve Huston for appreciating the humor in this ;-).
1496         * ace/Containers.cpp (insert_head): Added some minor stylistic
1497           fixes.
1499         * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptor):
1500           Changed
1502           if (ACE_Reactor::instance ()->register_handler
1503               (&this->acceptor_, ACE_Event_Handler::ACCEPT_MASK) == -1)
1505           to:
1507           if (this->acceptor_.open(this->options ().acceptor_port_,
1508             ACE_Reactor::instance (), this->options ().blocking_semantics_) == -1)
1510           Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
1512         * apps/Gateway/Gateway/Gateway.cpp (parse_args): Changed
1514           ACE_Get_Opt get_opt (argc, argv, "abC:cdP:pq:t:vw:", 0);
1516           to:
1518           ACE_Get_Opt get_opt (argc, argv, "abC:cdP:p:q:t:vw:", 0);
1520           Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
1522 Tue Nov  4 18:13:52 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
1524         * examples/Timer_Queue/Async_Timer_Queue_Test.cpp (cancel):
1525         Initialized act pointer variable to 0, which was causing
1526         core dump in linux.  In general, all pointers should be
1527         initialized.  This should have been warned by the compiler.
1528         Thanks to Sandro Doro <doros@aureus.sublink.org> for
1529         pointing this out.
1531 Tue Nov  4 11:14:35 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1533         * ace/Containers.cpp: Fixed some stylistic ambiguities.
1535 Tue Nov 04 10:12:21 1997  David L. Levine  <levine@cs.wustl.edu>
1537         * include/makeinclude/platform_hpux.GNU: added +a1 to CFLAGS
1538           to select ANSI C, instead of the default K+R C.  This is
1539           required with the current ace/Object_Manager.cpp, because
1540           it initialized autos using aggregates (via the
1541           ACE_STATIC_SVC_DEFINE macro).  Thanks to Neil B. Cohen
1542           <nbc@metsci.com> for helping to sort this out.
1544         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: changed
1545           another lock () to mutex ().
1547         * tests/run_tests.vxworks: added MT_SOCK_Test.
1549 Tue Nov 04 04:13:23 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1551         * ACE version 4.3.36, released Tue Nov 04 04:13:23 1997.
1553 Tue Nov 04 03:50:57 1997    <irfan@TWOSTEP>
1555         * ace/Addr.i (operator == && operator !=): Comparison of
1556           sap.addr_type_ should be with this->addr_type_ and not with 0.
1558 Mon Nov  3 23:18:33 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
1560         * ace/Synch_T.cpp (dump): change the field lock_ to mutex_.
1562 Mon Nov  3 22:37:58 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1564         * ace/Timer_Wheel_T.cpp:
1565         * ace/Timer_List_T.cpp:
1566         * ace/Timer_Hash_T.cpp:  Changed the use of lock_ to mutex_.
1568         * ace/OS.cpp (cleanup_tss): Added TSS cleanup codes for Win32 when
1569           non-main threads are exiting.  Without them, Thread_Manager won't
1570           cleanup its thread table correctly.
1572         * ace/SV_Semaphore_Complex.cpp (close): Changed to return 0
1573           only when this->key_ == -1 instead of <= -1.  This was causing
1574           semaphore leaks on Solaris.
1576         * ace/UNIX_Addr.i (operator ==):
1577         * ace/SPIPE_Addr.i (operator ==):
1578         * ace/FILE_Addr.i (operator ==):
1579         * ace/DEV_Addr.i (operator ==):
1580         * ace/INET_Addr.cpp (operator ==):  Added checking for the same
1581           Addr types for addresses under comparison.  Thanks to Stephen
1582           Coy <stevec@magna.com.au> for pointing out the problem.
1584 Mon Nov 03 18:32:42 1997  Carlos O'Ryan  <coryan@MILONGA>
1586         * ace/Proactor.cpp:
1587         * ace/Timer_Queue_T.h:
1588         * ace/Timer_Queue_T.cpp:
1589         * ace/Timer_Heap_T.cpp:
1590         * ace/Synch_T.h:
1591         * ace/Synch_T.cpp:
1592         * ace/Atomic_Op.i:
1593           Changed the method name from lock() to mutex(), otherwise the
1594           lame HP/C++ compiler gets completely confused. Also changed the
1595           field from lock_ to mutex_
1597 Mon Nov  3 17:15:17 1997  Steve Huston  <shuston@riverace.com>
1599         * ace/OS.h: Removed "class ace_dewarn_gplusplus;" from the
1600           ACE_CLASS_IS_NAMESPACE macro.  Produces warnings on AIX and
1601           shouldn't be needed.
1603 Mon Nov  3 15:49:18 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1605         * ace/Connector.cpp (connect): "Fixed" so that the service handler
1606           pointer passed in by the caller doesn't change until the connect
1607           completes without errors.
1609 Mon Nov 03 08:15:21 1997  David L. Levine  <levine@cs.wustl.edu>
1611         * ace/Managed_Object.[hi] (get_preallocated_{object,array}):
1612           inlined function definitions into the class header so that
1613           it compiles on AIX 4.1 w/ xlC 3.01.  Thanks to Bob Lyng
1614           <rlyng@synertech.highmark.com> for reporting this problem,
1615           at to Steve H. for testing the fix.
1617         * include/makeinclude/{platform_linux*.GNU,wrapper_macros.GNU},
1618           netsvcs/lib/Makefile: suppress -g when compiling ace/Timer_Hash.cpp
1619           and netsvcs/lib/Server_Logging_Handler.cpp on Linux only.
1620           (It really only needs to be suppressed on Linux/Alpha.)
1622         * apps/Gateway/Gateway: protect instantiation of
1623           ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
1624           with ACE_HAS_THREADS.
1626         * ace/{Naming_Context.cpp,Service_Config.cpp,Object_Manager.cpp}:
1627           moved ACE_Naming_Service and ACE_Service_Manager static service
1628           objects to ACE_Object_Manager.
1630           With this change, the ACE library no longer has any static
1631           objects that require destruction.
1633         * ace/Object_Manager.h: added documenation of
1634           ACE_HAS_NONSTATIC_OBJECT_MANAGER config #define.
1636         * performance-tests/Misc/preempt.cpp: cleaned up cleanup so that
1637           it compiles cleanly.
1639 Sun Nov 02 18:09:14 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1641         * ACE version 4.3.35, released Sun Nov 02 18:09:14 1997.
1643 Sun Nov  2 15:31:45 1997  Douglas C. Schmidt  <schmidt@polka.cs.wustl.edu>
1645         * ace/Select_Reactor.i (cancel_timer): Make sure that we don't try
1646           to call cancel() through a NULL this->timer_queue_.  Thanks to
1647           Stephen Coy <stevec@wsa.com.au> for reporting this.
1649         * ace/ACE.cpp (set_handle_limit): Fixed a subtle bug that occurs
1650           if the OS doesn't like non-initialized rlimit structs.  Thanks
1651           to Stephen Coy <stevec@wsa.com.au> for reporting this.
1653         * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp (main):
1654           Renamed allocator to my_alloc to work around wonderful STL and
1655           GCC problems...  Thanks to Ben Eng <ben@jetpen.com> for
1656           reporting this.
1658         * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: Removed
1659           unused constant SHMSZ.  Thanks to Ben Eng <ben@jetpen.com> for
1660           reporting this.
1662         * examples/Reactor/Misc/test_time_value.cpp (operator<<): Removed
1663           the "dec" stream manipulator since it isn't portable.  Thanks to
1664           Ben Eng <ben@jetpen.com> for reporting this.
1666         * performance-tests/Misc/preempt.cpp (main): Cleaned up this test
1667           so it compiles on non-threaded platforms.  Thanks to Ben Eng
1668           <ben@jetpen.com> for reporting this.
1670         * examples/Timer_Queue/main_*.cpp (main): std::auto_ptr does not
1671           have an operator= that accepts a raw pointer.  Therefore, we
1672           must assign raw pointers to an auto_ptr via the constructor.
1673           Thanks to Ben Eng <ben@jetpen.com> for reporting this.
1675         * apps/Gateway/Gateway/Proxy_Handler.cpp: Make sure we distinguish
1676           between ACE_NULL_SYNCH and ACE_MT_SYNCH since these will be
1677           different on all platforms, whereas ACE_SYNCH will be the same
1678           as ACE_NULL_SYNCH on platforms without threads.  Thanks to Ben
1679           Eng <ben@jetpen.com> for reporting this.
1681         * ace: Removed lots of uses of NULL and replaced them with 0.
1682           This works around bugs with lame C++ compilers that treat NULL
1683           as (void *).  Thanks to Ben Eng <ben@jetpen.com> for reporting
1684           this.
1686         * ace/Thread.i (spawn): Replaced "stack" with "thr_stack" to work
1687           around bugs with lame C++ compilers and STL.  Thanks to Evgeny
1688           Beskrovny <evgeny_beskrovny@icomverse.com> for reporting this.
1690 Sat Nov  1 11:55:05 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
1692         * ace/config-irix5.3-g++.h,
1693           ace/config-irix5.3-sgic++.h: Removed the ACE_HAS_SYS_SIGLIST
1694           macro since it doesn't seem to be working.  Thanks to Laura
1695           Paterno <lpaterno@d0chb.fnal.gov> for reporting this.
1697         * include/makeinclude/platform_chorus.GNU: Tidied up
1698           platform_chorus.GNU a bit.  Thanks to Wei Chiang
1699           <chiang@tele.nokia.fi> for this.
1701 Fri Oct 31 14:35:37 1997  David L. Levine  <levine@cs.wustl.edu>
1703         * ace/OS.cpp (thr_create): on Chorus, double the stack size to
1704           avoid bad problems.  Thanks to Wei Chang <chiang@tele.nokia.fi>
1705           for diagnosting this.
1707         * ace/Hash_Map_Manager.cpp (unbind_i): set the int_id
1708           reference argument instead of ignoring it.  Thanks to
1709           Wei Chang <chiang@tele.nokia.fi> for providing the patch.
1711         * ace/OS.h,README: wrapped #include of dlfcn.h with
1712           ACE_HAS_DLFCN_H_BROKEN_EXTERN_C to support RedHat 4.2
1713           Linux 2.0.30/Alpha.
1715         * ace/OS.i,README: added ACE_HAS_GETRUSAGE_PROTO support, for
1716           platforms that have a getrusage () prototype that is
1717           different from the one in OS.i.
1719         * ace/config-linux.h: added added some #defines to enable
1720           builds on RedHat 4.2/Linux 2.0.30/Alpha.
1722         * include/makeinclude/platform-linux.GNU: added -pipe and
1723           bumped optimization level up to -O3.
1725         * ace/Thread_Manager.cpp (wait_task): no-op if thr_list_
1726           size is 0.  wait_task () can be called under that condition
1727           (after Thread_Manager::wait () has returned) from an
1728           ACE_Stream destructor, through ACE_Module::close () and
1729           ACE_Task_Base.wait ().  Without this change, wait_task ()
1730           allocated a copy_table array of size 0.  Sun C++ leaked
1731           that array, according to Purify.
1733         * ace/Service_Config.*,Object_Manager.cpp: moved static
1734           ACE_Service_Config::signal_handler_ to Object_Manager.
1736         * include/makeinclude/rules.local.GNU (show_statics,show_uninit):
1737           added $(TOOLENV) to allow specification of full path to nm.
1738           Thanks to Wei Chiang <chiang@tele.nokia.fi> for this suggestion.
1740         * include/makeinclude/platform_chorus.GNU: added trailing "/"
1741           to TOOLENV definition, so that it can be empty when not used.
1743         * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU:
1744           added documentation for ACE show_statics and show_uninit targets.
1745           These are only supported with g++.
1747 Fri Oct 31 00:53:52 1997    <irfan@TWOSTEP>
1749         * The following five changes were suggested by Stephen Coy
1750           <stevec@wsa.com.au>.  Thanks Stephen.
1752         * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed friend
1753           ace_dewarn_gplusplus to friend class ace_dewarn_gplusplus.
1755         * ace/Malloc_T.h: Move the #include files to just after the
1756           declaration of the macros, otherwise Containers.cpp will be
1757           #included before the definition of the various allocator macros
1758           (such as ACE_ALLOCATOR_RETURN) have been seen (when
1759           ACE_TEMPLATES_REQUIRE_SOURCE is defined).
1761         * ace/Hash_Map_Manager.cpp (close_i): Changed &table[i] to
1762           &table_[i].
1764         * ace/Containers.h: The ACE_Node destructor needs to be publicly
1765           accessible in order to support the
1766           ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR fix.  Unfortunately,
1767           making the template function
1768           ACE_Destructor_Template_For_HPUX_aCC_Only a friend does not seem
1769           to work (although it should).
1771         * ace/ACE.cpp (ldfind): Changed path_entry from char* to
1772           const char*.
1774         * tests/Priority_Reactor_Test.cpp (main): Fixed auto_ptr usage.
1775           Thanks to Jack Erickson (jack@pinion.com) for pointing this out.
1777         * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not
1778           include the destructor.  This causes undefined destructor
1779           problems on Win32.  Also added ACE_UNIMPLEMENTED_FUNC macros
1780           around the remain functions.
1782 Thu Oct 30 21:22:47 1997  David L. Levine  <levine@cs.wustl.edu>
1784         * ace/Makefile: added auto Svc_Conf_[ly].cpp patches.
1786         * etc/Svc_Conf_[ly].cpp.diff,README: the ace/Svc_Conf_[ly].cpp
1787           patches, and instructions for updating them.
1789 Thu Oct 30 19:54:50 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1791         * ACE version 4.3.34, released Thu Oct 30 19:54:50 1997.
1793 Thu Oct 30 17:49:56 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
1795         * tests/Priority_Task_Test.cpp (main): Moved "int status" out of
1796           the #if defined (ACE_HAS_THREADS) so that it will compile when
1797           the platform *doesn't* have threads.
1799         * ace/Synch_T.i (ACE_TSS): Added a missing ':' that was causing
1800           problems on platforms that lack threads.  Thanks to Laura
1801           Paterno <lpaterno@d0chb.fnal.gov> for helping to track this
1802           down.
1804         * ace/Signal.cpp (register_handler): Make sure not to use
1805           SA_SIGINFO if we're running on LynxOS.  At some point, we'll
1806           want to generalize this, once enough OS platforms support POSIX
1807           real-time signals.  Thanks to Kirill.Rybaltchenko
1808           <Kirill.Rybaltchenko@cern.ch> for reporting this.
1810         * include/makeinclude/platform_chorus.GNU (CXX): Replaced
1811           DCFLAGS += -g with DCFLAGS += -gstabs+.  Thanks to
1812           Wei Chiang for this.
1814         * ace/OS.cpp: It's not valid to set the NULL_key to anything other
1815           than implicit initialization.  In particular, if we set it to -1
1816           it breaks on pthreads systems...  Thanks to Check Gehr for
1817           reporting this.
1819         * ace/config-irix5.3*++.h: Added ACE_NEEDS_SYSTIME_H.  Thanks to
1820           Laura Paterno <lpaterno@d0chb.fnal.gov> for reporting the
1821           problem.
1823         * ace/OS.h: Moved the unistd.h files back down to where
1824           they originally were defined since this was unnecessary.
1826         * include/makeinclude/platform_chorus.GNU (CXX): Replaced
1827           DCFLAGS += -g with DCFLAGS += -gstabs+.  Thanks to
1828           Wei Chiang for this.
1830 Thu Oct 30 17:41:19 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
1832         * ace/OS.h: Stray semi-colon removed from ACE_CLASS_IS_NAMESPACE
1833           macro.
1835 Thu Oct 30 17:04:52 1997    <irfan@TWOSTEP>
1837         * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not
1838           include the destructor.  This causes undefined destructor
1839           problems on Win32.  Also added ACE_UNIMPLEMENTED_FUNC macros
1840           around the remain functions.
1842 Thu Oct 30 10:50:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1844         * ace/OS.h: Added new macro--ACE_CLASS_IS_NAMESPACE ()--to
1845           designate that a class is being used as a pseudo-namespace.  It
1846           declares private CTOR, Copy CTOR, and DTOR, as well as a friend
1847           declaration in order to de-warn on g++.  Typical usage would be
1848           something like:
1850           class FooBarNamespace
1851           {
1852             ACE_CLASS_IS_NAMESPACE (FooBarNamespace);
1854           public:
1855             static ...
1856           };
1858           The ACE_OS class has been updated to use this.
1860         * ace/ACE.h: Updated class ACE to use the new
1861           ACE_CLASS_IS_NAMESPACE ().
1863         * ace/OS.i (getopt): Changed ACE_LACKS_SOME_POSIX_PROTOTYPES back
1864           to ACE_LACKS_POSIX_PROTOTYPES so that a clean build on Linux is
1865           achievable now.
1866         (msgsnd): Corrected errant spelling from
1867           ACE_LACKS_POSIX_SOME_PROTOTYPES to
1868           ACE_LACKS_SOME_POSIX_PROTOTYPES.
1870 Thu Oct 30 06:14:58 1997  David L. Levine  <levine@cs.wustl.edu>
1872         * Makefile,ACE-INSTALL: removed ACE-INSTALL from CVS control.
1873           It will only be created when a release is made in
1874           /project/adaptive/ACE_wrappers, and not put under CVS control.
1876         * ace/Manager_Object.h: added ACE_INLINE specifier to
1877           get_preallocated_object/array declarations.  Thanks to
1878           Torbjorn Lindgren <tl@funcom.no> for reporting this.
1880         * ace/Synch.cpp: removed duplicate
1881           ACE_Write_Guard<ACE_RW_Thread_Mutex> instantiation.  Thanks to
1882           Torbjorn Lindgren <tl@funcom.no> for reporting this.
1884         * tests/Conn_Test.cpp: fixed template instantiation pragmas.
1885           Thanks to Torbjorn Lindgren <tl@funcom.no>, again.
1887         * tests/SPIPE_Test.cpp: replaced ACE_UNUSED_ARG of client and server
1888           with conditional compilation of those functions.  Thanks to
1889           Torbjorn Lindgren <tl@funcom.no> for snagging this.
1891         * ace/OS.{h,cpp},Object_Manager.cpp (tss_open,tss_close): removed
1892           tss_open () dynamic allocation option because it wasn't used.
1893           Removed tss_close() because it was a no-op without tss_open ()
1894           dynamic allocation.
1896         * ace/OS.cpp (tss_open): On VxWorks, don't check for 0 tss_base ().
1897           It's not always 0 on program startup, especially if a program
1898           has been previously run by the shell directly, without spawning
1899           a new task to run it.
1901         * ace/OS.*: added ACE_TSS_EMULATION support for non-scalar
1902           ACE_thread_key_t.  Thanks to Chuck Gehr <gehr@sweng.stortek.com>
1903           for motivating this.
1905         * ace/config-mvs.h: added ACE_HAS_NONSCALAR_THREAD_KEY_T.  It
1906           is only used with ACE_HAS_TSS_EMULATION, which currently is
1907           not supported on MVS.
1909         * ace/OS.cpp (ACE_Thread_Adapter::invoke): cleaned up this function.
1911 Thu Oct 30 03:25:13 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1913         * ace/Hash_Map_Manager.cpp (close_i): Can't use ACE_DES*
1914           template.  Have I been here before?
1916 Thu Oct 30 03:03:41 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1918         * ace/Hash_Map_Manager.cpp (close_i): Changed to use ACE_DES* macros.
1920         * ace/OS.h: Moved ACE_Allocator related macros to Malloc_T.h
1922         * ace/Malloc_T.h: Moved ACE_Allocator related macros from OS.h.
1923           Added two macros ACE_DES_NOFREE and ACE_DES_NOFREE_TEMPLATE to
1924           call objects' destructors explicitly.  This is required to
1925           take care of some "broken" compilers.  Thanks to Stephen Coy
1926           <stevec@magna.com.au> for providing the fix for HP-UX aCC.
1928         * ace/README:
1929         * ace/config-hpux-10.x-hpc++.h: Added flag
1930           ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR.
1932 Thu Oct 30 02:56:25 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1934         * ACE version 4.3.33, released Thu Oct 30 02:56:25 1997.
1936 Thu Oct 30 01:03:21 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
1938         * ace/LOCK_SOCK_Acceptor.cpp: Added a #include of "ace/Synch.h" so
1939           that the Conn_Test.cpp will compile on HP/UX.  Thanks to Stephen
1940           Coy <stevec@magna.com.au> for reporting this.
1942 Wed Oct 29 22:55:15 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
1944         * ace/config-vxworks5.x-g++.h:
1945         * ace/config-unixware-2.1.2-g++.h:
1946         * ace/config-unixware-2.01-g++.h:
1947         * ace/config-sunos5.5-g++.h:
1948         * ace/config-sunos5.4-g++.h:
1949         * ace/config-sunos4-g++.h:
1950         * ace/config-osf1-4.0.h:
1951         * ace/config-osf1-4.0-g++.h:
1952         * ace/config-linux.h:
1953         * ace/config-linux-pthread.h:
1954         * ace/config-linux-lxpthreads.h:
1955         * ace/config-irix6.x-g++.h:
1956         * ace/config-irix5.3-g++.h:
1957         * ace/config-hpux-10.x-g++.h:
1958         * ace/config-gcc-2.7.2.h:
1959         * ace/config-freebsd.h:
1960         * ace/config-freebsd-pthread.h:
1961         * ace/config-chorus.h:
1962         * ace/config-aix-4.1.x.h:
1963         * ace/README: Removed ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR.
1964           It is no longer in use.
1966 Wed Oct 29 21:12:55 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
1968         * ace/README: Added a new macro called ACE_LACKS_SOCKET_BUFSIZ,
1969           which is enabled on VxWorks.
1971         * ace/OS.h: Added a new macro called
1972           ACE_DEFAULT_MAX_SOCKET_BUFSIZ, which is set to 65536.
1974         * ace/OS: Changed the tolower() method to to_lower() so that it
1975           won't conflict if there's a macro with the same name.
1977         * ace/OS.h: #include <unistd.h> before ACE_Time_Value as long as
1978           ACE_LACKS_UNISTD_H is false.  Added this flag to the VxWorks and
1979           Win32 config.h files.
1981         * ace/OS.h: Added a special #define for IRIX5, which seems to put
1982           timeval in a strange file...  Also, moved this #include to
1983           *before* ACE_Time_Value.  Thanks to Carlos O'Ryan for suggesting
1984           this and to Laura Paterno <lpaterno@d0chb.fnal.gov> for
1985           reporting the problem in the first place.
1987         * ace: Changes all uses of the overly long
1988           ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS to
1989           ACE_LACKS_SOME_POSIX_PROTOTYPES.  However, I'm not really sure
1990           how this relates to the ACE_LACKS_POSIX_PROTOTYPES macro.  I
1991           suspect we probably only need one of these...
1993         * ace/OS.h: Added a new ACE_HAS_STDARG_THR_DEST to handle
1994           weirdness with LynxOS.  Thanks to Kirill.Rybaltchenko
1995           <Kirill.Rybaltchenko@cern.ch> for reporting this.
1997         * ace: OS.h,config-lynxos.h: Added a new ACE_LACKS_GETOPT_PROTO
1998           for LynxOS.  Thanks to Kirill.Rybaltchenko
1999           <Kirill.Rybaltchenko@cern.ch> for reporting this.
2001         * ace/config-lynxos.h: Replaced
2002           ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS with
2003           ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCTIONS.  Thanks to
2004           Kirill.Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for reporting
2005           this.
2007 Wed Oct 29 22:17:03 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2009         * ace/config-hpux-10.x-hpc++.h (ACE_HAS_TEMPLATE_SPECIALIZATION):
2010           Moved to C++ section.  Restored ACE_TEMPLATE_REQUIRE_SOURCE in
2011           C++ section.  Thanks to Stephen Coy <stevec@magna.com.au> for
2012           providing the fix (patiently.)
2014 Wed Oct 29 20:30:55 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
2016         * ace/OS.i (strlen): Moved it earlier so that it would be declared
2017           inline before use.
2019         * ace/OS.i (strcasecmp): Removed spurious semi-colons (how did
2020           they get in there?).
2022 Wed Oct 29 18:51:12 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
2024         * ace/OS.{h,i}: Added strcasecmp functionality for NT
2026 Wed Oct 29 15:56:01 1997  David L. Levine  <levine@cs.wustl.edu>
2028         * ace/OS.cpp: replaced ACE_TSS_REF_TABLE with a reference count to
2029           remove dynamic allocation from ACE_TSS_Info.  Also, enabled call
2030           of ACE_Task close hook before calling TSS destructors.
2032         * ace/OS.cpp: changed a few TSS 0 keys to ACE_OS::NULL_key.
2034         * ace/Thread_Manager.cpp (ace_thread_manager_adapter): with
2035           TSS_EMULATION, moved the call of tss_close () from here to
2036           ACE_Thread_Adapter::invoke () so that it can be called after
2037           the task's close hook, if any.
2039         * ace/{OS.h,Log_Msg.h,Object_Manager.cpp} (cleanup_tss): added
2040           an argument to indicate whether the main thread is calling or not.
2042         * ace/OS.i (ACE_TSS_Emulation::next_key): start key values at
2043           0 instead of 1, because it's easier to deal with arrays of
2044           keys then.  That also corresponds with the starting key value
2045           on Windows NT.
2047         * ace/IOStream.h: DEC_CXX #includes now depend on compiler version.
2048           Thanks to James Johnson <jcej@lads.com> for providing the fix.
2050 Wed Oct 29 10:32:16 1997  David L. Levine  <levine@cs.wustl.edu>
2052         * ace/config-lynxos.h: fixed ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS
2053           and added getopt () declaration.
2055         * include/makeinclude/platform_lynxos.GNU: updated LIBS.
2057         Thanks to Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for
2058         the above fixes.
2060         * etc/purify.solaris2: added another _thrp_exit UMR.
2062         * include/makeinclude/wrapper_macros.GNU: added login (LOGNAME)
2063           and compiler (CXX) to Purify/Quantify cache names.
2065 Wed Oct 29 08:40:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2067         * ACE version 4.3.32, released Wed Oct 29 08:40:38 1997.
2069 Wed Oct 29 07:39:38 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
2071         * ace/Synch.cpp: Added an explicit template instantiations for
2072           ACE_Guard<ACE_Process_Mutex>.
2074         * ace/LOCK_SOCK_Acceptor.h: Removed the typedef of
2075           ACE_SOCK_Acceptor with a full expansion of the name to fix a G++
2076           bug.
2078         * tests/Conn_Test.cpp: Fixed a template instantiation problem.
2080         * ACE-INSTALL.html: Pointed out that ACE is ported to LynxOS and
2081           Chorus.
2083         * ACE-INSTALL.html: Added information about cloning that explains
2084           how you must to build a config.h and platform_macros.GNU in
2085           cloned directory.  Thanks to Arturo for this.
2087         * bin/Makefile: Added
2088           $(ACE_ROOT)/include/makeinclude/platform_macros.GNU to Makefile
2089           so we can compile clone on any ACE platform.  Thanks to Arturo
2090           for this.
2092         * include/makefiles: Added new platform file for SCO UNIX with
2093           nothreads.  Thanks to Arturo for this.
2095         * ace: Added new config files for SCO UNIX with nothreads.
2096           Thanks to Arturo for this.
2098         * apps/JAWS/server/HTTP_Server.cpp: Fixed the typedef for
2099           ACE_LOCK_SOCK_Acceptor.  Thanks to Hans Rohnert for reporting
2100           this.
2102         * tests/Conn_Test.cpp: Changed template instantiations from
2103           SOCK_ACCEPTOR to LOCK_SOCK_ACCEPTOR.  Thanks to Han Rohnert for
2104           reporting this.
2106 Wed Oct 29 02:10:37 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2108         * ACE version 4.3.31, released Wed Oct 29 02:10:37 1997.
2110 Wed Oct 29 01:25:54 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2112         * tests/Conn_Test.cpp: Modified Conn_Test to fully integrate
2113           Irfan's new LOCK_SOCK_Acceptor.  This new implementation is
2114           truly the "mother of all Conn_Tests" ;-).
2116         * ace/LOCK_SOCK_Acceptor.cpp (lock): Added a lock() accessor
2117           method to the new ACE_LOCK_SOCK_Acceptor so that we can remove
2118           the lock (somehow).
2120 Wed Oct 29 00:29:52 1997    <irfan@TWOSTEP>
2122         * apps/JAWS/server: Fixed Win32 related compilation errors.
2124         * ace/OS.h (SIGUSR1 and SIGUSR2): Added new defines for these two
2125           signals.
2127         * ace/LOCK_SOCK_Acceptor: New class added to ACE (it was
2128           originally a class in JAWS).  It specialize ACE_SOCK_Acceptor to
2129           lock around <accept>.  This class is particular useful if you
2130           want to have multiple threads accepting on the same endpoint and
2131           the system does not support have thread safe accept.  Thanks to
2132           James Hu who initially wrote this class for JAWS.  Thanks also
2133           to Johannes Gutleber <Johannes.Gutleber@cern.ch> who decided to
2134           use this in the Conn_Test.
2136         * tests/Conn_Test.cpp: Updated to use the new LOCK_SOCK_Acceptor.
2138         * apps/JAWS/server/HTTP_Server.h: Updated to use the new
2139           LOCK_SOCK_Acceptor.
2141         * apps/JAWS/server/HTTP_Server_T.*: These files are no longer
2142           necessary since this class has been absorbed into ACE.
2144         * tests: Fixed auto_ptr use in:
2146           Notify_Performance_Test.cpp
2147           Priority_Reactor_Test.cpp
2148           Reactor_Performance_Test.cpp
2150           Thanks to Jack Erickson (jack@pinion.com) for pointing this out.
2152 Tue Oct 28 11:26:39 1997  Nanbor Wang  <nw1@CHA-CHA>
2154         * ace/ace_{dll,lib}.dsp:  Moved Acceptor.cpp from Source file
2155           folders to Template file folders.  Thanks to Satheesh Kumar
2156           <satheesh@aspectdv.com> for pointing this out.
2158 Tue Oct 28 05:44:56 1997  David L. Levine  <levine@cs.wustl.edu>
2160         * ace/OS.cpp (thr_create): use pthread_attr_setprio instead of
2161           *_setsched with DCETHREADS, and check return values of
2162           ACE_OS::thr_[gs]etconcurrency ().  Thanks to Stephen Coy
2163           <stevec@magna.com.au> for tracking these problems down.
2165         * tests/Priority_Task_Test.cpp (svc): removed ACE_ASSERT and
2166           replaced with setting of error flag.  This allows the test
2167           to continue and gather more possibly useful information.
2169         * tests/Conn_Test.cpp: 1) Added template instantiations.
2170           2) Re-enabled with DEC_CXX.  3) Removed THR_DETACHED flags.
2172         * include/makeinclude/platform_osf1_4.0.GNU: suppress warnings
2173           about unreachable statments.
2175         * ACE-INSTALL.html: Conn_Test now runs with DEC_CXX 6.0.
2177 Tue Oct 28 00:38:58 1997    <irfan@TWOSTEP>
2179         * ace/Strategies_T:
2181           ACE_Recycling_Strategy - Added new class ACE_Recycling_Strategy.
2182           It defines the interface (and default implementation) for
2183           specifying a recycling strategy for a SVC_HANDLER.  This
2184           strategy acts as a consular to the Svc_Handler, preparing it for
2185           the tough times ahead when the Svc_Handler will be recycled.
2187           ACE_NOOP_Concurrency_Strategy - Added new class
2188           ACE_NOOP_Concurrency_Strategy.  It implements a no-op activation
2189           strategy in order to avoid calling open on a recycled
2190           svc_handler multiple times.
2192           ACE_Cached_Connect_Strategy - Added a ACE_Creation_Strategy,
2193           ACE_Concurrency_Strategy, and ACE_Recycling_Strategy to the
2194           cached connector.  This gives it more flexibility than by simply
2195           providing template methods.  This is similar to the Strategy
2196           Connector.
2198           ACE_Cached_Connect_Strategy - Added new template methods for
2199           certain key occasions in the cached connector: make_svc_handler,
2200           activate_svc_handler, assign_recycler, and
2201           prepare_for_recycling.
2203         * tests/Conn_Test.cpp (client): Updated the tests such that it
2204           uses a null activation strategy.
2206 Mon Oct 27 22:17:54 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2208         * OS.h: Added the ACE_NESTED_CLASS macro to deal with those
2209         compilers that do not allow a fully scoped type name appearing
2210         inside a scope in which it was defined.
2212 Mon Oct 27 22:17:32 1997  David L. Levine  <levine@cs.wustl.edu>
2214         * ace/Thread_Manager.cpp (exit): don't use the cache when finding
2215           the thread ID.  The cache is in the ACE_Log_Msg instance, and
2216           it might have been deleted already.
2218 Mon Oct 27 20:33:07 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2220         * ACE version 4.3.30, released Mon Oct 27 20:33:07 1997.
2222 Mon Oct 27 18:03:06 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2224         * ACE-INSTALL.html (HREF): Added NT/Alpha to supporting platforms
2225           list.  Added hyperlink to ACE newsgroup.  Added hyperlink to
2226           FreeBSD homepage.  Minor changes to Win32 intstallation guide.
2228 Mon Oct 27 17:50:16 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2230         * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU (PRELIB):
2231           Changed PRELIB in platform_sco5.0.0-mit-pthread.GNU,
2232           platform_sco5.0.0-fsu-pthread.GNU to @true, so we can generate
2233           the TAO_IDL compiler.  Thanks to Arturo Montes
2234           <mitosys@colomsat.net.co> for reporting this.
2236 Mon Oct 27 14:26:10 1997    <irfan@TWOSTEP>
2238         * ace/Synch_T (ACE_TSS): When ACE does not have thread specific
2239           storage, ACE_TSS will be a simple pointer holder. Previously, it
2240           had a instance as a member, now it has a pointer to an instance.
2242         * ace/WFMO_Reactor.cpp (update_state): Fixed a bug in the
2243           WFMO_Reactor.  wakeup_all_threads() used to be an internal
2244           method that was called when changes were made to the state of
2245           the reactor.  When wakeup_all_threads() became public, there was
2246           no code in place to handle explicit user wakeups.  In
2247           particular, the wakeup_all_threads event was never reset.
2248           Thanks to Evgeny Beskrovny <evgeny_beskrovny@icomverse.com> for
2249           pointing out this bug.
2251         * ace/OS.i (ACE_FAIL_RETURN): Added mapping from
2252           ERROR_PATH_NOT_FOUND to ENOENT.  Thanks to David Brackman
2253           <dbrackma@OhioEE.com> for suggesting this.
2255 Mon Oct 27 11:36:39 1997  David L. Levine  <levine@cs.wustl.edu>
2257         * ace/OS.cpp (exit_cleanup_i): removed protection against recursive
2258           calls.  This protection no longer is necessary, because
2259           ACE_TSS_Cleanup () is only called by ACE_Thread_Adapter::invoke ().
2260           It was problematic because it used the ACE_Allocator instance.
2262         * ace/config-vxworks*.h,README: added ACE_LACKS_FCNTL.
2264         * ace/OS.i,ACE.cpp: replaced #ifdef VXWORKS with #ifdef
2265           ACE_LACKS_FCNTL.
2267         * ace/ACE.i (get_flags): return 0 if ACE_LACKS_FCNTL.  It would
2268           be better to store ACE's notion of the flags associated with
2269           the handle so that they could be returned, but this works for now.
2271         * tests/run_tests.vxworks: re-enabled Reactors_Test, because it
2272           works with the ACE_LACKS_FCNTL mods.
2274         * include/makeinclude/platform_osf1_4.0.GNU: -pthread instead of
2275           -lpthread in LIBS.  Thanks to James Johnson <jcej@lads.com> for
2276           pointing this out.
2278         * ACE-INSTALL.html: added info on bin/create_ace_build.
2280 Mon Oct 27 11:11:33 1997  Nanbor Wang  <nw1@CUECA>
2282         * netsvcs/servers/servers.dsp
2283         * netsvcs/lib/netsvcs.dsp:
2284         * tests/*.dsp:
2285         * ace/ace_{dll,lib}.dsp: Added project configurations for Alpha
2286           machines.  Configurations are named by adding "Alpha" in front
2287           of the original config names, e.g., "Win32 Alpha Unicode Debug.
2289 Mon Oct 27 06:40:18 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
2291         * include/makeinclude/rules.local.GNU (show_uninit): Added a
2292           missing semi-colon for one of the install rules.  Thanks to
2293           Manojkumar Acharya <mja@cvsf325.gpt.co.uk> for reporting this.
2295         * ace/Synch_T.h: Make sure that ACE_Guard::remove() calls
2296           this->lock_->remove() rather than this->lock_->release().
2297           Thanks to Johannes Gutleber <Johannes.Gutleber@cern.ch> for
2298           reporting this.
2300 Mon Oct 27 00:20:13 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2302         * ace/config-hpux-10.x-hpc++.h: Added directive
2303           ACE_HAS_TEMPLATE_SPECIALIZATION.  Thanks to Stephen Coy
2304           <stevec@wsa.com.au> for reporting this.
2306 Sun Oct 26 22:17:57 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2308         * ACE version 4.3.29, released Sun Oct 26 22:17:57 1997.
2310 Sun Oct 26 20:03:57 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
2312         * ace/IPC_SAP.cpp,
2313           ace/IO_SAP.cpp: Make sure that we don't use fcntl() when
2314           we're compiling on VXWORKS since it's not defined...
2316         * examples/Connection/non_blocking/CPP-connector.cpp: Changed the
2317           method named idle() to uninitialized() since idle() is now
2318           defined on ACE_Svc_Handler.
2320         * ace/OS.h: Added the TAO_DEFAULT_SERVER_PORT to OS.h.
2322         * tests/Conn_Test.cpp (cached_connect): Added a new variable
2323           called "n_client_iterations" to control how many times each
2324           client thread tries to connect with the Cached_Connector.
2326 Sun Oct 26 16:56:32 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2328         * include/makeinclude/platform_linux_lxpthread.GNU (CFLAGS): Added
2329         -pipe to the compile options.
2331 Sun Oct 26 11:04:21 1997  David L. Levine  <levine@cs.wustl.edu>
2333         * ace/Hash_Map_Manager.cpp (unbind): added ACE_UNUSED_ARG (int_id).
2335         * tests/Conn_Test.cpp (server): added ACE_UNUSED_ARG (options).
2336           And, added template instantations.
2338         * tests/Conn_Test.cpp (cached_connect): changed type of loop index i
2339           to int to avoid signed/unsigned comparison.
2341         * ace/Strategies_T.h: added #include of ace/Strategies.h.  Thanks to
2342           James Johnson <jcej@lads.com> for reporting this.
2344 Sun Oct 26 10:01:01 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2346         * ace/Connector.cpp (open):  The original fix failed to replace
2347           strategies under some circumstances.
2349         * ace/OS.{h,cpp} (sprintf): Removed ACE_OS::sprintf (wchat_t, char).
2350           It didn't ever work.
2352         * ace/Connector.cpp (open): Added check if we had previously
2353           allocated various strategies and deleted these objects before
2354           allocating new objects.  The original codes caused memory leaks
2355           and possible segmentation faults if it got called twice.  We
2356           probably need a do-nothing constructor (the current constructor
2357           calls open.)  However, this may break other codes.
2359 Sun Oct 26 01:00:07 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2361         * ACE version 4.3.28, released Sun Oct 26 01:00:07 1997.
2363 Sun Oct 26 00:50:00 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2365         * tests/Conn_Test.cpp (close): Since the connect() method on
2366           ACE_Connector closes the svc_handler if failure occurs, we
2367           shouldn't do that again unless we succeed in connecting.
2369         * ace/OS.h: Moved the CORBA portability macros from
2370           CORBA_Handler.h into OS.h so they will be accessible from TAO.
2372         * ace/Filecache.cpp (finish): Replaced filename_ with filename()
2373           so that "const correctness" would work with template
2374           specialization.  Go figure!
2376         * TAO/tests/IDL_Cubit/Makefile: Enhanced the "realclean" target to
2377           remove the generated IDL stubs and skeletons.
2379         * ace/OS.cpp (ace_sysconf_dump): Made a minor change to OS.cpp
2380           to fix some typos.  Thanks to Wei Chiang <chiang@tele.nokia.fi>
2381           for reporting this.
2383 Sun Oct 26 00:06:17 1997    <irfan@TWOSTEP>
2385         * ace/Strategies_T.cpp (~ACE_Cached_Connect_Strategy): Must set
2386           recycler to 0 before calling close, else the svc_handler will
2387           try to purge itself from the cache.
2389         * tests/Conn_Test.cpp (client): Updated to use the new connection
2390           recycling scheme.
2392         * ace/Hash_Map_Manager:
2394         - ACE_Hash_Map_Reverse_Iterator: Added reverse iterator.
2396         - ACE_Hash_Map_Entry: Added a prev pointer to the entry.  Thus
2397           changing the bucket chains into doubly linked lists.  Because of
2398           this, it was necessary to change the way the list was being
2399           managed.  Sentinels were created for each bucket.
2401           This also changed (a) the way the iterators worked, (b) made it
2402           easy to delete entries when you have one (this scheme allows the
2403           entries to be easily used as ACTs).
2405         - New methods (bind, trybind, rebind, find): These methods allow
2406           the users to get access to ACE_Hash_Map_Entry of the node in
2407           question.  This allows the user to treat the entry as an ACT and
2408           get access to the key (in case the user is interested in
2409           changing the key).  These methods are only valid since the
2410           implementation of Hash_Map_Manager uses linked lists where nodes
2411           are never copied.  These methods cannot be added to Map_Manager
2412           since it uses an array of nodes, where the your data may get
2413           copied to another node when the size of the Map_Manager changes.
2415         * ace/Strategies (ACE_Connection_Recycling_Strategy): Added a new
2416           abstract strategy for recycling connections.
2418         * ace/Strategies_T:
2420         - ACE_Cached_Connect_Strategy: ACE_Cached_Connect_Strategy now
2421           implements the ACE_Connection_Recycling_Strategy interface.
2422           This allows Svc_Handlers to cache themselves with
2423           ACE_Cached_Connect_Strategy when they become idle.  It also
2424           allows them to purge themselves from the connection cache when
2425           the Svc_Handlers close down.
2427           Also added ~ACE_Cached_Connect_Strategy that will cleanup up the
2428           connection cache.
2430         - ACE_Hash_Addr: ACE_Hash_Addr is the key for the hash map used by
2431           ACE_Cached_Connect_Strategy.  Previously it kept the Svc_Handler
2432           pointer in the key in order to find out if it was busy or not.
2433           Now the <in_use> flag has been moved from the Svc_Handler into
2434           the key.  The also saves the Hash_Addr from requiring
2435           Svc_Handler as a template parameter.
2437           Also updated ACE_Hash_Addr::operator== such that if the
2438           Svc_Handler is busy, it does not bother to check compare the
2439           addresses but simply returns false.
2441         * ace/Svc_Handler.cpp: Added the ability for a Svc_Handler to
2442           recycle itself.  idle() can be called when the Svc_Handler is
2443           done serving a particular connection and can how be recycled.
2444           The Svc_Handler now also has a pointer to a recycler that is
2445           responsible for managing the connections.  The recycler is
2446           usually a Cached_Connector.
2448         * ace/Filecache.cpp (ACE_Hash_Map_Entry): Added a new constructor
2449           specialization as the ACE_Hash_Map_Entry now has two
2450           constructors.
2452         * tests/Hash_Map_Manager_Test.cpp (ACE_Hash_Map_Entry): Added a
2453           new constructor specialization as the ACE_Hash_Map_Entry now has
2454           two constructors.
2456         * tests/Reactor_Exceptions_Test.cpp (class My_Reactor): Added the
2457           other handle_events method.  Thanks to Stephen Coy
2458           (coys@mail.ns.wsa.com.au) for pointing this out.
2460         * ace/Strategies_T.cpp (hash_i): This default routine is no good.
2461           It uses a complicated scheme that calculate a hash value.
2462           Unfortunately, there is no guarantee that this hash algorithm
2463           will produce the same hash value for the same address.
2464           Therefore, it is better just to return a consistent hash value
2465           rather than an erroneous one.  I have choosen 0 of the return
2466           value.  Even though this will cause all the entries to be hashed
2467           to the 0 bucket, atleast they will be found.  Users should
2468           override this to provide better hashing.
2470           (compare_i): Memcmp is not the correct default action.
2471           !(b1==b2) is the correct comparison, though this will assume
2472           that the addresses will have a comparison operation.
2474         * ace/Mem_Map.cpp (close and close_handle): close() is doing too
2475           much.  It is closing the handle and unmapping the file.
2476           Changing this method might effect code that depends on this
2477           behavior.  Therefore, we create a seperated method
2478           close_handle() that only closes down the handle, and does not
2479           unmap the file.  Thanks to Jeff Richards (jrichard@OhioEE.com)
2480           for pointing this out.
2482         * ace/Strategies_T.cpp (connect_svc_handler): If connect() failed
2483           because of timeouts, we have to reject the connection entirely.
2484           This is necessary since currently there is no way for the
2485           non-blocking connects to complete and for the <Connector> to
2486           notify the cache of the completion of connect().  Therefore if
2487           errno is EWOULDBLOCK, it is changed to ENOTSUP and -1 is
2488           returned.
2490 Sat Oct 25 17:41:57 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2492         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
2493         * examples/Timer_Queue/Async_Timer_Queue_Test.cpp:
2494         * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
2495         * examples/Timer_Queue/main_async.cpp:
2496         * examples/Timer_Queue/main_reactor.cpp:
2497         * examples/Timer_Queue/main_thread.cpp:
2498           Added "#pragma instantiate" for template instantiations on
2499           platforms that use pragmas instead, like SGI.
2501 Sat Oct 25 4:44:00 1997  Carlos O'Ryan <coryan@cs.wustl.edu>
2503         * Today at 06:44 hours (Santiago, 04:44 St. Louis) Fernanda O'Ryan
2504           has joined the ACE family.  She was born 3040 gr in weight and
2505           50 cm length.  She has absolutely no experience in CORBA, C++ or
2506           programming in general.  Therefore, she is the ultimate Java
2507           programmer.
2509 Sat Oct 25 10:13:56 1997  David L. Levine  <levine@cs.wustl.edu>
2511         * ace/Singleton.h: added comment about best ACE_LOCK types to use.
2513         * Makefile (TIMESTAMP): replace tab with spaces in ChangeLog entry.
2515         * tests/Conn_Test.cpp (main): fixed typo, spawn_threads instead of
2516           spawn_thread.  Also, protected definitions of spawn_processes ()
2517           and spawn_threads () to avoid compiler warnings about unused static
2518           functions.
2520 Sat Oct 25 01:02:34 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2522         * ACE version 4.3.27, released Sat Oct 25 01:02:34 1997.
2524 Fri Oct 24 17:39:08 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2526         * ace/ACE.cpp: Changed all the ACE_BIT_ENABLED () == 0 macros to
2527           ACE_BIT_DISABLED() since the logic is clearer.
2529         * ace/SOCK_Acceptor.cpp (shared_accept): Improved the handling of
2530           timed accepts.  The original implementation was prone to race
2531           conditions if there were multiple processes all doing timed
2532           connects on the *same acceptor socket*!  That's because select()
2533           and accept() are not performed atomically.  Now, we're smarted
2534           about handling this...
2536         * tests/Conn_Test.cpp: Simplified the shutdown logic, which
2537           appeared to have race conditions.
2539         * tests/Conn_Test.cpp: Modified this test to spawn off a number of
2540           server processes, all of which will listen for connections on
2541           the same acceptor port.  This demonstrates a useful idiom for
2542           writing connection-oriented concurrent server pools.
2544         * netsvcs/lib/Server_Logging_Handler_T: Fixed this code so that if
2545           we're on an HP/UX that has broken templates we don't use the
2546           Base_Optimizer.  Thanks to Per Andersson for providing this fix.
2548         * ace/Thread_Manager: Added a destructor for ACE_Thread_Descriptor
2549           to keep some compilers happy.  Thanks to Chuck Gehr
2550           <gehr@sweng.stortek.com> for reporting this.
2552         * ace/Task.cpp (ACE_Task_Base_cleanup):  Changed
2553           ACE_Task_Base::cleanup (object);
2555           to:
2557           ACE_Task_Base::cleanup (object, 0);
2559           Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
2560           this.
2562         * ace/Thread_Manager.cpp (find_thread): Fixed another problem with
2563           == being used to compare threads rather than
2564           ACE_OS::thr_equal().  Thanks to Chuck Gehr
2565           <gehr@sweng.stortek.com> for reporting this.
2567 Fri Oct 24 17:11:14 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
2569         * Thread_Timer_Queue_Test.cpp (shutdown_timer): added logic to
2570           cancel preemptively or voluntarily, the dispatching thread,
2571           depending on whether the platoform supports pthread_cancel().
2573         * Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter): Added
2574           initialization of <active_> flag to 1, active mode.  We assume
2575           we start in active mode.  Added an internal variable <thr_id_>
2576           that stores the thread id of the currently running thread.  The
2577           motivation behind this is to be able to cancel this thread
2578           whenever we are shutting down.  It is initialized to
2579           ACE_OS::NULL_thread.
2581         * Timer_Queue_Adapters.cpp (svc): Assign the <thr_id_> with the
2582           current running thread ID, using ACE_Thread::self ().
2584         * Timer_Queue_Adapters.h (ACE_Thread_Timer_Queue_Adapter): Added
2585           default <ACE_Thread_Manager> to be
2586           ACE_Thread_Manager::instance()
2588         * Timer_Queue_Adapters.h (activate): Override the default
2589           <activate> method to be able to enforce one thread of execution
2590           per timer queue.  Does make much sense to have more than one
2591           managing the timer queue, and like Doug said too many weird
2592           things can happen...
2594         * Timer_Queue_Adapters.i (thr_id): Added this method to access the
2595           thread ID of this task.
2597         * Timer_Queue_Adapters.i (activate): Call
2598           ACE_Task_Base::activate() with n_threads = 1 to ensure that a
2599           single thread is spawned.
2601 Fri Oct 24 10:00:02 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2603         * ace/Thread_Manager.cpp (wait_grp):  Fixed a bug.  Should wait on
2604           threads with same grp_id, not task.
2606 Fri Oct 24 09:24:14 1997  David L. Levine  <levine@cs.wustl.edu>
2608         * ace/Select_Reactor.cpp (open): cast return value of
2609           ACE_::max_handles () to size_t to avoid signed/unsigned comparison.
2611         * ace/Singleton.cpp,Object_Manager.{h,cpp}: (get_singleton_lock):
2612           dynamically allocate ACE_Thread_Mutex and ACE_RW_Thread_Mutex locks,
2613           so we end up with one lock per ACE_Singleton instantiation.
2615         * ace/OS.cpp (ACE_TSS_Info, Win32 and VxWorks only): changed type
2616           of ACE_TSS_TABLE from ACE_Unbounded_Stack to fixed-size ACE_Array.
2617           With this change, we avoid some use of ACE_Allocator when
2618           destroying TSS objects.  There are two more changes required to
2619           completely remove the ACE_Allocator use.
2621         * tests/TSS_Test.cpp (worker): added printout of iteration count.
2623 Fri Oct 24 01:53:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2625         * ACE version 4.3.26, released Fri Oct 24 01:53:58 1997.
2627 Thu Oct 23 19:05:08 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2629         * netsvcs/clients/Naming/Client/Makefile
2630           netsvcs/clients/Naming/Dump_Restore/Makefile
2632           The lines:
2634           SHLIB   = libClient_Test.so
2635           SHLIB   = libDump_Restore.so
2637           need to be
2639           SHLIB   = libClient_Test.$(SOEXT)
2640           SHLIB   = libDump_Restore.$(SOEXT)
2642           Thanks to Stephen Coy <stevec@magna.com.au> for reporting this.
2644         * ace/Thread_Manager.cpp (find_hthread): Replaced the call
2646           if (iter.next ()->thr_handle_ == h_id)
2648           to
2650           if (ACE_OS::thr_equal (iter.next ()->thr_handle_, h_id))
2652           since the other one isn't portable to Pthreads.  Thanks to
2653           Stephen Coy <stevec@magna.com.au> for reporting this.
2655         * ace/Hash_Map_Manager.cpp: Removed the sentinel in the
2656           Hash_Map_Manager.  Sentinels are evil since they require us to
2657           hold write locks, even when we're doing finds!
2659         * ace/ACE.cpp (max_handles): By default, we now try to use the
2660           getrlimit() function before sysconf() since sysconf() doesn't
2661           work "correctly" for NO _SC_OPEN_MAX (i.e., it just returns the
2662           original value, which might have been changed by setrlimit().
2663           What a pain...
2665         * ace/ACE.cpp (max_handles): If FD_SETSIZE is enabled return
2666           this as the number of handles.  This isn't perfect, but it's
2667           probably better than returning -1.
2669         * ace/Select_Reactor.cpp (open): Added a call to
2670           ACE::set_handle_limit() if the requested size for the Reactor is
2671           greater than the current max number of descriptors in the
2672           process.  Also check to make sure that the user isn't ask for
2673           more than the FD_SETSIZE.  Thanks to Neil Lavelle
2674           <nlavelle@imcl.com> for motivating this.
2676         * ace/Thread_Manager: Changed the name THR_FUNC to
2677           ACE_THR_MEMBER_FUNC since it's now a global typedef on VxWorks
2678           and we don't have to have clashes with other names.
2680         * ace/Thread_Manager.h: There are mutually incompatible bugs with
2681           VxWorks and MVS.  Therefore, we have to conditionally compile
2682           the THR_FUNC differently for these two platforms.  Thanks to
2683           Chuck Gehr <gehr@sweng.stortek.com> for reporting this.
2685         * ace/OS.cpp (thr_create): Added a fix to set the Chorus stack
2686           size correctly.  Thanks to Wei Chiang <chiang@tele.nokia.fi> for
2687           reporting this.
2689         * ace/OS.cpp: Added a new method ace_sysconf_dump() to dump the
2690           state of the configuration.  Thanks to Wei Chiang
2691           <chiang@tele.nokia.fi> for reporting this.
2693         * ace/Singleton.cpp (dump): There was a typo in the dump() method
2694           for ACE_TSS_Singleton, it should be
2695           ACE_TSS_Singleton::instance_i().  I've fixed this.
2697 Thu Oct 23 23:19:24 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
2699         * ace/Filecache.cpp: Removed template method specialization of
2700           shared_find.  No longer needed since Hash_Map_Manager has been
2701           changed to no longer rely on sentinel_.
2703         * ace/Thread_Manager.cpp (various):
2704           Hacked 'til it compiled.  (Chased down syntax errors.)
2706 Thu Oct 23 22:52:17 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
2708         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (shutdown_timer):
2709           Added a line to call the cancel method on the timer queue task
2710           when we are shutting down; this is wrapped around #if's to only
2711           include this only when the platformm supports pthread_cancel().
2713         * ace/Timer_Queue_Adapters.cpp (svc): Added some POSIX thread
2714           cancellation points to make sure the mutex that the condition
2715           variable uses is unlocked before the thread is cancelled.
2717         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (list_timer):
2718           Deleted unnecessary cancellation points.  Since we are not
2719           blocking on a condition variable, we don't need to guard the
2720           code.
2722 Thu Oct 23 22:07:03 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2724         * ace/Thread_Manager.cpp (wait_task,wait_grp): We should also
2725           check for thread creation flags when collection information for
2726           threads belong to this group and don't try to join those threads
2727           created with THR_DETACHED or THR_DAEMON.
2729 Thu Oct 23 21:22:16 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
2731         * ACE-INSTALL.html: Copied some documentation about makefile flags
2732           from include/makeinclude/wrapper_macros.GNU and added a section
2733           for this.
2735 Thu Oct 23 20:37:44 1997  David L. Levine  <levine@cs.wustl.edu>
2737         * ace/Array.*: added ACE_Array_Iterator.
2739 Thu Oct 23 17:28:11 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2741         * ace/Mem_Map.i (close_filemapping_handle): Moved this above its
2742           uses in the file so that g++ would de-warn.
2744 Thu Oct 23 15:30:17 1997  Steve Huston  <shuston@riverace.com>
2746         * ace/Timer_Hash_T.h, Timer_Hash.cpp, Timer_Heap_T.h, Timer_Heap.cpp,
2747           Timer_List_T.h, Timer_List.cpp, Timer_Queue_T.h, Timer_Queue.cpp,
2748           Timer_Wheel_T.h, Timer_Wheel.cpp: Replaced all occurences of
2749           ACE_HPUX_BROKEN_TEMPLATES with ACE_HAS_BROKEN_HPUX_TEMPLATES.
2751 Wed Oct 22 23:23:29 1997  Nanbor Wang    <nw1@COYOTE>
2753         * ace/ACE_Library.*, ace_lib.dsp: Made naming convention uniform
2754           for some less used ACE library.  They are called:  aced.dll,
2755           ace.dll, aceud.dll, aceu.dll, acesd.lib, aces.lib, aceusd.lib
2756           and aceus.lib.  If you are using ACE on NT, you know what they
2757           mean.  ;-)
2759 Wed Oct 22 21:22:35 1997  David L. Levine  <levine@cs.wustl.edu>
2761         * ace/Object_Manager.{h,cpp}: Added support for ACE_RW_Thread_Mutex
2762           ACE_Singleton lock type.  Thanks to Nanbor for suggesting this,
2763           because TAO needs it.
2765           Also, removed at_exit registration of dynamically allocated
2766           ACE_Static_Object_Lock because Object_Manager instance isn't
2767           available for registration when it's created.  Instead, handle
2768           this lock as a special case in the Object_Manager destructor.
2770         * ace/Singleton.cpp,Object_Manager.cpp: check for shutting_down ()
2771           as well as starting_up () when deciding whether to use a
2772           preallocated lock.  Preallocated locks are not available at those
2773           times.
2775         * tests/Reactor_Performance_Test.cpp (client): removed declaration
2776           of loop index "i" because it shadowed a local.  Also, the loop
2777           index declaration caused a signed/unsigned comparison.
2779         * ace/Singleton.cpp: temporarily disabled ACE_Guards until
2780           the lock acquistion is fixed.
2782 Wed Oct 22 17:53:26 1997  Steve Huston  <shuston@riverace.com>
2784         * ace/SOCK_Connector.cpp: In connect(), changed the
2785           (local != ACE_Addr::sap_any) to be value comparison,
2786           not pointer comparison.  Works on compilers which construct
2787           temporaries when a const reference is passed (like HP aC++), and
2788           also when a user passes an ACE_Addr which they construct to look
2789           just like an ACE_Addr::sap_any.  Thanks to Stephen Coy
2790           <stevec@magna.com.au> for finding this.
2792 Wed Oct 22 16:43:25 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
2794         * tests/Reactor_Performance_Test.cpp (client): Corrected some code
2795           that wasn't logical (but compiled!) in the connect_n() test.
2797 Wed Oct 22 13:27:47 1997  Douglas C. Schmidt  <schmidt@watusi.cs.wustl.edu>
2799         * tests/Reactor_Performance_Test.cpp (client): Revised the
2800           connection portion of this test to use the newly revised
2801           connect_n() method on Connector.
2803         * ace/Connector.cpp (connect_n): Revised the connect_n() method so
2804           that it keeps track of which connections succeeded and which
2805           failed.
2807 Wed Oct 22 07:23:21 1997  David L. Levine  <levine@cs.wustl.edu>
2809         * ace/OS.i (getpgid): fixed (commented) ACE_TRACE identifer.
2810           Thanks to Eric Newton <ecn@smart.net> for reporting this.
2812         * ace/Singleton.{h,cpp},Object_Manager.{h,cpp}: moved
2813           ace_singleton_lock_ to Object_Manager.  ace_singleton_lock_
2814           was a static data member:  in addition to the usual troubles
2815           associated with being a static, it was a static member of a
2816           template class.  g++ can't handle those, so we used a local
2817           static; initialization of that static was not thread safe.
2819           The fix relies on knowledge from the Object_Manager about
2820           whether the program is in static construction phase or not.
2821           A critical assumption is that construction of static objects
2822           does not spawn threads.  With that assumption, we know that
2823           there is only one (main) thread in the program prior to the
2824           Object_Manager instance being constructed.  At that time,
2825           locking is not needed.  The ACE_{TSS_}Singleton::instance ()
2826           methods rely on the state of the Object_Manager:  if it has
2827           not been constructed yet, then they don't guard allocation
2828           of their singleton instance.
2830           The Object_Manager constructs four locks (of types ACE_Null_Mutex,
2831           ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and
2832           ACE_RW_Thread_Mutex) for use only by ACE_Singleton classes.
2833           After the Object_Manager has been constructed, ACE_{TSS_}Singleton
2834           instantiations use one of those locks to guard their allocation of
2835           a new instance, via double-checked locking.
2837           This change has one impact, then:
2838           ACE_{TSS_}Singleton users are limited to the following types
2839           for their ACE_LOCK instantiation parameters:  ACE_Null_Mutex,
2840           ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and
2841           ACE_RW_Thread_Mutex.  If another type is needed, it can be
2842           easily added to the ACE_Object_Manager:  another overloaded
2843           get_singleton_lock () function and preallocated lock would
2844           have to be added.
2846           As noted in Singleton.h, the best types of ACE_LOCKs to use
2847           for instantiating ACE_Singleton are ACE_Recursive_Thread_Mutex
2848           and ACE_Null_Mutex.
2850           In addition to the above change, I made these two other
2851           changes:
2852           1) ACE_Static_Object_Lock::instance ():  dynamically allocate
2853              a lock if the Object_Manager has not been constructed yet.
2854              This approach replaces the static lock that was necessary
2855              to allow the static services to be constructed.
2857           2) Consolidated the singleton_ access in ACE_TSS_Singleton
2858              via a singleton_i () internal accessor function.  Now,
2859              ACE_TSS_Singleton looks just like ACE_Singleton.
2861         * ACE-INSTALL.html: updated DEC CXX 6.0 build/test status.
2863         * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i
2864           (handle_timeout): convert arg to long if ACE_HAS_64BIT_LONGS.
2866         * examples/Shared_Malloc/test_malloc.cpp (worker): convert arg to
2867           long if ACE_HAS_64BIT_LONGS.
2869         * examples/Timer_Queue/Driver.cpp (run_test,parse_commands):
2870           added ACE_NOTREACHED.
2872         * examples/Logger/simple-server/Logging_Handler.cpp (handle_close):
2873           removed declaration of unused arg "mask".
2875         * include/makeinclude/rules.local.GNU: added show_statics and
2876           show_uninit targets.  They show the statics (that have static
2877           destructor calls) and uninitialized data in the object files
2878           in the current directory.  They work best (or at all) on object
2879           files compiled by g++.
2881 Wed Oct 22 05:04:07 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2883         * ACE version 4.3.25, released Wed Oct 22 05:04:07 1997.
2885 Tue Oct 21 22:55:36 1997    <irfan@TWOSTEP>
2887         * ace/WFMO_Reactor: Removed ACE_Event_Handler::CLOSE_MASK and the
2888           explicit registration for the closing of sockets from
2889           WFMO_Reactor.  This is essentially for compatibility with UNIX
2890           programs.  UNIX does not have a CLOSE_MASK and the notification
2891           of the closing of a socket is implicit in the socket becoming
2892           read ready.  Therefore when you register for
2893           ACE_Event_Handler::READ_MASK with WFMO_Reactor, you will
2894           register for FD_READ and FD_CLOSE.  When FD_CLOSE is triggered,
2895           handle_input() will be called on the Event_Handler.  As on UNIX,
2896           read() will return 0 and the programmer will be able to tell
2897           that the socket has actually closed down.
2899           Arguably, this is lame for Win32 programmers as they have the
2900           explicit close notification, but portability and existing code
2901           base wins in this case.
2903           One other change. When an event_handler returns -1 from the
2904           callback, unbind() is called with ALL_EVENTS_MASK rather than
2905           the NULL_MASK.
2907           The upcall routine still needs to threat the two masks
2908           separately. (FD_CLOSE | FD_READ) will not work as both maybe
2909           simultaneously enabled. Therefore handle_input() maybe be called
2910           twice (once for FD_READ and once for FD_CLOSE) unless the user
2911           returns -1 from the first callback.
2913         * ace/Event_Handler: Removed the CLOSE_MASK.
2915         * examples/Logger/simple-server/Logging_Handler.cpp: Minor fixes.
2917         * examples/Logger/Acceptor-server/server_loggerd.cpp: Minor
2918           changes. No need to register the acceptor with the
2919           Reactor. Acceptor::open() does that.
2921         * examples/Reactor/ReactorEx/test_network_events: Removed the use
2922           of CLOSE_MASK.
2924         * tests/Reactor_Performance_Test: Removed the use of CLOSE_MASK.
2926 Tue Oct 21 21:48:54 1997  David L. Levine  <levine@cs.wustl.edu>
2928         * ace/OS.[hi]: moved ACE_PTHREAD_CLEANUP_PUSH/POP definitions from
2929           OS.i to OS.h.  Also, added #ifdef ACE_HAS_PTHREADS protection
2930           before ! defined ACE_LACKS_PTHREAD_CLEANUP so that only PThreads
2931           platforms need add ACE_LACS_PTHREAD_CLEANUP.
2933         * tests/Notify_Performance_Test.cpp: added #include of
2934           ace/Thread_Manager.h.  It's needed on OSF-1.
2936 Tue Oct 21 21:09:35 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
2938         * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Oops.  Souldn't
2939           access options when it is 0.
2941 Tue Oct 21 12:58:30 1997  Nanbor Wang   <nw1@CHA-CHA>
2943         * ace/Log_Msg.{h,cpp}: (thr_desc):  Modified the method so it take
2944           an extra argument of type ACE_Thread_Manager* and uses it to
2945           block execution until thread manager release its lock.
2947         * ace/Thread_Manager.{h,cpp} (acquire_release):  Added this new
2948           method whose only function is to grab the thread manager's
2949           lock.  This function ensure that a newly spawned thread won't
2950           try to access its thread descriptor before it is fully built.
2952         * ace/OS.cpp (inherit_log_msg): Modified to cache the thread
2953           descriptor of spawned thread in TSS Log_Msg after it has been
2954           created and block the execution of new thread until thread
2955           manager releases the lock (i.e., fills in all the information.)
2957         * ace/OS.h (ACE_Thread_Adapter):  Added one more argument of type
2958           ACE_Thread_Descriptor* to the constructor with default value 0.
2960         * ace/OS.cpp (invoke):  If the thread descriptor ptr is not zero
2961           in thread arguemnt, then, we'll wait till the thread manger
2962           fills in the formation and cache the value in TSS Log_Meg.
2964         * ace/Thread_Manager (spawn_i):  Changed to pass in the thread
2965           descriptor of the newly spawned thread to thread adapter so it
2966           can cache it in TSS Log_Msg.  This must be created before
2967           spawning the thread.  If all goes well, we'll need to append the
2968           thread descriptor into the double-linked list in the thread
2969           manager.
2970           (append_thr):  Added a new argument of type Thread_Descriptor*
2971           with default value 0.  If we pass in a thread descriptor,
2972           append_thr won't try to create on itself.
2974 Tue Oct 21 21:34:35 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2976         * ACE version 4.3.24, released Tue Oct 21 21:34:35 1997.
2978 Tue Oct 21 14:14:33 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
2980         * examples/Timer_Queue/Thread_Timer_Queue_Test.h:
2981         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
2982           Use the typedef for Upcall to define the base Timer_Queue.
2983           Input_Task inherits from ACE_Task_Base, no need for ACE_Task<>
2984           here.
2986 Tue Oct 21 13:45:53 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
2988         * ace/config-irix6.x-sgic++-nothreads.h: Added ACE_HAS_TERM_IOCTLS
2989           for SGI.  Thanks to Jeffrey Peterson
2990           <jpeterson@fallschurch.esys.com> for reporting htis.
2992         * TAO/tests/Thruput_test/server.cpp (main): Changed BOA_init()
2993           to POA_init().
2995 Tue Oct 21 12:58:30 1997    <nw1@CHA-CHA>
2997         * ace/OS.h (ACE_SINGLETON_DECLARATION):
2998           (ACE_SINGLETON_INSTANTIATION):
2999           (ACE_SVC_SINGLETON_DECLARATION):
3000           (ACE_SVC_SINGLETON_INSTANTIATION): Added these new macros.  Each
3001           of them takes one argument which is the ACE_Singleton class.
3002           All these craps are needed because MSVCs very kindly instantiate
3003           the template codes for you.  This ends up producing two
3004           ACE_Singleton objects, one in DLL and one in user program.  What
3005           these macros do is to supress the template code instantiation in
3006           user program and force compilers to instantiate these codes in
3007           DLL.  On other platforms, these macros simply expand to empty
3008           strings.   Here is a simple use case.  Say we have a class
3009           called <foobar> which we want to make it a singleton using
3010           ACE_Singleton template in our own DLL.  In file <foobar.h>, add
3011           a line like this,
3013              ACE_SVC_SINGLETON_DECLARATION (ACE_Singleton<foobar>);
3015           and it will be expanded to suitabe code to export the class or
3016           supress another template instantiation outside DLL depending on
3017           whether ACE_BUILD_SVC_DLL is defined or not.  In file
3018           <foobar.cpp>, add a line,
3020              ACE_SVC_SINGLETON_INSTANTIATION (ACE_Singleton<foobar>);
3022           at the end of the file to instantiate the template object in
3023           DLL.  Notice that there is a bug in MSVC 4.2 and you'll have to
3024           write up a DEF file to export the template interface
3025           explicitly.
3027           These macros should be integrated with the case when
3028           ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION but because of the VC
3029           4.2's bug, it will cause too much trouble to export all these
3030           symbols for external access.  Therefore, I'll leave them as they
3031           are now.
3033           BTW, these is no templatized singleton object within ACE that
3034           needs to be exported at this moment.
3036 Tue Oct 21 07:14:24 1997  David L. Levine  <levine@cs.wustl.edu>
3038         * ace/Svc_Conf_l.cpp: fixed compile warnings on g++.
3040         * ace/Timer_{Heap,List,Wheel}_T.cpp: replaced NULL with 0 because
3041           some compilers, such as GHS, define NULL as (void *) 0.  So, it
3042           sometimes needs to be cast to be used.  Thanks to Brian Mendel
3043           for reporting this.
3045         * ace/Thread_Manager.cpp (wait): removed thr_yield () hack because
3046           it's not needed with Nanbor's Thread_Manager fix.
3048         * tests/test_config.h (ACE_END_TEST): removed sleep hack with
3049           threading because it's not needed with Nanbor's Thread_Manager fix.
3051         * include/makeinclude/platform_vxworks*.GNU: added VXWORKS=1 macro,
3052           for use by individual Makefiles to suppress VxWorks builds.
3054         * examples/System_V_IPC: suppress VxWorks builds because the builds
3055           fail, and the examples wouldn't run anyways.
3057         * netsvcs/lib/TS_Server_Handler.cpp: only instantiate
3058           ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> if ! ACE_HAS_TLI
3059           because without TLI, the instantiation is in
3060           Client_Logging_Handler.cpp.
3062         * examples/Shared_Malloc/test_persistence.cpp: added #include of
3063           iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
3065         * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: removed
3066           instantiation of ACE_TSS<ACE_Dynamic> because it is in
3067           ace/Thread_Manager.cpp.
3069 Tue Oct 21 02:23:26 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3071         * ACE version 4.3.23, released Tue Oct 21 02:23:26 1997.
3073 Tue Oct 21 02:18:56 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3075         * examples/Makefile: Things are happier now, so we've added back
3076           the Timer_Queue directory to the Makefile.
3078         * examples/Timer_Queue: Added lots of annoying template
3079           specializations so that the timer queue tests now work with GCC.
3081         * ace/Svc_Conf.l: Changed the regular expression for a
3082           {string} so that it maches the null string (i.e., "").
3084 Tue Oct 21 01:07:58 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3086         * examples/Timer_Queue:
3087           Added documentation and fixed some warnings from the unused
3088           arguments in some member functions.  Cleaned up some .h files of
3089           unnecessary template instantiations.
3091 Tue Oct 21 01:01:12 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3093         * ace/Thread_Manager.h: Added more comments.
3095         * ace/Thread_Manager.{h,cpp}:  Added a parameter <size> to
3096           Thread_Manager's constructor with default value 0.  This
3097           parameter is currently unused and put in for backward
3098           compatibility.
3099           (open):  Putting back this method for backward compatibility.
3100           This is currently a no-op.  Thanks to David for reporting this.
3101           Also modify some mis-inform comments.
3103 Mon Oct 20 22:34:46 1997    <irfan@TWOSTEP>
3105         * ace/OS.i (open): Moved Win32 specific errno mappings from open()
3106           to ACE_FAIL_RETURN. Also updated the wide-character version of
3107           open().
3109 Mon Oct 20 14:07:37 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3111         * ace/config-hpux-10.x.h: Added #define ACE_DEFAULT_BASE_ADDR
3112           ((char *) 0x80000000) so that the various mmap() tests
3113           will work on HP/UX.  Thanks to Stephen Coy <stevec@magna.com.au>
3114           for reporting this.
3116         * ace/OS.i: Fixed the implementation of ACE_OS::cond_timedwait()
3117           so that it will work on VxWorks.  Thanks to David Levine for
3118           chasing this down and doing most of the changes.
3120         * ace/OS.h: Added a new special case for _KCC so that its
3121           ACE_UNUSED_ARG will work properly.  Thanks to Torbjorn Lindgren
3122           <tl@funcom.no> for reporting this.
3124 Mon Oct 20 22:23:42 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3126         * tests/Sigset_Ops_Test.cpp (main): It is not legal too for
3127           sigismember to return 0 if we pass an invalid signal to it.
3128           Thanks to Stephen Coy <stevec@magna.com.au> for fixing this.
3130         * Thread_Manager.*:  Replace the thr_table_ with a double-linked
3131           list thr_list_.  With this change, we can cache the thread
3132           descriptor entries in TSS area.  Then, when accessing thread
3133           descriptor from a spawned thread's context, we don't have to
3134           search thru the whole list in order to find the corresponding
3135           thread descriptor.  Double-linked list and caching also make
3136           adding/removing thread descriptor entries very fast.  At this
3137           moment, we need to do a linear search when we try to access the
3138           cached pointer the first time.  This overhead is expected to
3139           removed shortly.  The will be some memory leaks at this moment
3140           because I haven't implemented the code to clean up the list when
3141           a thread manager gets deleted.  Will fix it soon.
3143         * Log_Msg.{h,cpp}: Removed thr_state methods, variable, and thr_id
3144           methods and variable and replace them with thr_desc which cache
3145           the pointer to the thread descriptor structure.
3147         * Containers.*: Added two new template classes
3148           ACE_Double_Linked_List and ACE_Double_Linked_List_Iterator.
3149           These two classes implement the very fundamental data structure
3150           of double-linked list.  Although this is not actually a
3151           container class, I couldn't find a better place to put these
3152           classes.
3154         * ace/Filecache.*
3155         * ace/FIFO.*
3156         * ace/FIFO_Send.*
3157         * ace/FIFO_Recv.*
3158         * ace/FIFO_Send_Msg.*
3159         * ace/FIFO_Recv_Msg.*
3160         * ace/Memory_Pool.* (ACE_MMAP_Memory_Pool_Options,
3161           ACE_MMAP_Memory_Pool): Added one member variable to these class
3162           so users can specify the LPSECURITY_ATTRIBUTES object they want
3163           to use with them.
3164           (map_file, init_inquire): Pass the security attribute to
3165           underlying memory map object.
3167         * ace/Mem_Map.* (ACE_Mem_Map, map, open, map_it): Added a new
3168           function parameter LPSECURITY_ATTRIBUTES.  It will be passed
3169           down to ACE_OS::mmap or ACE_OS::open.  This is only used on
3170           Win32.
3172 Mon Oct 20 08:48:28 1997  Steve Huston  <shuston@riverace.com>
3174         * ace/OS.h, config-hpux-10.x.h:  Added a new definition,
3175           ACE_HAS_TIUSER_H_BROKEN_EXTERN_C - HP-UX's tiuser.h has
3176           def for t_errno/_terrno() outside of an extern "C" block,
3177           so in this case, wrap #include <tiuser.h> in our own
3178           extern "C" block.  HP support call W3711856.
3180 Mon Oct 20 07:49:54 1997  David L. Levine  <levine@cs.wustl.edu>
3182         * Makefile (TIMESTAMP): moved chmod after cvs commit.
3184         * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: don't
3185           create Templates.DB/Modules.DB, because that should have been
3186           Module.DB, and it's not needed anyways.
3188         * ace/config-vxworks-ghs-1.8.h: removed ACE_HAS_VERBOSE_NOTSUP.
3190         * tests/run_tests.vxworks: re-enabled Buffer_Stream_Test now that
3191           ACE_OS::cond_timedwait () is supported on VxWorks.
3193         * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (main): removed call
3194           to ACE_Thread_Manager::open () because it no longer is available.
3196 Mon Oct 20 02:04:19 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3198         * ACE version 4.3.22, released Mon Oct 20 02:04:19 1997.
3200 Mon Oct 20 02:01:43 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3202         * examples/Makefile: Removed the Timer_Queue directory from the
3203           Makefile until Sergio has fixed all the examples for GCC.
3205 Sun Oct 19 21:15:10 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3207         * examples/Timer_Queue: Added a new testing framework for
3208           various types of ACE_Time_Queue usecases, e.g., threaded,
3209           reactive, and asynchronous.
3210           The new classes are:
3211           <Timer_Queue_Test_Driver> which factors out the common code for
3212             different type of Timer queue implementations, for example the parsing,
3213             the input reading, and leaves the implementation of display_menu() for
3214             example, to subclasses.
3215           <Async_Timer_Queue_Test_Driver> the asynchronous version of the timer
3216             queue, uses signals.
3217           <Reactor_Timer_Queue_Test_Driver> implements the reactive timer queue
3218             test driver using <ACE_Reactor>
3219           <Thread_Timer_Queue_Test_Driver> the threaded implementation of the
3220             timer queue.
3221           <Command> this class is used to specify operations on the timer queue
3222             independently of their implementation.  Thsi allows different
3223             implementations of the timer queue to have different ways of
3224             doing the operations without the base class having to know that.
3225             See the Command pattern.
3226           Added some helper functions into the <Input_Task> class.
3229 Sun Oct 19 18:07:31 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3231         * ace: Added new config files for SCO OpenServer with a new initial scheme
3232           to make config files:
3234           - The config to SCO OpenServer has been changed to separate OS
3235             specific flags, threads and compiler flags.
3237           - For SCO OpenServer the base config file is config-sco-5.0.0.h
3239           - Pthreads base files are config-fsu-pthread.h and
3240             config-mit-pthread for FSU and MIT pthreads.
3242           - The compiler file has been named config-gcc-2.7.2.h, this is
3243             base config file for GNU gcc 2.7.2
3245           To build a config file for SCO using GNU gcc 2.7.2 would be:
3247           #include "ace/config-gcc-2.7.2.h"
3248           #include "ace/config-sco-5.0.0.h"
3250           We would obtain ACE config file for SCO OpenServer with GNU gcc
3251           2.7.2 with no threads.  To build a config file for SCO using GNU
3252           gcc 2.7.2 with FSU pthread would be:
3254           #include "ace/config-gcc-2.7.2.h"
3255           #include "ace/config-sco-5.0.0.h"
3256           #include "ace/config-fsu-pthread.h"
3258           Thanks to Arturo Montes <mitosys@colomsat.net.co> for these
3259           changes.
3261         * ace/OS.i (open): Modified ACE_OS::open() so that it sets errno
3262           to EACCES when the requested file is in use.  Thanks to Edan
3263           Ayal <edana@vdo.net> for reporting this.
3265 Sun Oct 19 17:55:34 1997  David L. Levine  <levine@cs.wustl.edu>
3267         * etc/purify.solaris2: the contents of my ~/.purify file
3268           for Solaris 2.x.  The ACE tests purify cleanly with it.
3270 Sun Oct 19 13:49:17 1997  Carlos O'Ryan  <coryan@MILONGA>
3272         * ace/Proactor.cpp:
3273           The mutex vs lock name change strikes back, this time under NT.
3275         * tests/Conn_Test.h:
3276         * tests/Conn_Test.cpp:
3277           The Svc_Handler was cached, but it had the default
3278           handle_close() method, which destroys the object.  The new
3279           version leaks a bit of memory, but it seems that it never
3280           crashes.
3282 Sat Oct 18 09:13:29 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
3284         * ace/Synch_T.cpp (lock): Moved the frigging lock method of
3285           Atomic_Op into the *.cpp file to work around bugs with earlier
3286           versions of the horribleHP/UX C++ compiler.  Thanks to Neil
3287           Cohen for reporting this.
3289 Sat Oct 18 07:43:29 1997  David L. Levine  <levine@cs.wustl.edu>
3291         * Makefile (release): oops, removed "echo" that was used to
3292           disable CVS commit, for testing.
3294         * ace/Thread_Manager.{h,cpp},Object_Manager.{h,cpp}: moved
3295           ace_thread_exit_lock_ to Object_Manager.
3297         * include/makeinclude/rules.local.GNU: added $(TEMPLATE_REPOSITORY)
3298           to OBJDIRS, so that individual platforms can add template
3299           repository directories for creation.
3301         * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: added
3302           TEMPLATE_REPOSITORY with Templates.DB and Templates.DB/Modules.DB.
3303           We can build without any warnings with Sun C++ now.
3305 Sat Oct 18 00:17:26 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3307         * ACE version 4.3.21, released Sat Oct 18 00:17:26 1997.
3309 Fri Oct 17 22:51:46 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
3311         * ace/Timer_Queue_Adapters.h:
3312         * ace/Timer_Queue_Adapters.i:
3313         * ace/Timer_Queue_Adapters.cpp:
3314         * ace/Timer_Queue_T.h:
3315         * ace/Timer_Queue_T.i:
3316         * ace/Timer_Queue_T.cpp:
3317         * ace/Timer_List_T.cpp:
3318         * ace/Timer_Wheel_T.cpp:
3319         * ace/Timer_Hash_T.cpp:
3320           Changed the accessor name for the lock_ field from mutex() to
3321           lock(), we know this can cause trouble on HP-UX, but only if the
3322           function is inline; so it was moved to the .cpp file.
3324         * ace/Timer_Queue_Adapters.h:
3325         * ace/Timer_Queue_Adapters.i:
3326           Changed the method name from lock() to mutex(), this should
3327           workaround a bug in the HP/C++ compiler.
3329         * ace/Timer_Hash.cpp:
3330         * ace/Timer_Hash_T.h:
3331         * ace/Timer_Heap.cpp:
3332         * ace/Timer_Heap_T.h:
3333         * ace/Timer_List.cpp:
3334         * ace/Timer_List_T.h:
3335         * ace/Timer_Queue.cpp:
3336         * ace/Timer_Queue_T.h:
3337         * ace/Timer_Wheel.cpp:
3338         * ace/Timer_Wheel_T.h:
3339           Workaround HP/C++ compiler bug, we cannot include the .cpp file
3340           from the header file, but it must be included in the point of
3341           instantiation.
3343 Fri Oct 17 18:34:00 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3345         * ace/Atomic_Op.i (lock): Added an accessor to ACE_Atomic_Op to
3346           return a reference to the underlying lock.  Thanks to Janusz
3347           Stopa <jstopa@Bear.COM> for suggesting this.
3349 Fri Oct 17 15:36:26 1997    <nw1@CHA-CHA>
3351         * ACE/config-win32-common.h: Added a directive to disable warning
3352           of using Microsoft template instantiation control extension.
3354 Fri Oct 17 06:31:20 1997  David L. Levine  <levine@cs.wustl.edu>
3356         * ace/Atomic_Op.i (operator=): rsh.value () instead of just rhs.
3358         * Makefile (release): added ACE_VERSION string to ace/Version.h.
3359           The MS Resource-Compiler doesn't implement the preprocessor
3360           # operator, so ACE_VERSION supplies the concatenated version
3361           string.  Thanks to Matthias for suggesting this.
3363         * ace/Svc_Handler.{h,cpp},Object_Manager.{h,cpp}: moved
3364           ace_svc_handler_lock_ to Object_Manager.  This lock was
3365           created once per Svc_Handler instantiation.  It has been
3366           replaced by a single lock for all instantiations.  That
3367           shouldn't be a problem because there are so few Svc_Handler
3368           instantiations, and the lock is only used for singleton
3369           creation using double-checked locking.
3371 Fri Oct 17 01:19:35 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3373         * ACE version 4.3.20, released Fri Oct 17 01:19:35 1997.
3375 Fri Oct 17 00:05:55 1997    <irfan@TWOSTEP>
3377         * ace/OS: Added ACE_Export to declarations to:
3378           ace_mutex_lock_cleanup_adapter, ftruncate, ace_thread_adapter
3380         * ace/OS.cpp (readv, writev): Moved ACE_Export directive from
3381           OS.cpp to OS.i.
3383         * ace/Atomic_Op (operator TYPE): operator TYPE() of Atomic_Op has
3384           been deprecated and removed. Because both user-defined
3385           conversions and user-defined operators were defined on
3386           Atomic_Op, it was possible to get ambiguities between the
3387           user-defined operators and the built-in operators. Therefore,
3388           operator TYPE() has been removed and explicit accessor value()
3389           has been added. Thanks to Stephen Coy <stevec@magna.com.au> for
3390           suggesting this.
3392         * ace/Atomic_Op (operator!=): Add new operator.
3394         * tests/Atomic_Op_Test.cpp: Previously we had foo.operator== (5).
3395           It was necessary to resolve the ambiguities between the
3396           user-defined operators and the built-in operators. Since we have
3397           removed the automagic type conversion, we can go back to writing
3398           foo == 5.
3400         * ACE: Atomic Op related minor changes:
3402           ace/Malloc.cpp (dump):
3403           tests/Future_Test.cpp (main):
3404           tests/Reactors_Test.cpp (handle_input):
3405           example/Threads/{future1.cpp future2.cpp manual_event.cpp task_two.cpp tss2.cpp}:
3406           examples/Reactor/Misc/test_reactors.cpp:
3408         * tests/Notify_Performance_Test.cpp:
3409         * tests/Reactor_Performance_Test.cpp:
3411           Moved explicit template instantiation code to ACE_HAS_THREADS
3412           part for the test. Thanks to Stephen Coy <stevec@magna.com.au>
3413           for pointing this out.
3415 Thu Oct 16 20:44:40 1997  James C Hu  <jxh@cs.wustl.edu>
3417         * ace/Message_Block.cpp: Changed how continuations are released in
3418           the Message_Block::release_i() method to use an iteration rather
3419           than recursion.  This is to avoid a stack overflow problem
3420           encountered by Janusz Stopa.
3422         * ace/OS.cpp: Added ACE_Export to the declarations of ::writev and
3423           ::readv.  These are emulation implementations for systems that
3424           don't support them natively.  Was not being resolved correctly
3425           on NT.  Hopefully this will fix it.  Fix suggested by Rob Head
3426           (rhead@virtc.com).
3428 Thu Oct 16 14:21:34 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3430         * ace/Proactor.cpp: Replaced #include "ace/Servie_Config.h" with
3431           #include "ace/Object_Manager.h" for declaration of
3432           ACE_Static_Object_Lock.
3434 Thu Oct 16 10:22:48 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
3436         * ace/Timer_Heap_T.h:
3437           Fixed comment on the Heap_Iterator, it said "Iterates over an
3438           <ACE_Timer_*Hash*_T>").
3440 Thu Oct 16 08:43:50 1997  David L. Levine  <levine@cs.wustl.edu>
3442         * ace/OS.i (sema_trywait): on VxWorks only, fixed to set errno to
3443           EBUSY if the semaphore couldn't be taken.  Thanks to Doug for
3444           suggesting this fix.
3446         * performance-tests/Misc/preempt.cpp (main): fixed program name.
3448         * include/makeinclude/platform_osf1_4.0.GNU: OCFLAGS instead of OFLAGS.
3450         * tests/test_config.h (VxWorks): restored the removal of the log
3451           file, because it again appears to be necessary.
3453         * tests/run_tests.vxworks: updated VxWorks tests status.
3455         * ace/OS.cpp,Token_Invariants.{h,cpp},Object_Manager.{h,cpp}:
3456           moved ace_os_monitor_lock and ACE_Token_Invariants_Creation_Lock
3457           to Object_Manager.
3459 Thu Oct 16 02:26:12 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3461         * ACE version 4.3.19, released Thu Oct 16 02:26:12 1997.
3463 Thu Oct 16 02:07:54 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3465         * tests/Priority_Reactor_Test.cpp: Added a "max_retries" flag to
3466           keep the test from hanging forever...  Thanks to Stephen Coy
3467           <stevec@magna.com.au> for motivating this.
3469         * tests/Priority_Reactor_Test.h: Changed
3471           class Read_Handler : public ACE_Svc_Handler<<ACE_SOCK_Stream, ACE_INET_Addr, ACE_SYNCH>
3473           to
3475           class Read_Handler : public ACE_Svc_Handler<<ACE_SOCK_STREAM, ACE_SYNCH>
3477           and the same for the Write_Handler.  Thanks to the ever vigilant
3478           Stephen Coy <stevec@magna.com.au> for reporting this.
3480 Thu Oct 16 01:18:48 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3482         * ace/OS.cpp (socket_init): Changed to use ACE_UNUSED_ARG.
3484         * ace/SV_Semaphore_Simple.cpp (name_2_key): Explicitly cast the
3485           return value to (key_t).  It was causing problem on Win32.
3487 Wed Oct 15 22:47:30 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
3489         * ace/ACE.h:
3490         * ace/ACE.cpp:
3491           Added an implementation of the ISO 8802-3 standard 32 bits CRC,
3492           but for strings only. The implementation was taken from the
3493           FreeBSD code.
3495         * ace/SV_Semaphore_Simple.cpp: Improved the hashing algorithm to
3496           assign a "unique" key for semaphore keys using an string.  This
3497           solves a problem detected by Mark L. Boriack
3498           (Mark.L.Boriack@cpmx.saic.com): under OSF/1 the were too many
3499           collitions with the default arguments for ACE_Process_Mutex.
3500           Note that this is only a problem if no name is given to it.
3502         * ace/Log_Msg.cpp: ACE_Log_Msg_message_queue_ was not initialized
3503           in platforms without threads.
3505         * ace/Containers.h: Added a duplicate ACE_Ubounded_Stack_Iterator
3506           to the NANBOR_EXP_CHANGES block.
3508         * ace/OS.h (ACE_DES_FREE_TEMPLATE): Removed unneeded concatenation
3509           that was getting the HP/aCC compiler a bit confused. Thanks to
3510           Stephen Coy <stevec@magna.com.au> for pointing out the problem
3511           and then reminding me of actually adding the solution to ACE.
3513 Wed Oct 15 11:07:47 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3515         * ace/OS.i: Fixed the flock_trywrlock() and flock_tryrdlock() so
3516           that they both set errno = EBUSY if they lock is already held.
3518         * ace/OS.i (mutex_trylock): Make the VxWorks version consistent
3519           with the other versions by returning -1 and setting errno to
3520           EBUSY.  Thanks to David Levine for reporting this.
3522         * ace/Synch.h: Updated the documentation to clarify what the
3523           return value is from the tryacquire() methods.
3525         * ace/OS.i (mutex_trylock): On NT, if we try to acquire a mutex
3526           that's already locked we'll return -1 and set errno to EBUSY
3527           rather than ETIME to be consistent with Pthreads.  Please see
3528           the following entry to understand why this doesn't break
3529           existing code ;-).
3531         * ace/OS.h: Added a #define for EBUSY on NT.  We'll make it the
3532           same as ETIME to avoid breaking existing code!
3534         * tests/Process_Strategy_Test.cpp (main): Ignore SIGCHLD in the
3535           child.
3537 Wed Oct 15 14:59:41 1997    <nw1@CHA-CHA>
3539         * tests/run_tests.bat: Added Reactor_Performance_Test and
3540           Notify_Performance_Test to one button test script.
3542         * tests/tests.dsw: Added Reactor_Performance_Test.dsp and
3543           Notify_Performance_Test.dsp.
3545 Wed Oct 15 07:21:05 1997  David L. Levine  <levine@cs.wustl.edu>
3547         * ace/ACE.{h,i},Version.h: added ACE version macros, and static
3548           functions to access them in class ACE.
3550         * Makefile (release): updates ace/Version.h based on contents of
3551           VERSION.
3553         * tests/Time_Value_Test.cpp:  added test of ACE version accessors.
3555         * ace/OS.cpp,Object_Manager.cpp: changed ACE_TSS_CLEANUP_LOCK
3556           from an ACE_Thread_Mutex to an ACE_Recursive_Thread_Mutex.
3558         * ace/OS.h: define ACE_NOTREACHED as empty on DEC_CXX (and
3559           on ghs instead of VXWORKS).
3561         * tests/TSS_Test.cpp (worker): convert void *c to long if
3562           ACE_HAS_64BIT_LONGS to avoid DEC cxx compiler warning.
3564         * examples/Threads/thread_specific.cpp (worker): convert void *c
3565           to long if ACE_HAS_64BIT_LONGS.  Changed name of "lock" to
3566           "printf_lock" to avoid collision with lock () in DEC cxx
3567           iostream.hxx.
3569         * examples/threads/tss1.cpp: removed unused static "lock".
3571         * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (read_file): convert
3572           void *fd to long if ACE_HAS_64BIT_LONGS.  And, put "n" in
3573           ACE_UNUSED_ARG. (main): put "return 0" in ACE_NOTREACHED.
3575         * include/makeinclude/platform_osf1_4.0.GNU: minor cleanup, incl.
3576           addition of -use_ld_input to SOFLAGS.
3578         * include/makeinclude/platform_osf1_4.0_g++.GNU: added "c" to
3579           ARFLAGS.
3581         * tests/Future_Test.cpp,examples/Threads/future[12].cpp
3582           (Method_Object_Name): removed extraneous ";" after function
3583           definition.
3585         * netsvcs/lib/Base_Optimizer.h: adding missing, default "public"
3586           access specifier.
3588         * apps/JAWS/Server/HTTP_Config.h: added "class" to friend HTTP_Config
3589           declaration in HTTP_Config_Info.
3591         * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: removed unused variable
3592           "MAXLINE".
3594         * examples/IPC_SAP/TLI_SAP/db-server.cpp (main): wrapped "return 0"
3595           with ACE_NOTREACHED.
3597         * examples/Reactor/Misc/test_timer_queue.cpp (handle_timeout):
3598           convert void *arg to long if ACE_HAS_64BIT_LONGS.
3600         * examples/Service_Configurator/IPC-tests/client/
3601           local_fifo_client_test.cpp: removed unused variable BUF_LEN.
3603         * examples/Shared_Malloc/test_persistence.cpp:
3604           removed unused Employee ostream << operator.
3606         * tests/Conn_Test.cpp: neutered Conn_Test on DEC_CXX.  It
3607           doesn't build on DEC cxx 5.5 due to apparent template
3608           instantiation problems.  Thanks to James Johnson for
3609           reporting that.  And it doesn't terminate when built with
3610           DEC cxx (beta) 6.0.
3612         * ace/Thread_Manager.h: removed parens from (???) because
3613           g++ got upset about encountering a trigraph.
3615         * tests/{Notify,Reactor}_Performance_Test.cpp: added
3616           ACE_UNUSED_ARG (handle).
3618         * tests/Makefile,run_tests.sh: added Reactor_Performance_Test and
3619           Notify_Performance_Test.
3621         * tests/run_tests.vxworks: added test status of
3622           Reactor_Performance_Test (doesn't appear to do anything,
3623           but doesn't return) and Notify_Performance_Test (fcntl
3624           not supported).
3626 Wed Oct 15 01:48:36 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3628         * ace/Containers.{h,i,cpp}:
3629         * ace/Thread_Manager.{h,i,cpp}:  Start modifying these files.
3630           Will work on them for a day or two.  You guys shouldn't worry
3631           about these changes affecting anything because I surround my
3632           changes with #ifdef (NANBOR_EXP_CHANGES) my changes  #else
3633           original codes #endif.  More details change log will be added
3634           once I get them all working.
3636 Tue Oct 14 23:54:21 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3638         * ACE version 4.3.18, released Tue Oct 14 23:54:21 1997.
3640 Tue Oct 14 20:27:28 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
3642         * tests/Priority_Reactor_Test.cpp:
3643           Added a debug message to find out who terminates the reactor
3644           thread.
3646         * tests/Priority_Reactor_Test.cpp:
3647           The children could not connect sometimes, this will cause the
3648           test to hang, waiting for those failed connections.
3649           I added a simple exponential backoff strategy to retry
3650           connections until they succeed.
3652 Tue Oct 14 17:48:28 1997  Steve Huston  <shuston@riverace.com>
3654         * ace/config-hpux-10.x-hpc++.h: Set ACE_LACKS_SIGNED_CHAR for
3655           both C++ and aC++, not just C++.  Thanks to Stephen Coy and
3656           David Levine for finding this.
3658 Tue Oct 14 03:26:17 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3660         * ace/OS.h: Moved <sys/types.h> to earlier in the file so that
3661           u_int will be defined.  Thanks to Neil B. Cohen <nbc@metsci.com>
3662           for reporting this.
3664         * ace/OS.cpp (uname): Added a workaround for the fact that
3665           Chorus doesn't support uname().  Thanks to Wei Chiang for
3666           this fix.
3668 Tue Oct 14 08:02:20 1997  David L. Levine  <levine@cs.wustl.edu>
3670         * ace/Managed_Object.{h,cpp} (ACE_Cleanup_Adapter): added virtual
3671           destructor, needed by some compilers for vtable placement.
3672           Thanks to Stephen Coy <stevec@magna.com.au> for this patch.
3674         * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
3675           assignments in "if" conditionals to avoid g++ warnings.
3677         * ace/Object_Manager.{h,cpp},Synch.{h,cpp}: moved
3678           ACE_Static_Object_Lock from Synch.{h,cpp} to Object_Manager.{h,cpp}.
3679           This allows it to be absorbed into the ACE_Object_Manager's
3680           preallocated locks.  The ACE_Static_Object_Lock interface
3681           isn't really needed any more, but has been kept for backward
3682           compatibility.
3684         * ace/Object_Manager.cpp: use a static ACE_Static_Object_Lock,
3685           temporarily, because the ACE static services needs it.
3687         * ace/Malloc.cpp,Reactor.cpp,Service_Repository.cpp: added
3688           #include "ace/Object_Manager.h" for ACE_Static_Object_Lock.
3690         * ace/Thread_Manager.h: moved ACE_Thread_Manager::THR_FUNC typedef
3691           outside the class declaration to avoid compilation problems on
3692           g++/VxWorks/i960 with -g.  THR_FUNC is only used by protected
3693           ACE_Thread_Manager methods so this doesn't widen the public
3694           interface.  Thanks to Aaron Valdivia <avaldivia@hns.com> for
3695           reporting this and verifying the fix.
3697         * tests/IOStream_Test.cpp (client): multiply floats by 1.0 instead
3698           of 1 to avoid bad code generation on g++/VxWorks/i960.  Thanks to
3699           Aaron Valdivia <avaldivia@hns.com> for reporting this.
3701         * tests/Buffer_Stream_Test.cpp: removed unused static thread_manager.
3702           It caused core dump during destruction of static objects with
3703           ACE_HAS_NONSTATIC_OBJECT_MANAGER.
3705         * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp (handle_timeout):
3706           removed declaration of unused arg "tv".
3708         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (main):
3709           removed declarations of unused args "argc" and "argv".  And,
3710           updated template instantiations.
3712         * ace/OS.h: use "complex" ACE_UNUSED_ARG for DEC_CXX.
3714         * ace/Reactor.i (implementation): moved definition to top of
3715           file to prevent use before definition.
3717         * ace/ARGV.cpp (ACE_ARGV): removed extraneous ; function definition.
3719         * ace/config-osf1-4.0.h: removed ACE_NEEDS_DEV_IO_CONVERSION.
3721         * tests/Time_Value_Test.cpp: ACE_HAS_64BIT_LONGS instead of
3722           ACE_HAS_64BIT_LONG.
3724 Tue Oct 14 03:13:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3726         * ACE version 4.3.17, released Tue Oct 14 03:13:38 1997.
3728 Tue Oct 14 03:10:00 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3730         * ace/Service_Types.cpp (fini): Backed out the following change
3731           until we figure out how to keep existing Svc_Handler code from
3732           dying...  Thanks to Nanbor for reporting this.
3734         * ace/Service_Types.cpp: Changed the implementation so that we
3735           bypass the default cleanup originally done in
3736           ACE_Service_Type_Impl::fini() and instead perform the cleanup in
3737           ACE_Service_Object_Type::fini (void).  Thanks to Alex Chan
3738           <Alex.Chan@Aspect.com> for reporting this.
3740         * ace/Svc_Conf.y: Make sure that the Module has the same name as
3741           the Module_Type object from the svc.conf file.  We need to do
3742           this because the Stream_Type::fini() method removes each module
3743           by the name given in the configuration file (stored in the
3744           Module_Type object).  But the Stream::remove() method compares
3745           this name against the name stored in the Module.  So the object
3746           is deleted, but never removed from the list.  Another traversal
3747           of the list causes a crash...  Thanks to Eric Newton for
3748           suggesting this fix.
3750         * ace/OS.cpp (invoke): Added call to AfxEndThread insides
3751           ACE_TSS_Cleanup::exit() such that the same cleanup would not be
3752           executed again when threads exit in ace_thread_adapter() in
3753           OS.cpp.  Thanks to Alex Chan <Alex.Chan@Aspect.com> for
3754           reporting this.
3756         * ace/Service_Config.cpp (process_directives): Avoid reporting
3757           lex/yacc leakage since there is nothing we could do about it.
3758           Thanks to Alex Chan <Alex.Chan@Aspect.com> for reporting this.
3760         * ace/Svc_Conf.y: Removed duplicate call to symbol() to avoid the
3761           problem that dynamic service objects are created twice.  Thanks
3762           to Alex Chan <Alex.Chan@Aspect.com> for reporting this.
3764         * examples/Reactor/FIFO/client.cpp (main): Fixed the call to
3765           fifo_sender.send () so that it passes msg rather than &msg.
3766           Thanks to Sandro Doro <doros@aureus> for reporting this.
3768 Tue Oct 14 02:49:02 1997    <irfan@TWOSTEP>
3770         * tests/Notify_Performance_Test.cpp: New performance test. This
3771           test is used to time the notification mechanisms of the
3772           ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
3773           tested. The notify() mechanism can also be tested with or
3774           without data.
3776         * tests/Reactor_Performance_Test.cpp: New performance test. This
3777           test is used to time the dispatching mechanisms of the
3778           ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
3779           tested.
3781         * ace/Svc_Handler.cpp (shutdown): Change READ_MASK | WRITE_MASK to
3782           ALL_EVENTS_MASK.
3784         * ace/Atomic_Op (value): Added an explicit value accessor.
3786 Mon Oct 13 23:07:15 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3788         * tests/Process_Strategy_Test.cpp (handle_signal): Removed the
3789           ACE_DEBUG calls in the child reader signal handler.  This was
3790           causing all sorts of random problems due to the asynchronous
3791           nature of signals.  Thanks to David Levine for pointing this
3792           out.
3794 Mon Oct 13 16:27:46 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
3796         * tests/Priority_Reactor_Test.h:
3797         * tests/Priority_Reactor_Test.cpp:
3798           Fixed wrong header file, thanks to Irfan (irfan@cs.wustl.edu)
3800         * examples/Shared_Malloc/test_persistence.cpp:
3801         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
3802           Added a couple of ACE_NOTREACHED, thanks to Torbjorn Lindgren
3803           <tl@funcom.no> for pointing out this one.
3805         * ace/Priority_Reactor.cpp:
3806           Added some more template specializations.
3808         * tests/Priority_Reactor_Test.cpp:
3809           Fixed a number of bugs: hostname not initialized when creating
3810           the server address.
3811           The Svc_Handler base class should be instantiated using the
3812           ACE_*_STREAM macros.
3813           The code for non-threaded platforms was broken.
3814           Thanks to Irfan <irfan@cs.wustl.edu>
3816         * tests/Priority_Task_Test.cpp:
3817           We use the new ACE_Sched_Priority_Iterator.
3819         * include/makeinclude/platform_irix6.x-32_sgic++.GNU:
3820         * include/makeinclude/platform_irix6.x-n32_sgic++.GNU:
3821           Removed this old config files, they have been superseeded by
3822           platform_irix6.x_sgic++.GNU.
3824 Mon Oct 13 15:41:32 1997  Steve Huston  <shuston@riverace.com>
3826         * ace/Select_Reactor.i, Priority_Reactor.i: Moved code for the
3827           ACE_Event_Tuple struct from Priority_Reactor.i to Select_Reactor.i.
3829         * ace/Priority_Reactor.cpp: added #include Malloc_T.h to build on AIX.
3831         * ace/Synch_T.h, Timer_Queue_Adapters.h - added a template argument
3832           to the non-ACE_HAS_TEMPLATE_TYPEDEFS, multi-threaded version of
3833           the ACE_SYNCH_CONDITION macro - of the 3 possibilities for its
3834           definition, this is the only case which requires a template
3835           argument.  Timer_Queue_Adapters.h is the only user of the definition,
3836           and it was changed to not supply the template argument.
3838         * tests/Conn_Test.h:
3839         * tests/Process_Strategy_Test.h: Added #include "ace/SOCK_Stream.h"
3841 Mon Oct 13 13:42:05 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3843         * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp (svc):
3844           Added a macro to define L_cuserid on Win32.
3846 Mon Oct 13 13:44:40 1997    <irfan@TWOSTEP>
3848         * ace/Priority_Reactor: Fixed a gross violation of ACE coding
3849           standard. Changed bucket to bucket_.
3851 Mon Oct 13 12:58:01 1997  David L. Levine  <levine@cs.wustl.edu>
3853         * ace/OS.i: moved ACE_OS::strcasecmp () definition after
3854           ACE_OS::strlen () to prevent use before definition.
3856         * ace/Priority_Reactor.i: reordered initializers to match
3857           declaration order.
3859         * ace/Sched_Params.i: reordered function definitions to prevent
3860           uses before definitions.
3862         * ace/Thread_Manager.cpp (ACE_Thread_Descriptor ctor): reordered
3863           initializers to match declaration order.  (spawn_i): added
3864           ACE_UNUSED_ARG (t_handle) without WTHREADS.
3866         * ace/Thread_Manager.cpp (wait): moved all of the "join" block
3867           inside the #ifndef VXWORKS so that it compiles on VxWorks.
3869         * ace/Strategies_T.cpp (ACE_NOOP_Creation_Strategy<SVC_HANDLER>::
3870           make_svc_handler): removed unused arg declaration to avoid
3871           compiler warning.
3873         * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
3874           assignments in "if" conditionals to avoid g++ warnings.
3876         * tests/Priority_Reactor_Test.cpp (handle_input): added
3877           ACE_UNUSED_ARG (h).
3879         * examples/Connection/non_blocking/CPP-connector.cpp (handle_signal):
3880           added ACE_UNUSED_ARG (signum).
3882 Mon Oct 13 03:25:45 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3884         * ACE version 4.3.16, released Mon Oct 13 03:25:45 1997.
3886 Mon Oct 13 03:18:33 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
3888         * ace/Thread_Manager.h: Removed the following code from
3889           ACE_Thread_Control:
3891           #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
3892           static ACE_Thread_Mutex ace_thread_lock_;
3893           // Lock the creation of the Singleton.
3894           #endif /* defined (ACE_MT_SAFE) */
3896           What on earth was this doing here?!  Thanks to Stephen Coy
3897           <stevec@magna.com.au> for reporting this.
3899 Mon Oct 13 00:10:00 1997    <irfan@TWOSTEP>
3901         * tests/Atomic_Op_Test.cpp (main): Changed "foo == 5L" to
3902           "foo.operator== (5L)" because the former was breaking some
3903           compilers (e.g., HP/UX aCC).
3905         * ace/Connector.h (open): Removed the defaults arguments since
3906           some compilers complain about the two open()s being
3907           indistinguishable.
3909 Sun Oct 12 23:51:57 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3911         * ace/{Synch_T,Atomic_Op}: All the relational operators should
3912           return int (really return bool) rather than TYPE.
3914 Sun Oct 12 18:41:01 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
3916         * tests/Priority_Reactor_Test.cpp:
3917           Added several missing template specializations.
3919         * ace/Priority_Reactor.cpp:
3920           Fixed typo (#pragme for #pragma).
3921           Added several missing template instantiation.
3923         * ace/Timer_Queue_Adapters.cpp:
3924           The includes were missing and there was a minor syntax error.
3926 Sun Oct 12 16:16:15 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3928         * ace/ace_{dll,lib}.dsp: Added Timer_Queue_Adapters.cpp into
3929           project files.
3931         * tests: Added a new test Priority_Reactor_Test.
3933         * ace/Timer_Queue_Adapters.{h,i}: Added or moved the line that
3934           instructs edit mode to use on emace to the first line.  Also
3935           added ACE_Export to classes in this file.
3937         * ace/Timer_Queue_Adapters.cpp: Added proper inclusion of the
3938           header file.  Corrected a syntax error.
3940         * examples/Timer_Queue/Timer_Queue.dsw:  Added a new project
3941           Thread_Timer_Queue_Test.dsp.
3943         * tests/run_tests.{bat,sh}: Added MT_SOCK_Test and
3944           Priority_Reactor_Test into one-buttoned test set.
3946 Sun Oct 12 16:53:32 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3948         * ace/examples/Service_Configurator/IPC-tests/server: Reformatted
3949           and recommented the code a bit.
3951         * ace/OS: Added 3 new ACE #defines:
3953           #define ACE_ONE_SECOND_IN_MSECS 1000L
3954           #define ACE_ONE_SECOND_IN_USECS 1000000L
3955           #define ACE_ONE_SECOND_IN_NSECS 1000000000L
3957           This is much easier to read than trying to keep track of the
3958           000s!  Then, replaced all uses of the original values with the
3959           new symbolic constants.
3961         * ace/Timer_List.cpp: Removed an explicit template instantiation
3962           of ACE_Async_Timer_Queue_Adapter<>.  Why was it here in the
3963           first place?
3965         * ace: Created a new group of Timer_Queue_Adapters files and moved
3966           the Async and Thread adapters into this file. This reduces the
3967           amount of coupling in the ACE library and removes problems with
3968           circular includes.
3970         * ace/Timer_Queue_T: Added a new ACE_Thread_Timer_Queue_Adapter,
3971           which makes it possible to use a timer queue in a thread
3972           automagically.  Thanks to Carlos O'Ryan for writing this.
3974         * examples/Timer_Queue: Began to integrate Carlo's new thread
3975           timer queue test.
3977         * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: Changed the
3978           timer queue from a Timer_List to a Timer_Heap.
3980         * examples/Makefile (DIRS): Added Timer_Queue to the list of DIRS
3981           to build.
3983 Sun Oct 12 16:45:47 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
3985         * ace/Sched_Params.h:
3986           Added some comments.
3988         * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
3989           Added some comments and template specializations.
3991         * examples/Naming/Makefile:
3992           There is no need to set LDLIBS to add local object files
3993           anymore, using FILES is enough.
3995 Sun Oct 12 03:35:37 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3997         * examples/Timer_Queue: Added a new directory for testing of
3998           various usages of timer queue.
4000         * tests/Async_Timer_Queue_Test: Moved to examples/Timer_Queue.
4001           It doesn't really belong to tests/ directory.
4003         * ace/ACE.cpp (register_stdin_handler): Must register the reactor
4004           we are using to the event handler.
4005           (read_adapter): Must notify the reactor when we are done with
4006           handling stdin event.
4008 Sun Oct 12 00:26:56 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4010         * ace/Makefile:
4011         * ace/Priority_Reactor.h:
4012         * ace/Priority_Reactor.i:
4013         * ace/Priority_Reactor.cpp:
4014           Augmentes Select_Reactor, adding priority based dispatching for
4015           the I/O Event_Handlers, the only feature supported is
4016           dispatching in the order defined by the priorities.
4017           Each Event_Handler defines its priority, if the priority is out
4018           of range the culprit is "punished" by dispatching at the lowest
4019           priority.
4020           Care has been exercised to avoid dynamic memory allocation.
4022         * tests/Makefile:
4023         * tests/Priority_Reactor_Test.h:
4024         * tests/Priority_Reactor_Test.cpp:
4025           Added small tests of the Priority_Reactor, the test runs an
4026           Acceptor on the main thread and creates several threads (or
4027           processes if the plaform does not support threads) that connect
4028           to this Acceptor. The writing threads send several short
4029           messages, the main thread receives them using one Svc_Handler
4030           per writer, dispatched at different priorities.
4031           The test itself is interesting, it shows how to write very
4032           simple Svc_Handler, Connectors and Acceptors.
4034         * ace/Select_Reactor.h:
4035         * ace/Select_Reactor.cpp:
4036           The dispatching of all the handles in a "group" (READ, WRITE or
4037           EXCEPT) was encapsulated in a single routine.
4039         * ace/Malloc_T.cpp:
4040           In the Cached_Allocator memory was allocated as an arrays of
4041           char, it must be released the same way.
4043         * ace/Sched_Params.h:
4044         * ace/Sched_Params.i:
4045           Added a new class (ACE_Sched_Priority_Iterator) to iterate over
4046           the priorities.
4048         * tests/Priority_Task_Test.cpp:
4049           Added some comments.
4051 Sat Oct 10 16:23:49 1997  Steve Huston  <shuston@riverace.com>
4053         * tests/SOCK_Connector_Test.cpp: Passes the test if the should-fail
4054           non-blocking test fails for any reason - not limited to ECONNREFUSED
4055           or ENOTCONN.
4057 Sat Oct 11 16:02:33 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4059         * ACE version 4.3.15, released Sat Oct 11 16:02:33 1997.
4061 Sat Oct 11 14:38:16 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4063         * ace/SOCK_Connector.cpp (complete): Fixed a typo with
4064           ACE_NON_BLOCKING_BUG_DELAY.  Thanks to John Zeb Dhom"
4065           <zeb@ibm.net> for reporting this.
4067         * tests/MT_SOCK_Test.cpp (client): Slightly revised the client
4068           function so that it doesn't try to use non-blocking connects if
4069           it's on a Win32 platform that has bugs with non-blocking
4070           connects.
4072         * ace/SOCK_Connector.cpp: It appears that connect() can set the
4073           ETIMEDOUT errno if the connection times out (whatever that
4074           means).  Therefore, I need to check for that errno, rather than
4075           ETIME after calling connect().
4077         * tests/SOCK_Connector_Test.cpp: Added a check for ETIMEDOUT
4078           since this appears to be set by some platforms (e.g.,
4079           SGI).
4081 Sat Oct 11 02:52:10 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4083         * ACE version 4.3.14, released Sat Oct 11 02:52:10 1997.
4085 Sat Oct 11 02:10:29 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4087         * examples/Logger/simple-server/Makefile:
4088         * examples/Mem_Map/IO-tests/Makefile:
4089         * examples/Reactor/Multicast/Makefile:
4090         * examples/Service_Configurator/Misc/Makefile:
4091           Fixed some more problems with the Makefiles for binaries; I took
4092           the chance and added RCS ids on the Makefiles
4094 Fri Oct 10 18:39:39 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4096         * tests/Service_Config_Test.cpp: Moved the static member function
4097           called cleanup() out into a stand-alone extern "C" function
4098           called test_singleton_cleanup() to workaround MVS C++ compiler
4099           bugs.  Thanks to Chuck Gehr for reporting this.
4101         * ace/Task.cpp: Solved the age old MVS C++ problem where we can't
4102           register C++ static member functions as C callback functions.
4103           The solution here was to create a C wrapper to do the callback.
4104           Thanks to Chuck Gehr for reporting this.
4106         * tests/Service_Config_Test.cpp: Made the destructor of
4107           Test_Singleton public to work around bugs with the MVS C++
4108           compiler.  Thanks to Chuck Gehr for reporting this.
4110         * ace/ACE,
4111           ace/Proactor,
4112           ace/SOCK_Connector,
4113           ace/SPIPE_Connector,
4114           ace/Acceptor,
4115           tests/Conn_Test: Changed ETIMEDOUT errno to ETIME errno to be
4116           consistent throughout ACE.  There should be no uses of
4117           ETIMEDOUT in ACE or the test apps and examples.
4119         * ace/ACE.cpp (handle_timed_complete): Only assume that we've
4120           timed out if the return value from select() == 0 *and* the
4121           timeout value isn't NULL...
4123         * ace/Object_Manager.h: Replaced the use of ACE_MT() in the header
4124           file with a #ifdef.  This solves problems that arise when ACE_MT
4125           is defined as "nothing" when MT_SAFE is not defined. As a code
4126           which has "ACE_MT();" becomes just ";" and fail to compile.
4127           Thanks to Avraham Nash <ANash@Engagetech.com> for reporting
4128           this.
4130 Fri Oct 10 19:55:50 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4132         * examples/ASX/CCM_App/Makefile:
4133         * include/makeinclude/rules.bin.GNU:
4134           I have re-applied Steve Huston changes from Oct 01, the change
4135           was (IMHO) useful and made compilation cleaner.
4137         * examples/ASX/Event_Server/Event_Server/Makefile:
4138           Fixed problem that made compilation fail.
4140 Fri Oct 10 19:52:44 1997    <nw1@CHA-CHA>
4142         * ace/OS.h:
4143         * ace/Connector.cpp:
4144         * ace/SOCK_Connector.cpp: Added new #define
4145           ACE_NON_BLOCKING_BUG_DELAY and replace their uses from some
4146           magic numbers to this constant.
4148 Fri Oct 10 19:27:28 1997  Steve Huston  <shuston@riverace.com>
4150         * include/makeinclude/rules.bin.GNU
4151           examples/ASX/CCM_App/Makefile
4152              Removed the changes to these files added Oct 01.
4154 Fri Oct 10 15:21:07 1997    <irfan@TWOSTEP>
4156         * examples/Connection/non_blocking/CPP-connector.cpp
4157           (disconnecting): Remove this method. It was not being used. Also
4158           rewrote some parts of handle_close to make the code simple.
4160         * ace/Connector.cpp (create_AST): The register_handler() method
4161           now needs to explicitly be given the handle to wait on. This is
4162           because the get_handle() method of Connector has been
4163           depricated.
4165         * examples/Connection/non_blocking/test_sock_connector.cpp (main):
4166           Since this test waits on the STDIN handle to become ready, we
4167           have to make sure that the WFMO_Reactor is used on Win32. This
4168           is necessary since select() on NT does not support waiting on
4169           STDIN.
4171         * examples/Connection/non_blocking/CPP-connector.cpp (open): On
4172           Win32, the std handle must be registered directly (and not as a
4173           socket).  On non-Win32, the std handle must be registered as a
4174           normal handle with the READ mask. Since on Win32, STDIN is used
4175           directly as an waitable handle, handle_signal will be called
4176           instead of handle_input. Therefore, we had to add handle_signal
4177           to the event_handler.
4179 Fri Oct 10 15:16:47 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4181         * ace/WFMO_Reactor.{h,cpp}:
4182         * ace/Select_Reactor.{h,cpp}:
4183         * ace/Reactor_Impl.h:
4184         * ace/Reactor.h:  Added 2 new functions in ACE_Reactor class so we
4185           can replace the signal handler and timer queue the reactor is
4186           using.  Notice that you should do this before you start the
4187           reactor, otherwise, you may loose your scheduled timed events.
4189 Fri Oct 10 14:49:40 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4191         * bin/man2html: Added a new set rul -e 's/^$/<P>/g', which
4192           correctly preserves paragraph boundaries.  Regenerated all of
4193           the ACE html documentation so that it is much better formatted.
4195 Fri Oct 10 11:08:02 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4197         * tests/run_tests.sh:
4198           We remove the log file before running a test, we also check for
4199           the log file existance before running run_test.check on
4200           it. Thanks to Dean Clamons <dean@n5170a.nrl.navy.mil> for
4201           helping us with this.
4203         * tests/run_tests.check:
4204           IRIX egrep does not support -q, we redirect the output the
4205           /dev/null instead.
4207 Fri Oct 10 01:46:07 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4209         * ACE version 4.3.13, released Fri Oct 10 01:46:07 1997.
4211 Thu Oct  9 22:23:56 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
4213         * ace/Thread_Manager.cpp: Moved the explicit template
4214           instantiations for ACE_Unbounded_Queue out of the complicated
4215           #ifdef since we also want this to compile even if we don't have
4216           threads.
4218         * tests/MT_SOCK_Test.cpp: Revised the code so that it uses
4219           processes on UNIX rather than threads.
4221         * tests/SOCK_Test.cpp (spawn): Cleaned up the code to make it
4222           correct.
4224         * ace/Get_Opt.cpp (ACE_Get_Opt): Changed the third argument to the
4225           ACE_Get_Opt constructor be changed from `char *' to `const char
4226           *'.  Thanks to Eric Newton for suggesting this.
4228 Thu Oct 09 18:43:14 1997    <irfan@TWOSTEP>
4230         * ace/Strategies_T.cpp (connect_svc_handler): Added
4231           synchronization to the method as the setting of the in_use bit
4232           in the service handler must be done atomically with the finding
4233           and binding of the service handler in the cache.
4235         * tests/Conn_Test.cpp (client_connections): Added multithreading
4236           to the test in order to test out the new MT features of the
4237           Connector.
4239         * ace/OS.cpp (invoke): Somehow there was a bug introduced in
4240           ACE_Thread_Adapter::invoke where the user entry point was being
4241           called twice!
4243 Thu Oct 09 17:54:31 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4245         * ACE version 4.3.12, released Thu Oct 09 17:54:31 1997.
4247 Thu Oct  9 17:46:59 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4249         * ace/Thread_Manager.cpp:
4250           Added explicit instantiation of
4251           ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor>, it seems to
4252           be needed on Linux and other platforms; thanks to Huiying Shen
4253           <shen@environ.org> for pointing out this one.
4255         * ace/OS.h:
4256         * ace/OS.i:
4257           Reverted the change that added support for
4258           pthread_setconcurrency on IRIX, the function was supposed to be
4259           undocumented, but present on the libraries, I could not find it
4260           in any of the SGI machines we have access to.
4262         * ace/Thread_Manager.cpp:
4263           On IRIX/SGIC++ we need to instantiate ACE_Node too.
4265         * ace/SOCK.h:
4266           Moved the open() method to the public interface, it is used by
4267           ACE_SOCK_Connector.
4269 Wed Oct  8 20:01:35 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4271         * ace/SOCK_Connector: Modified the ACE_SOCK_Connector so that it
4272           doesn't maintain state and doesn't inherit from ACE_SOCK.
4273           Therefore, we can have multiple threads using the same
4274           ACE_SOCK_Connector simultaneously without any reentrancy
4275           problems.
4277         * ace/SOCK.h: Moved the open() method into the public part of the
4278           class so it can be used in ACE_SOCK_Connector::connect().
4280         * ace/Connector.h: Removed the this->connector_ from the
4281           ACE_Connector class in order to make this pattern work correctly
4282           with multi-threaded programs.  Also removed the connector()
4283           accessor (which was never useful anyway).
4285         * ace/SOCK.cpp (open): Explicitly test setsockopt() for -1 in case
4286           of failure.
4288         * tests/SOCK_Test.cpp (server): Revised this test to reflect the
4289           fact that it doesn't iterate, but only runs one client and one
4290           server.
4292         * tests: Added a new test for multi-threaded sockets called
4293           MT_SOCK_Test.cpp.  Thanks to Bob Laferriere
4294           <laferrie@gsao.med.ge.com> for motivating this test.
4296 Wed Oct  8 12:09:46 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4298         * ace/OS.i (strcasecmp): Oops, we forgot to compare the strlen
4299           first.  Thanks to Murphy Ivan <Ivan.Murphy@med.siemens.de> for
4300           fixing the bug.
4302         * ace/OS.h: Added THR_DAEMON macro definition for Win32 (et. al.?)
4303           to avoid compilation error.
4304           Removed ACE_HAS_BROKEN_TEMPLATE_DESTRUCTOR and related macros.
4306 Wed Oct  8 09:52:20 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4308         * ace/Parse_Node.cpp:
4309           Fixed the minor syntax error *again*.
4311 Tue Oct  7 17:10:51 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
4313         * ace/Token_Manager.cpp:
4314           Added a defined(ACE_MT_SAFE) protection around the lock creation
4315           on ACE_Token_Manager::instance(), otherwise it would not work on
4316           platforms without threads. Thanks to "Neil B. Cohen"
4317           <nbc@metsci.com> for pointing this one out.
4319 Tue Oct  7 07:07:45 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
4321         * ace/Parse_Node.cpp (symbol): Added an ACE_ERROR_RETURN instead
4322           of an ACE_RETURN to bail out if an error occurs.  Thanks to Eric
4323           Newton for reporting this.
4325 Tue Oct  7 10:57:48 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
4327         * ace/OS.h:
4328           Added a prototype for pthread_setconcurrency when
4329           ACE_HAS_IRIX62_THREADS is defined. This function is undocumented
4330           but was needed by some users.
4332         * ace/Parse_Node.cpp:
4333           Fixed a minor syntax error.
4335 Tue Oct 07 06:58:40 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4337         * ACE version 4.3.11, released Tue Oct 07 06:58:40 1997.
4339 Tue Oct  7 02:51:55 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4341         * tests/TSS_Test.cpp (main):
4342         * tests/Task_Test.cpp (main):
4343         * tests/Barrier_Test.cpp (main): Removed thread_handles[] since we
4344           don't need to join the thread explicitly anymore.
4346         * ace/Thread_Manager.{h,cpp}:  Added an ACE_Unbounded_Quque to
4347           collect terminated threads so that we can later join the threads
4348           automatically by issuing a ACE_Thread_Manager::wait().  Some
4349           typos are also fixed.  Next step will be to replace current
4350           thr_table_ with a hash table and store an index to this table
4351           in TSS.
4353 Mon Oct  6 22:16:45 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
4355         * ace/Thread_Manager: Added a new task() method to
4356           ACE_Thread_Manager that returns a pointer to the current
4357           ACE_Task_Base we're executing in if this thread is indeed
4358           running in an ACE_Task_Base, else return 0.  Thanks to Ari Erev
4359           <ari_erev@icomverse.com> and John Neystadt for suggesting this.
4361         * ace/Thread_Manager: Moved the task_ pointer from the public part
4362           of the ACE_Thread_Descriptor class into the private part of the
4363           class and added an inline accessor instead.
4365         * ace/{Parse_Node.{h,cpp},Svc_Conf.y}: Added support to enable
4366           dynamically allocate objects from factory functions that have
4367           been pre-registered with the Service Configurator instead of
4368           relying on dynamic loading.  The new config file syntax would be
4369           (note the colons):
4371           dynamic joe Service_Object * : make_queue() active
4372           dynamic bob Service_Object * : make_queue() active
4374           Functions are found in the list of statically defined functions
4375           for static services.  Thanks to Eric C. Newton <ecn@smart.net>
4376           for this fix.
4378 Mon Oct  6 13:00:19 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4380         * ace/CORBA_Handler.cpp: Removed the use of reactor_ in the .cpp
4381           file too; we are using the ACE_Event_Handler reactor_ (which is
4382           a base class).
4384 Sat Oct 04 17:40:30 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4386         * ACE version 4.3.10, released Sat Oct 04 17:40:30 1997.
4388 Sat Oct  4 11:57:25 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4390         * apps/Orbix-Examples/Event_Comm/{Supplier,Consumer}/Makefile:
4391           Changed a typo where /src/ was being used instead of /libsrc/.
4392           Thanks to Jean-Marc STRAUSS <strauss@objectif.fr> for reporting
4393           this.
4395         * examples/Connection/non_blocking/CPP-connector.cpp (init):
4396           Removed the initialization of the local address.  This is
4397           error-prone and confusing to use.  Thanks to Huiying Shen
4398           <shen@environ.org> for reporting this.
4400         * ace/SV_Semaphore_Simple: Added support for IPC_EXCL in order to
4401           determine, upon creating the semaphore, if it already exists
4402           (which means a bad key was selected), another daemon is still
4403           running or the previous daemon didn't remove its resources.  I
4404           have this implemented now by first opening the semaphore and if
4405           that fails then creating it.  To support this, added another
4406           enum, ACE_EXCL = IPC_EXCL, to the class header.
4407           Also, changed the ACE_SV_Semaphore_Simple::open( key_t, ... )
4408           method to use
4410           if (ACE_BIT_ENABLED (flags, IPC_CREAT))
4412           rather than
4414           if (flags == IPC_CREAT)
4416           Thanks to Michael McKnight <mcknight@signalsoftcorp.com> for
4417           reporting this.
4419         * ace: Replaced all uses of the template param LOCK with ACE_LOCK
4420           to avoid conflicts with some systems that have a macro named
4421           LOCK.
4423         * ace/IOStream_T.h: Added ACE_LACKS_ACE_IOSTREAM to the
4424           IOStream_T.* files.  Thanks to Torbjorn Lindgren <tl@funcom.no>
4425           for reporting this.
4427         * ace/{Proactor,Service_Config,ACE_Sig_Handler}: Removed the use
4428           of sig_atomic_t as a return type.  Thanks to Torbjorn Lindgren
4429           <tl@funcom.no> for reporting this.
4431 Sat Oct 04 03:14:46 1997    <irfan@TWOSTEP>
4433         * ace/WFMO_Reactor.cpp (add_network_events_i): While looking
4434           through all entries in the current (and suspended) handles for a
4435           matching handle, we need to skip those that have been scheduled
4436           for deletion). Also changed ACE_BIT_STRICTLY_ENABLED to
4437           ACE_BIT_ENABLED.
4439         * ace/Select_Reactor.cpp (bit_ops): Since CONNECT is no longer a
4440           logical OR of READ and WRITE, we have to explicitly make sure
4441           that enable the handle in the correct wait sets.
4443         * ace/Event_Handler.h: Changed the values of the event
4444           masks. CONNECT is no longer a logical OR of READ and WRITE. It
4445           was its own unique value.
4447         * ace/OS.h: Removed ACE_BIT_STRICTLY_ENABLED. It did not do what I
4448           thought it would do.
4450         * ace/Connector.cpp (handle_output): Added code that tries to find
4451           out if the reactor uses event associations for the handles it
4452           waits on. If so we need to reset it. This is necessary for
4453           asynchronous connects.
4455         * ace/SOCK_Connector.i (reset_new_handle): Added new method on all
4456           connectors to reset event associations of handles.
4458 Fri Oct 03 21:20:26 1997  David L. Levine  <levine@cs.wustl.edu>
4460         * ace/Makefile: disable INSTALL in $(ACE_ROOT)/ace Makefile,
4461           because it's not needed and it creates circular symlinks when
4462           the library build fails.
4464 Fri Oct  3 11:39:45 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4466         * ace/Thread_Manager: Added a new flags_ field to
4467           ACE_Thread_Descriptor and changed the insert_thr() and
4468           append_thr() methods to update this flag so that we can keep
4469           track of whether the thread was created "detached" or not.
4471         * ace/Reactor.cpp (event_loop_done): Replaced the use of
4472           sig_atomic_t with int to workaround bugs with KAI C++.  Thanks
4473           to Torbjorn Lindgren <tl@funcom.no> for reporting this.
4475         * ace/CORBA_Handler: Removed the reactor() accessors since they
4476           are subsumed by the methods in ACE_Event_Handler.  Thanks to
4477           Jean-Marc STRAUSS <strauss@objectif.fr> for reporting this.
4479 Thu Oct 02 15:38:34 1997    <irfan@TWOSTEP>
4481         * Reactor: Renamed reset_new_handle to uses_event_associations.
4483         * ace/FIFO_Recv.cpp (ACE_FIFO_Recv): aux_handle_ must correctly be
4484           initialized to ACE_INVALID_HANDLE. Thanks to Sandro Doro
4485           <doros@aureus> for reporting this.
4487 Thu Oct 02 11:21:37 1997  Steve Huston  <shuston@riverace.com>
4489         * include/makeinclude/platform_{aix aix4.2}.GNU: added the
4490           shared_libs_only = 0 and static_libs = 1 settings since C Set++
4491           builds the shared libs from the static.
4493         * ace/OS.h: Removed spaces around '##' in ACE_DES_FREE_TEMPLATE macro.
4495         * ace/Strategies_T.cpp: added #include "ace/Thread_Manager.h"
4497         * ace/Managed_Object.h: Added <TYPE> template arg in the "unimplemented
4498           function" section.
4500 Thu Oct 02 10:46:18 1997  Steve Huston  <shuston@riverace.com>
4502         * ace/Malloc.h: added some comments on rationale and use of
4503           ACE_MALLOC_ALIGN.
4505 Wed Oct 01 19:08:26 1997  Steve Huston  <shuston@riverace.com>
4507         * include/makeinclude/rules.bin.GNU: correctly builds programs
4508           with multiple object modules.
4510         * examples/ASX/CCM_App/Makefile: needed some adjustment to work with
4511           new rules.bin.GNU, above.
4513 Wed Oct 01 14:11:03 1997    <nw1@CHA-CHA>
4515         * ace/Remote_Name_Space.cpp (resolve): We need to allocate one more
4516           space than what strlen reports.
4518 Wed Oct 01 12:45:51 1997  David L. Levine  <levine@cs.wustl.edu>
4520         * ace/ACE.cpp (count_interfaces, get_handle): changed "unix" to
4521           "__unix" because DEC CXX doesn't #define "unix".  Thanks to
4522           Billy Quinn <bquinn@lads.com> for reporting this.
4524         * ace/High_Res_Timer.h: added comment from Gabe
4525           <begeddov@proaxis.com> about ACE_OS::gethrtime () drift on MP
4526           machines.
4528         * ace/OS.i (gethrtime, Solaris only): removed ACE_OSCALL_RETURN
4529           wrapper around ::gethrtime () because it was broken (the type
4530           was int) and not necessary (::gethrtime () should never fail),
4531           so we can remove its overhead.
4533         * tests/Time_Value_Test.cpp: undef ACE_NO_INLINE in the
4534           ACE_U_LongLong test hacks.
4536         * tests/SV_Shared_Memory_Test.cpp: delay construction of allocator
4537           until first needed because it needs something that the
4538           ACE_Object_Manager constructs.
4540         * tests/run_tests.vxworks: added console printout before each test.
4542 Tue Sep 30 21:42:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4544         * ACE version 4.3.9, released Tue Sep 30 21:42:58 1997.
4546 Tue Sep 30 17:15:14 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
4548         * ace/Filecache.{h,cpp}: I removed the static locks in the
4549           Filecache and made them local member objects.  Since Filecache
4550           is usually a singleton, no more memory is required this way.
4552         * tests/Hash_Map_Manager_Test.cpp: Added some code to test the
4553           Hash_Map_Manager_Iterator.  This is to show Bob Laferriere that
4554           it works.
4556 Tue Sep 30 13:41:14 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4558         * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
4559           (handle_input):
4560         * examples/Reactor/ReactorEx/test_network_events.cpp (handle_input):
4561         * examples/Logger/simple-server/Logging_Acceptor.cpp
4562           (handle_input): Changed to use reset_new_handle () for querying
4563           whether we need to reset handles or not.
4565 Tue Sep 30 08:35:15 1997  David L. Levine  <levine@cs.wustl.edu>
4567         * ace/Atomic_Op.i: added CVS header.
4569         * ace/Object_Manager.{h,cpp}: removed Filecache arrays, because
4570           Filecache no longer needs them.
4572         * ace/Filecache.{h,cpp}: removed unused static Filecache::lock_.
4574         * tests/test_config.h: Added 1 second sleep to ACE_END_TEST to
4575           allow all threads to terminate gracefully.
4576           VxWorks only: removed the hack removal of the log file, because
4577           it no longer appears to be necessary.
4579         * tests/TSS_Test_Errno.h,TSS_Test.cpp: dynamically allocate
4580           Errno::lock_ to try to avoid problem with cleanup of statics
4581           on VxWorks.  It doesn't solve the problem, all of the time.
4582           There are still statics in the ACE library, which could be
4583           causing it.
4585 Tue Sep 30 01:35:28 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4587         * ace/Naming_Context.cpp (close, close_down): Separated these two
4588           functions calls.  Close now only release the name_space_
4589           resource and close_down release all resources.  Close should be
4590           use when changing the name_space.
4592 Mon Sep 29 22:29:46 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4594         * ace/Strategies_T.cpp (accept_svc_handler ):
4595         * ace/Service_Manager.cpp (handle_input):
4596         * ace/Acceptor.cpp (handle_input, accept_svc_handler): Changed to
4597           use reset_new_handle () for querying whether we need to reset
4598           handles or not.
4600         * ace/Reactor.{h,i} (reset_new_handle):
4601         * ace/Reactor_Impl.h (reset_new_handle):
4602         * ace/Select_Reactor.{h,i} (reset_new_handle):
4603         * ace/WFMO_Reactor.{h,i} (reset_new_handle): Added this new method
4604           so we can determine whether the implementation of the reactor
4605           requires us to decouple the event a handle inherit from accept.
4606           This scheme doesn't depend on the RTTI support of compilers.
4607           Thanks to Irfan for the tips.
4609 Mon Sep 29 21:28:02 1997    <irfan@TWOSTEP>
4611         * ace/Synch (ACE_Recursive_Thread_Mutex): Methods were added to
4612           ACE_Recursive_Thread_Mutex so that it has a consistent interface
4613           with other locking mechanisms.  Thanks to Phil Logan
4614           <phill@in.ot.com.au> for submitting these changes.
4616 Mon Sep 29 13:28:05 1997  David L. Levine  <levine@cs.wustl.edu>
4618         * ace/OS.i (thr_setconcurrency): added support on Irix 6.x, using
4619           its ::pthread_setconcurrency ().  Thanks to Felix Popp
4620           <fxpopp@immd9.informatik.uni-erlangen.de> for letting us know
4621           about this Irix 6.2/3 system function, and for testing it out.
4623         * ace/ACE.cpp (handle_timed_complete) force recv check on VxWorks
4624           because its read handle is always not set.  Thanks to Steve for
4625           helping track down the problem.  We might want to consider doing
4626           it this way on Unix platforms, as well, according to Steve.
4628         * apps/JAWS/server/HTTP_Server_T.cpp (accept): fixed typo,
4629           "remote_address" instead of "remote_adrress".
4631         * tests/Time_Value_Test.cpp (test_ace_u_longlong): replaced
4632           ACE_ASSERTs with calls to a static function that prints out
4633           why the test failed.  Also, disabled test of ACE_U_LongLong
4634           if ACE_HAS_64BIT_LONG.
4636         * ace/OS.h: 1) Use u_long for ACE_hrtime_t if ACE_HAS_64BIT_LONGS.
4637           2) Added ACE_NO_INLINE support to allow wrapper_macros.GNU to
4638           disable inlining from the command line.  3) Added
4639           ACE_HAS_VERBOSE_NOTSUP support.
4641         * include/makeinclude/wrapper_macros.GNU: added "inline" flag to
4642           allow enabling/disabling of inlining from the command line or
4643           platform_macros.GNU.
4645         * ace/config-vxworks*.h: added ACE_HAS_VERBOSE_NOTSUP.
4647 Mon Sep 29 11:15:10 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4649         * ace/OS.h (ace_cleanup_destroyer): Made this an export function.
4651 Sat Sep 27 17:04:48 1997    <irfan@TWOSTEP>
4653         * ace/Reactor: Added new methods to be able to set and get the
4654           implementation class being used by the reactor. The set method
4655           is protected and should be used with care, specially while
4656           changing the implementation class midway through an
4657           application. Also both the methods are virtual, and user can
4658           subclass to change their behavior. The internal code of the
4659           reactor also changed to now use these methods exclusively rather
4660           than the the raw data variables.
4662         * ace/Acceptor.cpp (handle_input): When using the WFMO_Reactor, we
4663           need to reset the event association for the newly created
4664           handle. This is because the newly created handle will inherit
4665           the properties of the listen handle, including its event
4666           associations. Therefore two changes were made:
4668           - A new directive (flag) was added to all the acceptors
4669             (LSOCK_Acceptor, SOCK_Acceptor, SPIPE_Acceptor, TLI_Acceptor,
4670             and UPIPE_Acceptor) to reset the event associations of the
4671             newly created handle. Currently only the SOCK_Acceptor pays
4672             attentions to this directive, others just ignore it. This flag
4673             had to be added to all the acceptors for interface
4674             compatibility and also to make sure that the Acceptor template
4675             code works correctly.
4677           - A dynamic_cast was necessary to determine at run-time which
4678             implementation of the Reactor we are using. But because this
4679             code is limited to Win32, there should be no problems doing
4680             the dynamic_cast.
4682           The same thing as above needed to be done to:
4684           - ACE_Accept_Strategy::accept_svc_handler (ace/Strategies_T.cpp)
4686           - ACE_Service_Manager::handle_input (ace/Service_Manager.cpp)
4688           - LOCK_SOCK_Acceptor::accept (apps/JAWS/server/HTTP_Server_T.h)
4690           - Logging_Acceptor.cpp::handle_input (examples/Logger/simple-server/Logging_Acceptor.cpp)
4692           - Network_Listener::handle_input (examples/Reactor/ReactorEx/test_network_events.cpp)
4694           - Handle_R_Stream::handle_input (examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i)
4696 Sat Sep 27 20:03:29 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4698         * include/makeinclude/platform_sunos5_sunc++_orbix.GNU:
4699           Activated exceptions by default too, since they are used by
4700           Orbix anyway.
4702         * include/makeinclude/platform_sunos5_sunc++.GNU:
4703           Some libraries were missing and the locations were not
4704           completely accurate.
4706         * ace/config-sunos5.5-sunc++-4.x-orbix.h:
4707           I let the MT Orbix as the default, since that is the
4708           configuration here and that was implicit in the platform*.GNU
4709           files.
4711         * include/makeinclude/wrapper_macros.GNU:
4712           Added flags to the IDL compiler to emit support for both
4713           CORBA::Any (-A) and the BOAImpl (-B) approach for the server
4714           side implementations.
4716         * ace/CORBA_Handler.cpp:
4717           The full definition for Thread_Manager was missing, I added an
4718           include for it.
4720 Sat Sep 27 07:59:18 1997  David L. Levine  <levine@cs.wustl.edu>
4722         * include/makeinclude/wrapper_macros.GNU,
4723           platform_{chorus,lynxos,vxworks*}.GNU:
4724           default to building shared libs only, except on Chorus,
4725           LynxOS, and VxWorks.  While the "shared_libs_only=1" make
4726           flag is still supported, it is no longer necessary because
4727           it is the default.
4729           To revert to the prior behavior of building both shared and
4730           static libraries, add "static_libs=1" to either your make
4731           command invocation or your include/makeinclude/platform_macros.GNU.
4733 Sat Sep 27 00:45:10 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4735         * examples/OS/Process/README (imore):
4736         * examples/OS/Process/Makefile:
4737         * examples/OS/Process/imore.cpp:  Added a new example: imore.
4739         * ace/SOCK_Stream.cpp (close, close_reader, close_writer): Moved
4740           invalid handlers checking from close to close_reader and
4741           close_writer.
4743 Fri Sep 26 14:28:36 1997  Nanbor Wang  <nw1@CHA-CHA>
4745         * tests/SPIPE_Test.cpp:
4746         * tests/Process_Strategy_Test: Changed the macro "ACE_LACKS_EXEC"
4747           to "ACE_LACKS_FORK".
4749         * ace/SOCK_Stream.cpp (close): Added checking for invalid handle
4750           before shutting down the write end.
4752 Fri Sep 26 11:55:27 1997  Steve Huston  <shuston@riverace.com>
4754         * ace/Malloc.h: Use signed math in the preprocessor calculations
4755           for ACE_CONTROL_BLOCK_ALIGN_LONGS (and all of its contributing
4756           factors).
4758         * ace/ACE.cpp: Fixed the TLI/BSD checks in handle_timed_complete.
4760         * tests/SOCK_Connector_Test.cpp: Added ENOTCONN as a valid fail
4761           condition (in addition to ECONNREFUSED).
4763 Fri Sep 26 05:11:40 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4765         * ace/SOCK_Acceptor.cpp (shared_accept): Made the newly added
4766           WSAEventSelect code unreachable.  It caused several test program
4767           hung when performing socket recieving.  Don't know why this is
4768           happening.  According to the online manual, this should be the
4769           right thing to do.  Some more Access Violations to be fix
4770           tomorrow.  Oh, I mean, today.
4772 Fri Sep 26 01:22:28 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4774         * ace/OS: Made a few changes to OS.h and OS.i to stop compiler
4775           warnings.  Thanks to Wei Chiang <chiang@tele.nokia.fi> for
4776           reporting this.
4778         * ace/config-chorus.h: Added ACE_LACKS_RLIMIT and removed
4779           ACE_LACKS_SIGACTION.  Thanks to Wei Chiang
4780           <chiang@tele.nokia.fi> for reporting this.
4782         * ace/TLI_Connector.cpp (complete): Changed the call to
4783           ACE::handle_timed_complete() to use the new parameter.
4785         * ace/ACE: Added an extra parameter to the call to
4786           ACE::handle_timed_complete() to indicate (at run-time) that this
4787           is being called via a TLI interface.  Thanks to the
4788           ever-vigilant Steve Huston for suggesting this.
4790         * tests/SOCK_Connector_Test.cpp: "ACEified" the new test program.
4792 Thu Sep 25 23:27:38 1997    <irfan@TWOSTEP>
4794         * ace/config-win32.h: Error in directives: it should be "Define
4795           ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not* want
4796           to compile with WinSock 2.0.". The typo was a 1 instead of the
4797           0. Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for pointing
4798           this out.
4800 Thu Sep 25 20:33:09 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4802         * ace/Message_Queue.h: Changed the *_i() methods to be virtual so
4803           that we can change the queueing mechanism by subclassing from
4804           ACE_Message_Queue.  Thanks to Eric Newton <ecn@smart.net> for
4805           this suggestion.
4807         * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T): Changed
4808           listParam to timer_list to keep programming style consistent...
4810 Thu Sep 25 17:06:42 1997  Steve Huston  <shuston@riverace.com>
4812         * ace/OS.i - ACE_OS::cond_timedwait - HP's threads return
4813           EAGAIN on timeout from pthread_cond_timedwait, so adjust that
4814           to ETIME.
4816         * tests/SOCK_Connector_Test.cpp - will now try to find another
4817           host to run the connect to.  Won't try on Win32 or VxWorks
4818           though.
4820 Thu Sep 25 15:25:53 1997  David L. Levine  <levine@cs.wustl.edu>
4822         * ace/Object_Manager.cpp,OS.cpp: moved socket_init to Object_Manager
4823           ctor and socket_fini to Object_Manager dtor, to be sure that
4824           WinSock gets initialized early and closed late.
4826         * ace/SOCK.{h,cpp}: removed dummy_ static now that the
4827           Object_Manager initializes WinSock.
4829           No, I'm not a Win32 wizard all of the sudden.  Thanks to
4830           Irfan and Nanbor for directing these changes.
4832         * tests/run_tests.vxworks: commented out tests that don't run
4833           productively on VxWorks: SV_Shared_Memory_Test,
4834           Reactor_Exceptions_Test, SPIPE_Test, and UPIPE_SAP_Test.
4836 Thu Sep 25 03:50:27 1997    <irfan@TWOSTEP>
4838         * ace/OS.i (thr_getspecific): Must restore errno if no errors have
4839           occured.
4841         * ace/Log_Msg.cpp (close): Must close the message queue *before*
4842           destruction since there is no destructor for the queue.
4844         * netsvcs/lib/Client_Logging_Handler.cpp (fini): fini must close
4845           and unregister the acceptor. Closing the socket is simply not
4846           enough.
4848 Thu Sep 25 01:39:47 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4850         * ace/Containers.{i,cpp}:  Commented out all ACE_TRACE macros in
4851           ACE_Unbounded_Queue<T> so that they won't cause SIGSEGV when we
4852           turn the tracing on.  Unbounded_Queue is used in Object_Manager
4853           which must be initialize before most of other objects.
4855 Wed Sep 24 23:37:19 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4857         * ace/OS.i (thr_getspecific): On NT, added check whether
4858           ::GetLastError() is NO_ERROR when ::TlsGetValue() return 0.
4860 Wed Sep 24 13:37:02 1997    <irfan@TWOSTEP>
4862         * ace/config-win32-common.h (ACE_LACKS_FORK): Added in macro to
4863           distinguish between ACE_LACKS_FORK and ACE_LACKS_EXEC. Also
4864           updated config-chorus.h, config-vxworks-ghs-1.8.h, and
4865           config-vxworks5.x-g++.h.
4867         * ace/OS.h (ACE_WIN32CALL_RETURN && ACE_WIN32CALL): Added new
4868           macros to distinguish between Win32 calls that set GetLastError
4869           and those that set errno. Also updated ACE_OSCALL_RETURN and
4870           ACE_OSCALL such that they do not set errno to GetLastError. This
4871           is because these calls automatically set errno.
4873           Updates OS.* files to reflect these changes.
4875         * ace/SOCK_Acceptor.cpp (shared_accept): Make sure to reset the
4876           event association inherited by the new handle.
4878         * ace/WFMO_Reactor.i (unbind): Added a check for invalid handles
4879           being passed in for removals.
4881 Wed Sep 24 10:34:29 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4883         * ace/OS.h:
4884           Under HP-UX and g++ <dl.h> must be included for dynamic loading,
4885           not <cxxdl.h>; thanks to Warren Thompson (wthompson@altaira.com)
4886           for helping us with this one.
4888 Wed Sep 24 09:36:21 1997  David L. Levine  <levine@cs.wustl.edu>
4890         * ace/Managed_Object.{h,i},Object_Manager.{h,cpp}: removed
4891           ACE_Managed_Object get_object () interface.  It wasn't
4892           used anywhere; it was originally intended to support preallocated
4893           objects but turned out to not be necessary.  I think that it would
4894           be more useful to make it possible to instantiate
4895           ACE_Managed_Object instead, and have it implicitly register
4896           with the ACE_Object_Manager.
4898         * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T):
4899           changed name of "list" argument ot "listParam" to resolve name
4900           conflict with STL.  Thanks to Brian Mendel for reporting this.
4902         * tests/run_tests.check: print out filename with error messages.
4904 Tue Sep 23 17:11:44 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4906         * ace/config-hpux-10.x-g++.h:
4907           Added A ACE_LACKS_TIMESPEC_T, thanks to Warren Thompson
4908           (wthompson@altaira.com) for this one.
4910         * include/makeinclude/platform_hpux_gcc.GNU:
4911           Added a -D_REENTRANT define, to enable reentrant methods, thanks
4912           to Warren Thompson (wthompson@altaira.com) and Steve Huston
4913           (shuston@riverace.com) for pointing out this.
4915         * ace/config-hpux-10.x.h:
4916           Added an small comment to clarify that DCE/threads must be
4917           installed if threading is wanted, they are an optional product
4918           for HP-UX.
4920 Tue Sep 23 10:13:57 1997  David L. Levine  <levine@cs.wustl.edu>
4922         * ace/Select_Reactor.cpp: added #include of ace/Thread.h.
4923           Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
4924           reporting this.
4926         * ace/Object_Manager.cpp: added #include of ace/Malloc.h.
4927           Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
4928           reporting this.
4930         * ace/config-aix-4.1.x.h: added ACE_HAS_PTHREAD_T and
4931           ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #defines.
4932           Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
4933           reporting the build problem on AIX 4.1, and to
4934           Torbjorn Lindgren <tl@funcom.no> for providing these fixes.
4936         * ace/Token_Manager.{h,cpp},Object_Manager.{h,cpp}:
4937           preallocate ACE_Token_Manager creation lock.
4939         * ace/Object_Manager.cpp: use ACE_Cleanup_Adapter<TYPE[COUNT]>
4940           for preallocated arrays.
4942 Mon Sep 22 16:51:44 1997    <irfan@TWOSTEP>
4944         * ace/OS.i (open): Changed code so that (_O_CREAT | _O_TRUNC)
4945           means CREATE_ALWAYS. Thanks to Dave Brackman
4946           (dbrackma@OhioEE.com) for pointing this out.
4948 Mon Sep 22 11:01:28 1997  Steve Huston  <shuston@riverace.com>
4950         * tests/SOCK_Connector_Test.cpp, Makefile, run_tests.sh - added new
4951           test to exercise ACE_SOCK_Connector focusing on fail conditions.
4953 Mon Sep 22 07:11:21 1997  David L. Levine  <levine@cs.wustl.edu>
4955         * ace/Message_Block.cpp (clone): check this block's cont ()
4956           instead of the new block's cont_ when cloning the continuation
4957           messages.  Thanks to Eric Newton <ecn@smart.net> for tracking
4958           down this problem with failing to clone continuation blocks,
4959           and for providing the fix.
4961         * ace/OS.{h,i} (ACE_U_LongLong): added operator!=, and made args
4962           const to ctor, operator/, hi, and lo member functions.
4964         * ace/Managed_Object.[hi]: renamed ACE_Managed_Cleanup to
4965           ACE_Cleanup_Adapter because it doesn't implicitly register
4966           itself with the ACE_Object_Manager.
4968         * ace/ACE.cpp: moved ACE_Object_Manager_Destroyer to
4969           Object_Manager.cpp because the ACE_Object_Manager should
4970           always be linked into executables now, even if libACE is
4971           statically linked.
4973         * ace/Filecache.{h,cpp},Signal.{h,cpp} preallocate locks for
4974           Filecache and Signal in ACE_Object_Manager.
4976         * ace/Object_Manager.{h,cpp}: 1) renamed ACE_Managed_Cleanup to
4977           ACE_Cleanup_Adapter.  2) Moved ACE_Object_Manager_Destroyer from
4978           ACE.cpp to Object_Manager.cpp. 3) Added Filecache and Signal locks.
4980         * ace/Singleton.*: removed instance (TYPE *) member function because
4981           it wasn't being used.  And, it allows us to store the contained
4982           instance_ as an object instead of a pointer, saving a dynamic
4983           memory allocation on construction.
4985         * include/makeinclude/platform_vxworks5.x_g++.GNU: added $(MUNCHED)
4986           to PRELINK, to allow applications to add libraries or object
4987           files to be munched.
4989         * ace/stdcpp.h: stdarg.h must be #included before stdio.h on LynxOS.
4991 Sat Sep 20 17:32:23 1997  David L. Levine  <levine@cs.wustl.edu>
4993         * ace/Object_Manager.{h,cpp},Managed_Object.*,
4994           CORBA_Handler.{h,cpp},Dump.{h,cpp},Log_Msg.cpp,OS.cpp
4995           revised ACE_Object_Manager interface for preallocated objects.
4997           Also, added documentation of ACE_Object_Manager interface to
4998           Object_Manager.h and Managed_Object.h.
5000         * ace/CORBA_Handler.cpp,Dump.cpp,OS.cpp: use ACE_MT with
5001           preallocated locks.
5003         * include/makeinclude/platform_*.GNU,wrapper_macros.GNU:
5004           moved -O out of wrapper_macros.GNU and into each platform
5005           file's OC[C]FLAGS to support "optimize" make flag.
5007           I moved -O and similar compile flags out of CFLAGS and/or
5008           CCFLAGS and into OCFLAGS and/or OCCFLAGS.  This allows the
5009           ACE make system to support the "optimize" flag.  It operates
5010           similar to the "debug" flag, i.e., you can set "optimize=1"
5011           or "optimize=0" in your platform_macros.GNU file to enable
5012           or disable optimization.  You can use the same syntax to
5013           get the same effect from the "make" command line, e.g.,
5014           "make optimize=1 debug=0".
5016           I added optimize=1 to platform_*.GNU files that had -O, etc.,
5017           in their C[C]FLAGS.  Therefore, there should be no net effect
5018           from this change on any platform.
5020         * include/makeinclude/wrapper_macros.GNU:
5021           I _removed_ the disabling of "debug" when "optimize=1" is
5022           enabled.  This _will_ have a net effect:  if you were relying
5023           on "debug" to be disabled when you enabled "optimize=1",
5024           you'll be surprised.  The change supports platforms that
5025           allow "debug" and "optimize" simultaneously.
5027           Because I had added the disabling of "debug" recently,
5028           and because "optimize=1" wasn't supported well, if at all,
5029           I'd be suprised if any is actually affected by this change.
5031 Sat Sep 20 11:47:14 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5033         * ace/Timer_Queue_T.cpp:
5034           Changed the return type to <int>, to match its declaration. The
5035           intent was to error error values, which are declared as <int>
5036           throughout ACE.
5038 Sat Sep 20 08:07:36 1997  David L. Levine  <levine@cs.wustl.edu>
5040         * ace/OS.i (gethrtime): on Linux only, removed "volatile" qualifier
5041           from declaration of local variable "now".  I don't think that
5042           it's necessary.  It causes compilation failure with g++ because
5043           the ACE_U_LongLong copy constructor won't take a volatile
5044           argument.  Thanks to Sandro Doro <doros@aureus.sublink.org> for
5045           tracking down this problem.
5047         * tests/Time_Value_Test.cpp: reverted to test ACE_U_LongLong on
5048           all platforms except WIN32.  It works properly on Linux with
5049           the removal of volatile from ACE_OS::gethrtime's "now".  Thanks
5050           to Sandro Doro <doros@aureus.sublink.org> for figuring this one
5051           out.
5053 Fri Sep 19 18:49:50 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5055         * ace/config-irix6.x-g++.h:
5056         * include/makeinclude/platform_irix6.x_g++.GNU:
5057           Added support for IRIX 6.x w/gcc, thanks to Celeste E. Copeland
5058           (celeste@altaira.com) for this.
5060 Thu Sep 18 19:33:02 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5062         * Douglas added the following changes while going through the
5063           Async_Timer_Queue.
5065         * ace/Timer_Queue_T.h: Factored out the code for handling
5066           ualarm().
5068         * ace/Timer_Queue_T.cpp (handle_signal): Cleanedup the logic
5069           for rescheduling a ualarm() after expiring a timer.
5071         * tests/Async_Timer_Queue_Test.cpp (signal_handler): Changed the
5072           use of ACE_DEBUG to ACE_ERROR to ensure that the call doesn't
5073           magically disappear if ACE_NDEBUG is enabled.
5075 Fri Sep 19 18:05:48 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5077         * ace/Log_Msg.cpp (log): Changed the send() to a send_n() so that
5078           all the data gets written...
5080 Fri Sep 19 14:52:53 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
5082         * netsvcs/lib/Client_Logging_Handler.cpp (get_handle): Can't use
5083           ACE_ERROR_RETURN here because ACE_HANDLE is a void* on NT, not
5084           int.
5086         * examples/Reactor/Misc: Added reactors.dsp signals_1.dsp
5087           signals_2.dsp.
5089         * ace/OS.cpp (thr_exit): Commented out the call to
5090           ACE_TSS_Cleanup::exit () because ACE_OS::thr_exit is actually
5091           called from ACE_TSS_Cleanup::exit ().
5093 Fri Sep 19 12:50:37 1997  David L. Levine  <levine@cs.wustl.edu>
5095         * ACE-INSTALL*,ace/README: added more documentation of requirement
5096           for explicit main (int, char *[]) arguments and int return type
5097           with ACE_HAS_NONSTATIC_OBJECT_MANAGER (on VxWorks).
5099 Thu Sep 18 22:45:09 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5101         * netsvcs/lib/Client_Logging_Handler.cpp (close): Fixed a
5102           typo: it's output_ not outout_.  Thanks to David for
5103           pointing this out.
5105         * netsvcs/lib/Client_Logging_Handler.cpp: Make sure to clean up
5106           all our resources (e.g., acceptor-mode and data-mode sockets)
5107           when we close down.
5109         * netsvcs/servers/main.cpp (main): Restored the entire contents of
5110           main().
5112         * tests/Semaphore_Test.cpp: Updated the test to use a temporary
5113           ACE_Time_Value variable that is passed to
5114           ACE_Semaphore::acquire() so that we don't have problems with
5115           reference anachronisms...  Thanks to David Levine for reporting
5116           this.
5118         * ace/Log_Msg.cpp: Changed over to using ACE_SPIPEs for the
5119           logging mechanism rather than ACE_FIFOs to conform to the
5120           changes to Client_Logging_Handler.
5122         * netsvcs/lib/Client_Logging_Handler.cpp:
5123           Completely rewrote the Client Logging Daemon so that it uses
5124           ACE_SPIPEs by default, rather than ACE_FIFOs.  This is more
5125           portable and makes it easier to write a generic client logging
5126           daemon...  If a platform doesn't support ACE_SPIPEs, then we
5127           revert to using sockets.
5129 Thu Sep 18 21:56:33 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
5131         * ace/OS.cpp (ACE_TSS_Cleanup::exit): Masked out codes that relate
5132           to freeing TSS keys and remove key entries from TSS cleanup
5133           table.  I removed it here to avoid race condition.
5134           (ACE_TSS_Cleanup::free_all_key_left): Added this function to
5135           free all left over TSS keys and remove them from TSS cleanup
5136           table when the program exits.  It is only called from
5137           ACE_OS::cleanup_tss.
5138           (ACE_OS::cleanup_tss):  Added call to
5139           ACE_TSS_Cleanup::free_all_key_left when ACE_WIN32 or
5140           ACE_HAS_TSS_EMULATION are defined.
5142 Thu Sep 18 16:30:24 1997  David L. Levine  <levine@cs.wustl.edu>
5144         * ace/Semaphore_Test: protected declarations of test_timeout_count
5145           and timeouts because they're not used on Solaris.
5147         * netsvcs/lib/Client_Logging_Handler.cpp: added template
5148           instantiations.
5150 Thu Sep 18 09:04:40 1997    <irfan@TWOSTEP>
5152         * ace/Dynamic: Changed the way ACE_Dynamic worked. Instead of
5153           keeping the "this" pointer of the object in question, we are now
5154           simply keeping a flag that indicates whether the object was
5155           dynamically created. The trick to this approach is to make sure
5156           to reset the flag in the constructor. The "this" pointer
5157           approach was broken when used with multiple inheritance, because
5158           of "shearing" of the "this" pointer to get to the base
5159           Svc_Handler class.
5161 Thu Sep 18 01:12:36 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5163         * ACE version 4.3.8, released Thu Sep 18 01:12:36 1997.
5165 Wed Sep 17 22:47:20 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5167         * ace/ACE: Added two new varargs methods for send() and recv().
5168           These are modeled after the ones that are in, e.g., ACE_SOCK_IO.
5170         * ace/Log_Msg.cpp (open): In the UNICODE version the compiler
5171           complains about mixed wchar/char usage in Log_Msg.cpp:
5173           Log_Msg.cpp(468) : error C2665: 'ACE_INET_Addr::ACE_INET_Addr' :
5174           none of the 8 overloads can convert parameter 1
5175           from type 'const unsigned short *'
5177           I fixed it modifing the connect() call from
5179           status = con.connect (*ACE_Log_Msg_message_queue,
5180                                 ACE_INET_Addr (logger_key));
5182           to
5184           status = con.connect (*ACE_Log_Msg_message_queue,
5185                                 ACE_INET_Addr
5186                                 (ACE_MULTIBYTE_STRING(logger_key)));
5188           Thanks to Dieter Quehl <dietrich.quehl@med.siemens.de> for
5189           reporting this.
5191         * ace/SV_Semaphore_Simple.h: By default, we want the flags to
5192           perform a SEM_UNDO.  Thanks to Sandro Doro
5193           <doros@aureus.sublink.org> for reporting this.
5195         * tests/Makefile (BIN): Added Semaphore_Test.cpp to the Makefile.
5196           Thanks to Sandro Doro <doros@aureus.sublink.org> for reporting
5197           this.
5199         * tests/Async_Timer_Queue_Test.cpp: If you want to print a '\',
5200           you need to make it a \\...  Thanks to David for noticing this.
5202         * apps/JAWS/clients/Blobby/Blob_Handler.h: There was a missing
5203           #include for "ace/SOCK_Stream.h".
5205         * netsvcs/lib/Client_Logging_Handler: Reimplemented this service
5206           so that it uses sockets on Win32 to receive logging messages
5207           from clients.
5209         * ace/Log_Msg.cpp: Enhanced ACE_Log_Msg::log() so that it now uses
5210           sockets on Win32 platforms to work around the lack of FIFOs.
5212         * ace/Log_Record.h: Revised the field layout of the ACE_Log_Record
5213           so that the length field comes first.  This is necessary for the
5214           framing mechanisms used throughout ACE in various
5215           configurations.
5217 Wed Sep 17 15:17:38 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
5219         * ace/Filecache.cpp: ACE_Filecache::finish should check to see if
5220           the file passed in is NULL before attempting to grab the
5221           associated hash lock.  Reported by Samuel Melamed
5222           <sam@vdo.net>.
5224 Wed Sep 17 13:51:25 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5226         * bin/auto_compile:
5227           I setup autoflush on the logfile, it makes debugging and non
5228           crontab usage a bit easier.
5230 Wed Sep 17 12:59:34 1997    <irfan@TWOSTEP>
5232         * ace/Local_Name_Space_T.cpp: Fixed warnings caused by SEH macros.
5234 Wed Sep 17 01:07:40 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5236         * ACE version 4.3.7, released Wed Sep 17 01:07:40 1997.
5238 Tue Sep 16 23:34:36 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5240         * netsvcs/servers/main.cpp (main): The use of braces was incorrect
5241           so that some services were being prematurely closed...
5243         * ace: Added a new flag called ACE_LACKS_FIFO to distinguish the
5244           (lack of) features on Win32...
5246         * ace/Timer_Queue_T: Added an expire() wrapper for the
5247           Async_Timer_Queue_Adapter.
5249         * ace/OS: Added a wrapper for strpbrk() and wcspbrk().  Thanks to
5250           Bob Olson <olson@jeeves.mcs.anl.gov> and Irfan for pointing out
5251           the need for this.
5253 Tue Sep 16 18:03:58 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5255         * bin/auto_compile:
5256           It wouldn't report an error when run_tests.sh scream "FAILED",
5257           now it does.
5259 Tue Sep 16 08:30:28 1997  Steve Huston  <shuston@riverace.com>
5261         * ace/OS.i: Changed a couple of ACE_UNUSED(arg) to ACE_UNUSED_ARG(arg)
5263 Mon Sep 15 12:08:38 1997    <irfan@TWOSTEP>
5265         * ace/Reactor (register_handler): Originally this interface was
5266           available for all platforms, but because ACE_HANDLE is an int on
5267           non-Win32 platforms, compilers are not able to tell the
5268           difference between
5269           register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and
5270           register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we
5271           have restricted this method to Win32 only.
5273         * ace/WFMO_Reactor.h: Removed non-Win32 version of the
5274           WFMO_Reactor. This is no longer required in the new scheme.
5276         * ace/XtReactor:
5278           Added remove_handler_i(const ACE_Handle_Set &,ACE_Reactor_Mask)
5279           to make the compiler happy.
5281           Also changed ACE_Reactor_Handle_Set to ACE_Select_Reactor_Handle_Set.
5283         * ace/Select_Reactor.cpp (ACE_Select_Reactor_Token): Added set/get
5284           select_reactor methods.
5286         * ace/OS.h (ACE_SEH_TRY): Changed ACE_SEH_TRY from nothing to
5287           "if(1)" on non-Win32 platforms. This should stop some compilers
5288           from complaining about unreachable code.
5290 Mon Sep 15 11:37:49 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
5292         * include/makeinclude/platform_hpux.GNU:
5293           Added -D_REENTRANT to enable the _r functions.
5295 Mon Sep 15 09:40:57 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
5297         * bin/auto_compile:
5298           Enabled the shared_libs_only flags to speed up compilations (and
5299           reduce disk space usage).
5301 Sun Sep 14 22:36:17 1997    <irfan@TWOSTEP>
5303         * ace/Select_Reactor.h: Added a no-op constructor for
5304           ACE_Select_Reactor_Token to make the compiler happy.
5306 Sun Sep 14 21:02:31 1997  David L. Levine  <levine@cs.wustl.edu>
5308         * all Makefiles: ran "make depend" to update all ACE Makefiles.
5310         * include/makeinclude/platform_irix6.x-32_sgic++.GNU,
5311           platform_tandem.GNU: added debug = 1, to disable ACE_NDEBUG.
5313         * ace/Acceptor.cpp: added #include of ace/Handle_Set.h so that
5314           it will compile on g++/Solaris.
5316         * ace/Managed_Object.h: added #include of ace/OS.h because
5317           ACE_Cleanup class is used.
5319         * ace/Managed_Object.cpp: only #include ace/Synch.h if
5320           ACE_TEMPLATES_REQUIRE_SOURCE is not defined.  The #include
5321           appears to be necessary with Digital Unix.  But, it causes
5322           inline functions warnings with g++, both with inlining
5323           enabled and disabled.  Circular #includes are evil :-)
5325         * ace/Select_Reactor.h: removed "," at end of DEFAULT_SIZE
5326           enum definition.
5328         * ace/Select_Reactor.i (register_handler): added ACE_UNUSED_ARGS.
5330         * ace/Select_Reactor.i: moved ACE_Select_Reactor::size () after
5331           ACE_Select_Reactor_Handler_Repository::size () to prevent use
5332           before definition.
5334         * ace/Select_Reactor.cpp: added template instantiation.
5336         * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
5337           assignments in "if" conditionals to avoid g++ warnings.
5339         * ace/Token_Manager.h: inserting missing "public" access control
5340           specifier for ACE_Cleanup.
5342         * ace/OS.{h,cpp} (gethrtime, Linux only): inlined and added Alpha
5343           support.
5345         * ace/config-linux*.h: only define ACE_HAS_PENTIUM if i386 is defined.
5347 Sun Sep 14 10:35:57 1997    <irfan@TWOSTEP>
5349         * ace/Reactor: The Reactor classes (ACE_Reactor and ACE_ReactorEx)
5350           have changed.  The motivation for this change was to allow users
5351           to program abstractly and use the most efficient implementation
5352           available on their platform.  At the same time, we wanted to
5353           make the changes required by the users kept to a minimal.
5355           Here is a layout of the new Reactor hierarchy in ACE (an example
5356           of the GOF Bridge Pattern).  Thanks to Thomas Jordan
5357           (Thomas_Jordan@deluxedata.com) for suggesting this new design.
5360                         Reactor -----> Reactor_Impl
5361                                           ^
5362                                           |
5363                                 --------------------
5364                                 ^                  ^
5365                                 |                  |
5366                          Select_Reactor         WFMO_Reactor
5368           Reactor:
5370             The Reactor class now becomes an interface class that contains
5371             a pointer to an implementation class. All methods of the
5372             Reactor class forward all calls to the appropriate
5373             implementation class.  Users can pass in their own
5374             implementation class.  If an implementation class is not
5375             supplied at creation time, the following default rules apply:
5377             On non-Win32 platforms: An instance of the Select_Reactor
5378             class will be created and used as the implementation.
5380             On Win32 platforms: An instance of the WFMO_Reactor class will
5381             be created and used as the implementation.  This default
5382             behavior can be overwritten at compile-time by setting the
5383             ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL flag. In this case, an
5384             instance of the Select_Reactor class will be created and used
5385             as the implementation.
5387           Reactor_Impl:
5389              Reactor_Impl is an abstract class (i.e., the Bridge).
5390              Select_Reactor and WFMO_Reactor inherit from this class.
5392           Select_Reactor:
5394              Previously known as the Reactor class.  This class implements
5395              the Reactor_Impl interface by using the select() system
5396              call. This implementation is available on all platforms
5397              (including Win32).
5399           WFMO_Reactor:
5401              WFMO (Wait For Multiple Objects) Reactor, previously known as
5402              the ReactorEx class.  This class implements the Reactor_Impl
5403              interface by using the WaitForMultipleObjects() system call.
5404              This implementation is currently only available on Win32
5405              platforms.
5407           Code changes for users:
5409              The higher authorities of ACE have decided that ReactorEx was
5410              a "goofy" name and made little sense in the new hierarchy.
5411              Therefore users using the old ReactorEx will have to change
5412              over to start using the Reactor class (and make sure that the
5413              implementation class being used is WFMO_Reactor).
5415              Also users that have extended Reactor or ReactorEx must
5416              now subclass from Select_Reactor or WFMO_Reactor,
5417              respectively.
5419         * ace/ReactorEx:
5421           The ReactorEx interface has been extended to be identical to the
5422           Reactor interface.  Some of these new operations will not be
5423           supported in this version.  However, we will have interface
5424           compatability at this point. This allows the creation of the new
5425           Reactor hierarchy in ACE.
5427           Removed all static (singleton) methods from ReactorEx. These are
5428           not necessary anymore since ReactorEx will become an
5429           implementation class. Reactor will take over this functionality.
5431           Changed methods names from resume_all to resume_handlers and
5432           suspend_all to suspend_handlers. This increases the similarity
5433           between ReactorEx and Reactor.
5435           Add a lock_adapter so that we can return an ACE_Lock form of our
5436           internal lock.
5438           Added signal handling capabilities to ReactorEx.
5440           Added handler, requeue_position, mask_ops, and ready_ops
5441           operations.  However, they are not supported in this
5442           version. They are mostly here for interface compatibility with
5443           Reactor.
5445           Added a size() accessor that returns the current size of the
5446           ReactorEx's internal descriptor table.
5448           Added an initialized() accessor that returns true if ReactorEx
5449           has been successfully initialized, else false.
5451         * ace/Reactor:
5453           The Reactor interface has been extended to be identical to the
5454           ReactorEx interface.  Some of these new operations will not be
5455           supported in this version.  However, we will have interface
5456           compatability at this point. This allows the creation of the new
5457           Reactor hierarchy in ACE.
5459           Added resume_handler(ACE_Handle_Set &) and
5460           suspend_handler(ACE_Handle_Set &) to the Reactor.  This
5461           increases the similarity between ReactorEx and Reactor.
5463           Add a lock_adapter so that we can return an ACE_Lock form of our
5464           internal lock. This changes the signature of the return type
5465           from ACE_Reactor_Lock to ACE_Lock.
5467           Added a size() accessor that returns the current size of the
5468           Reactor's internal descriptor table.
5470           Added wakeup_all_thread() operation. Currently it just does a
5471           notify.
5473           Added alertable_handle_events() operation.  Currently it just
5474           calls handle_events().
5476           Added register_handler (that take event handles) operations.
5477           However, they are not supported in this version. They are mostly
5478           here for interface compatibility with ReactorEx.
5480         * ace/XtReactor: Now inherits from Select_Reactor instead of
5481           Reactor.
5483         * ace/Timer_Queue_T.h: Removed the inclusion of Time_Value.h. This
5484           file does not exist anymore
5486         * ace/Synch_T (ACE_Lock_Adapter): Changed the implementation of
5487           the adapter such that the user is allowed to (optionally) pass
5488           in the locking mechanism.
5490         * ace/Strategies: Removed ACE_ReactorEx_Notification_Strategy.
5492         * ace/Service_Config: Updated Service_Config so that all ReactorEx
5493           and Proactor methods are removed. ReactorEx does not exist any
5494           longer and Proactor methods are available as statics methods on
5495           the Proactor class.
5497         * ace/OS.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): Changed
5498           ACE_DEFAULT_REACTOR_SIZE to ACE_DEFAULT_SELECT_REACTOR_SIZE.
5499           There is no default size dictated by the Reactor class anymore.
5501         * ace/Local_Tokens,Token: Added new methods: acquire_read,
5502           acquire_write, tryacquire_read, tryacquire_write.  These methods
5503           allow the Tokens to be used by the ACE_Lock_Adapter class.
5505         * ace/Handle_Set.h (MAXSIZE): Changed ACE_DEFAULT_REACTOR_SIZE to
5506           ACE_DEFAULT_SELECT_REACTOR_SIZE.  There is no default size
5507           dictated by the Reactor class anymore.
5509         * ace/Event_Handler: Removed the Proactor and ReactorEx pointers
5510           from Event_Handler.  The Proactor has its own event handler
5511           (ACE_Handler), and the ReactorEx does not exist anymore.
5513         * ace/Proactor:
5515           Changed Proactor to work with the new Reactor.
5517           Updated Proactor to bring it upto date with the recent changes
5518           to the Timer_Queue.
5520         * tests:
5522           Removed the ACE_NEW_THREAD macro. With the new thread adapter,
5523           the log stream for the new thread will automatically be set to
5524           the creator thread's stream.  Therefore, this macro is not
5525           needed.
5527           Removed the inclusion of Service_Config.h. All tests are now
5528           accessing the singletons that are supported by the class directly.
5530         * examples/Reactor/Proactor: Updated examples to use and access
5531           the new Reactor class instead of the old ReactorEx.
5533         * examples/Reactor/ReactorEx: Updated examples to use and access
5534           the new Reactor class instead of the old ReactorEx.
5536 Sun Sep 14 09:50:22 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5538         * ace/Singleton.i (ACE_Singleton): Moved the definition of the
5539           ACE_Singleton default constructor into the *.i file.  In
5540           general, it's not a good idea to put definitions in *.h files.
5542         * tests/test_config.h: Improved the #undef scheme for ACE_NDEBUG.
5544 Sat Sep 13 23:51:55 1997  Nanbor Wang  <nw1@dingo.wolfpack.cs.wustl.edu>
5546         * ace/ACE_Library.{mak,mdp}: Removed Service_Record.cpp and added
5547           Service_Type.cpp in project file.
5549         * ace/:  Removed ace.{mak,mdp} and replaced them with
5550           ACE_Library.{mak,mdp}.  MSVC 4.2 insists to change the release
5551           version DLL from our original setting "ace.{dll,lib}" to "ACE
5552           dynamic Library.{dll,lib}".  This is so far the only known
5553           method to get around this.
5555         * netsvcs/servers/servers.{dsw,dsp}: Changed the output filenames
5556           of debug version from maind.exe to main.exe.
5558         * netsvcs/lib/netsvcs.{dsw,dsp}: Changed the output filenames of
5559           debug version from netsvcsd.{dll,lib} to netsvcs.{dll,lib}.
5561         * ace/ace.dsw:
5562         * ace/ace_{dll,lib}.dsp: Removed Service_Record.cpp and added
5563           Service_Type.cpp.
5565         * ace/Log_Msg.cpp (open): Fixed a typo.
5567         * ace/Reactor.cpp: Fixed a typo.
5569 Sat Sep 13 17:23:22 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5571         * ACE version 4.3.6, released Sat Sep 13 17:23:22 1997.
5573 Sat Sep 13 12:11:50 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5575         * tests: #include "test_config.h" before all the other files so
5576           that we always have the ACE_ASSERT enabled...  Thanks to Carlos
5577           for noticing this.
5579         * ace/Reactor.cpp: Added Arturo's improvements for suspending and
5580           resuming Event_Handlers.
5582         * tests/Reactors_Test.cpp: As a result of the new changes to
5583           ACE_Thread_Manager, the Reactors_Test now seems to be working
5584           fine.
5586         * ace/Thread_Manager.cpp (append_thr): When we append a new
5587           Thr_Descriptor make sure to zero-out the cleanup_info_ fields
5588           since otherwise horrible things will happen...
5590         * ace/Reactor: Added a new ACE_Reactor_Handle_Set called
5591           suspend_set_ and updated the suspend_i() and resume_i() method
5592           to use this set to store the ready bits that are enabled when we
5593           suspend and resume and Event_Handler, respectively.  Thanks to
5594           Arturo for this suggestion.
5596         * tests/TSS_Test.cpp (main): Had to move the allocation and
5597           deletion of TSS_Error into the ACE_HAS_THREADS section since
5598           otherwise this test doesn't work when threading is disabled.
5600         * tests/Thread_Manager_Test.cpp: Move the template specialization
5601           inside of the ACE_HAS_THREADS macro since otherwise this test
5602           doesn't work when threading is disabled.
5604         * ace/Thread_Manager.cpp: Arrgh!  Must initialize the cleanup_info
5605           fields to 0 in the constructor for ACE_Thread_Descriptor!  This
5606           should fix a nasty bug...
5608         * tests/Async_Timer_Queue_Test.cpp: Continued to improve the
5609           documentation in the test of the ACE_Async_Timer_Queue_Adapter.
5611         * ace/Timer_Queue_T.cpp (schedule): Oops, must pass &this->mask_
5612           to ACE_Sig_Set rather than this->mask_.
5614         * ace/Object_Manager.cpp: Changed #include
5615           "ace/Service_Repository.h" to #include "ace/Service_Config.h"
5616           since we now call ACE_Service_Config::close().
5618         * ace/Service_Types: Removed a nasty circular dependency by simply
5619           having each of the ACE_Service_Type_Impl subclasses take const
5620           void *'s rather than their specific type (i.e., ACE_Stream or
5621           ACE_Module, etc.).  This turns out not to be a problem since we
5622           treated them as const void *'s internally anyhow...
5624         * ace/Strategies_T.cpp: Fixed a bug in ACE_DLL_Strategy:
5626           ACE_Service_Type_Impl stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_);
5628           should be
5630           ACE_Service_Type_Impl *stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_)
5632           I wonder how this ever compiled?!
5634 Fri Sep 12 13:26:50 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5636         * ace/Mem_Map.cpp (close): Removed the following code in the
5637           close() method that appears to be redundant with the code in
5638           unmap():
5640               if (this->file_mapping_ != this->handle_
5641                   && this->file_mapping_ != ACE_INVALID_HANDLE)
5642                 ACE_OS::close (this->file_mapping_);
5644           Also cleaned up the close() code so that it doesn't try to close
5645           the handle multiple times, even if close() is called more than
5646           once.  Thanks to Beged-Dov <begeddov@proaxis.com> for reporting
5647           this.
5649         * tests/Async_Timer_Queue_Test.cpp: Improved the structure of the
5650           program and finished implementing the new feature that makes it
5651           possible to avoid blocking SIGQUIT.
5653         * ace/Timer_Queue_T: Added support for an ACE_Sig_Set that can be
5654           passed into the constructor of ACE_Async_Timer_Queue_Adapter.
5655           This will enable us to selectively block only certain signals.
5657         * ace/Signal: Added a new constructor for ACE_Sig_Set that takes
5658           ACE_Sig_Set * and also improved the documentation of the
5659           constructor interfaces.
5661 Fri Sep 12 13:46:04 1997  David L. Levine  <levine@cs.wustl.edu>
5663         * ace/OS.[hi],Log_Msg.h,config-lynxos.h,
5664           include/makeinclude/platform_lynxos.GNU: added LynxOS port,
5665           provided by Dave Mayerhoefer <davem@lynx.com>.  Note how few
5666           files were affected.  What's even more amazing is the very small
5667           number, 8, of very minor code changes to OS.[hi] and Log_Msg.h.
5668           This is a tribute to the maturity of
5669           <a href="http://www.lynx.com>LynxOS</a>, a POSIX-conforming,
5670           multiprocess, and multithreaded real-time operating system.
5671           And to the maturity of ACE.
5673 Fri Sep 12 12:53:20 1997  David L. Levine  <levine@cs.wustl.edu>
5675         * ace/config-osf1-4.0.h: added
5676           ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR.
5678         * ace/Managed_Object.cpp: added #include "ace/Synch.h".
5680         * ace/Strategies_T.cpp: added #include "ace/Service_Types.h".
5682         Thanks to James Johnson for the three fixes above.
5684         * ace/Service_Types.cpp: #include Service_Types.i instead of
5685           Service_Record.i.
5687         * ace/Synch_T.cpp: added #include "ace/Log_Msg.h".  I don't know
5688           what change caused this to be necessary, but tests/TSS_Test
5689           wouldn't build without it.
5691         * ace/Log_Msg.cpp (instance): preallocate ACE_Log_Msg instance lock.
5693 Thu Sep 11 21:07:25 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5695         * ace/Service_Object.h: Moved the ACE_Service_Type class into the
5696           Service_Object.h file since this is "publically" visible to
5697           applications.
5699         * ace/Service_Types.h: Improved the documentation of the
5700           ACE_Service_Type subclass implementations.
5702         * ace/Service_Types: Changed the name next_ to link_ to be
5703           consistent with the accessor name.
5705         * ace: Renamed Service_Record.{h,i,cpp} to Service_Types.{h,i,cpp}
5706           to reflect the recent change in names.
5708         * ace/Service_Object.h: Renamed ACE_Service_Type to
5709           ACE_Service_Type_Impl and ACE_Service_Record to ACE_Service_Type
5710           in order to emphasize the use of the Bridge pattern.  Thanks to
5711           Eric Newton for motivating this.
5713         * ace/Svc_Conf.y: Removed the warning about Service name being
5714           different from Module name.  I'm not sure why this was
5715           complaining in the first place.  Thanks to Eric Newton for
5716           pointing this out.
5718         * netsvcs/lib/README: The entry point for the time service client
5719           is _make_ACE_TS_Clerk_Processor and not
5720           _make_ACE_TS_Clerk_Connector.  Thanks to Ivan for pointing this
5721           out.
5723 Thu Sep 11 10:59:12 1997    <nw1@CHA-CHA>
5725         * ace/Connector.cpp (handle_output): Increased the idle time
5726           before we check the status of a non-blocking connection from 1
5727           ms to 35 ms when ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS is
5728           defined (i.e., Win32.)  This is very odd but wait a whole lot
5729           longer seems to solve the problem.
5731         * ace/Log_Msg.cpp (close): On Win32, ACE_Log_Msg_Manager needs to
5732           delete main thread's ACE_Log_Msg instance also.
5734 Thu Sep 11 10:37:00 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
5736         * ace/ACE.cpp:
5737         * ace/INET_Addr.cpp:
5738         * ace/Log_Msg.h:
5739         * ace/Memory_Pool.h:
5740         * ace/OS.h:
5741         * ace/OS.i:
5742         * ace/Parse_Node.cpp:
5743         * ace/Strategies_T.h:
5744         * bin/clone.cpp:
5745         * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h:
5746           I checked the use of MAXNAMELEN vs. MAXPATHLEN; all buffers
5747           intended to keep full filenames should have at least
5748           MAXPATHLEN+1 chars.
5749           Only buffers that will keep basenames (without any directories)
5750           should have MAXNAMELEN+1 bytes.
5751           I also added a new macro ACE_MAX_FULLY_QUALIFIED_NAME_LEN which
5752           is the maximum number of characters for a fully qualified
5753           internet hostname.
5754           There remain one obscure usage of these macros in ace/Malloc.h
5755           and Local_Naming_Space_T.{h,cpp}, but a quick fix broke
5756           something, I will try again soon.
5758 Thu Sep 11 08:52:36 1997  David L. Levine  <levine@cs.wustl.edu>
5760         * ace/OS.cpp (thr_key_detach): check to see if the
5761           ACE_TSS_Cleanup lock has been constructed, and not
5762           destructed, before attempting to use it.  Statics are evil.
5764         * ace/Log_Msg.cpp (~ACE_Log_Msg): release guard before calling
5765           ACE_Log_Msg_Manager::close (), because that deletes the lock.
5767         * ace/Managed_Object.{h,cpp} (get_object): changed type of "id"
5768           to int because it will often be passed an enum.  Pass "id" by
5769           value to get_object (int id), for preallocated objects.
5771         * ace/Object_Manager.{h,cpp}: added ACE_LOG_MSG_INSTANCE_LOCK,
5772           and ACE_PREALLOCATE_OBJECT macro.
5774         * include/makeinclude/wrapper_macros.GNU: ignore shared_libs_only
5775           in modules that only build a static lib.  Fixed shared_libs_only
5776           by removing OBJDIRS, unless BIN is undefined, and VDIR.  Removed
5777           SHOBJ from both shared_libs_only and static_libs_only because
5778           they're unused.
5780         * include/makeinclude/rules.local.GNU: added lib*.*_pure* to
5781           clean.local target, to remove Purified libraries.
5783         * examples/Connection/non_blocking/Makefile,
5784           examples/Service_Configurator/IPC-tests/server/Makefile:
5785           removed -L./ from LDFLAGS because it's redundant:
5786           wrapper_macros.GNU adds it.
5788 Wed Sep 10 22:58:10 1997  Douglas C. Schmidt  <schmidt@mambo.cs.wustl.edu>
5790         * ace/Thread_Manager.cpp (exit): Reordered the code so that it
5791           will keep the lock held long enough to copy out the thread exit
5792           hook but will release the lock before calling this hook.
5794 Wed Sep 10 11:04:08 1997  David L. Levine  <levine@cs.wustl.edu>
5796         * ace/config-sunos5.5-g++.h: added
5797           ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
5799         * include/makeinclude/wrapper_macros.GNU: added PIC= with
5800           static_libs_only, and added list of supported make flags.
5802         * include/makeinclude/wrapper_macros.GNU: added support for
5803           debug=0, etc.  Also, made debug, optimize, and profile
5804           flags independent instead of exclusive.  Thanks to Per
5805           Andersson for suggesting this.
5807         * include/makeinclude/platform_*.GNU: replaced "CFLAGS +=
5808           $(DCFLAGS) with debug=1 so that debugging can easily be
5809           disabled.  Thanks to Per Andersson and James CE Johnson
5810           for noticing this deficiency.
5812         * include/makeinclude/platform_vxworks5.x_g++.GNU: removed
5813           "-I. -I$(ACE_ROOT)" from CFLAGS because it duplicates the
5814           INCLDIRS set in wrapper_root.GNU.
5816 Wed Sep 10 10:35:06 1997  David L. Levine  <levine@cs.wustl.edu>
5818         * ACE version 4.3.5, released Wed Sep 10 10:35:06 1997.
5820 Wed Sep 10 10:25:41 1997  David L. Levine  <levine@cs.wustl.edu>
5822         * ace/Thread_Manager.cpp (exit): copy the thread exit hook before
5823           releasing the guard, and call it after releasing the guard.
5825         * examples/Shared_Malloc/test_malloc.cpp (spawn): added (char *)
5826           cast of slave_name () to avoid compilation warnings on Solaris.
5828 Wed Sep 10 00:43:04 1997  Nanbor Wang  <nw1@dingo.wolfpack.cs.wustl.edu>
5830         * ace/Makefile: Added Managed_Object to template sources.
5832         * ace/Object_Manager.{h,cpp}: * ace/Managed_Object.{h,cpp}:
5833           Separate ACE_Managed_Object to a new set of file.
5835 Tue Sep  9 23:41:56 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5837         * tests/Reactors_Test.cpp (main): Check to see if wait() returns
5838           -1 and then test to see what's gone wrong!
5840         * ace/OS.h: Added a "fake" #define for SIGALRM so that programs
5841           will *compile* on platforms like Chorus.  Thanks to Wei Chiang
5842           for reporting this.
5844         * examples/Shared_Malloc/test_malloc.cpp (spawn): HP/UX doesn't
5845           seem to like const char *const argv[] being given an initializer
5846           list.  I've fixed this to be just plain ol' char *argv[].
5847           Thanks to Sandro Doro for reporting this.
5849         * ace/Handle_Set.i (clr_bit): Replaced SOCKET with ACE_SOCKET so
5850           this will compile on UNIX.
5852 Tue Sep 09 17:16:21 1997    <irfan@TWOSTEP>
5854         * ace/Proactor: Updated Proactor to bring it upto date with the
5855           recent changes to the Timer_Queue.
5857         * ace/Handle_Set.i (clr_bit and set_bit): These methods now change
5858           the size_ member of the class on Win32.  This is necessary since
5859           the ACE_Handle_Set::operator fd_set *() accessor has been
5860           optimized for size_ == 0.
5862 Tue Sep 09 09:14:07 1997  David L. Levine  <levine@cs.wustl.edu>
5864         * ace/OS.cpp (cleanup_tss): On WIN32 and with ACE_HAS_TSS_EMULATION,
5865           delete the ACE_TSS_Cleanup instance instead of registering it for
5866           cleanup via the ACE_Object_Manager's at_exit ().  This should allow
5867           applications to use ACE_Log_Msg in their at_exit () hooks.  Thanks
5868           to Wei Chiang <chiang@tele.nokia.fi> for reporting this problem.
5870         * ace/Object_Manager.{h,cpp}: added guard of internal structures.
5871           (dtor): call at_exit hooks before calling cleanup_tss, now that
5872           the ACE_TSS_Cleanup instance is no longer registered for an at_exit
5873           call.  (at_exit): set errno instead of returning different values
5874           on error.  Added ACE_Managed_Object template class, intended for
5875           use in replacing static instances.
5877         * ace/Thread_Manager.cpp (exit): release guard before running the
5878           thread exit hooks.  This should help avoid deadlocks, in case
5879           one of those hooks needs to operate on the Thread_Manager.
5881         * ace/CORBA_Handler.{h,cpp},Dump.{h,cpp},Object_Manager.{h,cpp}:
5882           preallocate locks for CORBA_Handler and Dump in ACE_Object_Manager.
5883           Statics are evil.
5885         * ace/Synch.{h,cpp},OS.cpp,Object_Manager.{h,cpp}: removed
5886           ACE_TSS_Cleanup_Lock and replaced it with a preallocated mutex
5887           in OS.cpp.  Thanks to Nanbor for reporting problems at shutdown
5888           with the old ACE_TSS_Cleanup_Lock static instance.
5890         * include/makeinclude/platform_sunos5_sunc++.GNU: when building
5891           libraries only, don't use CC to create individual .shobj/*.so
5892           files.  The .so files are not needed to build libraries, because
5893           libraries are built with -G.  (They are needed to avoid upsetting
5894           the ACE make rules, so they're created as links to their
5895           corresponding .o files.)  The .so files are still needed when
5896           building executables in order to get all template instantiations.
5898         * include/makeinclude/platform_sunos5_g++.GNU: removed unused
5899           SOLINK definitions.
5901 Mon Sep  8 18:38:22 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5903         * tests/Handle_Set_Test.cpp: It is possible for the order to get
5904           the handles (using the iterator) will not agree with insert
5905           order in ACE_Unbounded_Queue. It's best to use
5906           ACE_Unbounded_Set.  Thanks to Arturo for this fix.
5908 Mon Sep  8 17:43:43 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5910         * ace/Timer_{List,Wheel,Hash,Heap}_T.cpp: The iter() method now
5911           returns a pointer to an iterator that is in a reset state
5912           instead of an unknown one.
5914 Mon Sep  8 14:05:15 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
5916         * ace/ACE.cpp (read_adapter): Removed ACE_Thread_Control object in
5917           this function.  This is now taken care of by ACE_Thread_Manager.
5918           (register_stdin_handler): This function no longer uses
5919           ACE_Stdin_Args to pass in thread manager into read_adapter.
5921         * ace/ACE.h (ACE): Removed class ACE_Stdin_Args, because it is no
5922           longer needed.
5924 Mon Sep 08 11:49:02 1997  David L. Levine  <levine@cs.wustl.edu>
5926         * tests/run_tests.sh: moved log file checks out to separate file,
5927           run_tests.check.
5929         * tests/run_tests.vxworks: added one-button test for VxWorks.
5930           Check it out, Darrell.
5932         * ace/Filecache.cpp: commented out unused constants [RW]COPY_FLAGS.
5934 Mon Sep 08 08:26:52 1997  David L. Levine  <levine@cs.wustl.edu>
5936         * ACE version 4.3.4, released Mon Sep 08 08:26:52 1997.
5938 Sat Sep  6 10:41:17 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
5940         * ace/Malloc.h:
5941           sizeof() must be casted to int in ACE_CONTROL_BLOCK_ALIGN_LONGS
5942           otherwise unsigned int arithmetic is used, thus obtaining
5943           unexpected results.
5945 Sat Sep 06 09:07:02 1997  David L. Levine  <levine@cs.wustl.edu>
5947         * OS.{h,cpp}: added ACE_Cleanup base class and
5948           ace_cleanup_destroyer adapter.
5950         * Object_Manager.*: added at_exit () interface for ACE_Cleanup objects.
5952         * Singleton.{h,cpp},Token_Invariants.{h,cpp},Token_Manager.{h,cpp}:
5953           base on ACE_Cleanup, so that simpler ACE_Object_Manager::at_exit ()
5954           can be used.
5956         * performance-tests/Misc/Makefile: moved $(BIN) files from FILES
5957           to SRC so that they don't get put into libPerf.
5959 Sat Sep  6 02:36:31 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
5961         * tests/test_config.h (set_output): Added openning flag ios::trunc
5962           explicitly if we are not appending to the opening ofstream.
5963           This is required by standard CPP iostream libraries on NT (i.e.,
5964           we can't use ios::out alone when ofstream.open a file.)
5966 Sat Sep  6 00:21:33 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5968          * ace/Synch_T.h: Added new constructors:
5970            ACE_Guard(ACE_LOCK& l) : lock_(&l)
5971            { this->owner_ = this->acquire(); }
5973            ACE_Read_Guard(ACE_LOCK& m) : ACE_Guard(&m)
5974            { this->owner_ = this->acquire_read(); }
5976            ACE_Write_Guard(ACE_LOCK& m) : ACE_Guard(&m)
5977            { this->owner_ = this->acquire_write(); }
5979            Remove default argument to current Guard classes.
5981            ACE_Guard(ACE_LOCK&l, int block)
5982            ACE_Read_Guard(ACE_LOCK& m, int block)
5983            ACE_Write_Guard(ACE_LOCK&m, int block)
5984            with the current semantic.
5986            This change allows OS platforms with
5987            ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION or ACE_HAS ??? PRAGMA
5988            ???, to> invoke common case constructor in a more efficient
5989            way.  Thanks to Arturo for this.
5991         * ace/Synch_T.h: ACE_Guard's destructor should be:
5993           ~ACE_Guard() { this->release(); }
5995           and not
5997           ~ACE_Guard() { if (this->owner_ != -1) this->release(); }
5999           because ACE_Guard::release has this test.  Thanks to Arturo for
6000           reporting this.
6002         * ace/ARGV.cpp: Declared the char* parameters for the ACE_ARGV
6003           class constructors as const.  Since they are copied in the
6004           constructors, this is a safe thing to do.  This makes it easier
6005           to pass the result of string::c_str() to it.  Thanks to Stephen
6006           Coy <stevec@magna.com.au> for this suggestion.
6008         * ace/Thread_Manager.cpp: We were missing a Guard in the
6009           ACE_Thread_Manager::at_exit() method.
6011         * ace/config-sunos5.5-sunc++-4.x.h: It appears that we need to set
6012           ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS for Solaris 2.5 since otherwise
6013           wierd things happen randomly.  This is based on the following man
6014           page entry for pthread_exit():
6016           Do not call pthread_exit() from a cancellation cleanup handler
6017           or destructor function that will be invoked as a result of
6018           either an implicit or explicit call to pthread_exit().
6020         * ace/Thread_Manager.cpp (run_thread_exit_hooks): Once the cleanup
6021           hook(s) are called we set the value of the cleanup hook variable
6022           to 0 to avoid false matches later on.
6024 Fri Sep  5 21:57:44 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
6026         * ace/Containers.i (is_empty):
6027         * ace/Malloc.cpp (instance): Commented out ACE_TRACE in these
6028           routines.  They were causing recursive call if we used TRACE.
6029           Thanks to Craig Perras <craig.perras@CyberSafe.COM> for solving
6030           this.
6032         * ace/Handle_Set.i (fd_set *): Added conditional compilation code
6033           for Win32 platforms.  This is because we don't maintain <size_>
6034           on Win32 and, therefore, can't depend on it.
6036 Fri Sep  5 19:05:02 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6038         * tests/Thread_Manager_Test.cpp (main): moved delete
6039           signal_catcher into the ACE_HAS_THREADS part of the main()
6040           function.
6042         * ace/Reactor.cpp (check_handles): When handle_error was optimized
6043           with fstat we put NULL value to second argument.  It requires a
6044           value to SCO OpenServer to work.  Therefore, I added struct stat
6045           temp and changed ACE_OS::fstat(handle, NULL) by
6046           ACE_OS::fstat(handle, &temp);  Thanks to Arturo for fixing this.
6048         * examples/Threads/process_manager.cpp (sig_handler): Fixed a bug
6049           where the thread was exiting if no more children existed.
6050           Thanks to Avraham Nash <ANash@Engagetech.com> for reporting
6051           this.
6053         * ace/Handle_Set: Added the following performance enhancements:
6055           . Assignment operator to optimize size == 0.
6057           . min_handle to manage the case when the Handle_Set start in
6058             handle different of zero.
6060           . A new iterator algorithm tuned for select function calls.
6062           Thank to Arturo for these enhancements.
6064         * ace/config-aix-4.1.x.h: Added ACE_LACKS_TIMESPEC_T.  Thanks to
6065           Rob Head (rhead@virtc.com) for reporting this.
6067         * ace/OS.cpp (fork_exec): Changed the logic so that we don't
6068           create a new console window on Win32.  This isn't done on UNIX,
6069           so there's no point in doing it here.  Thanks to Jeff Richard
6070           <jrichard@OhioEE.com> for pointing this out.
6072         * ace/Reactor.cpp: The call to
6073           ACE_Reactor_Handler_Repository::open() in the constructor of
6074           ACE_Reactor should check for == -1!  Thanks to Brian Mendel for
6075           reporting this.
6077         * ace/Reactor.cpp (remove_handler): Fixed a braino where the
6078           conditional compile for NSIG should have been > 0 rather than ==
6079           0.  Thanks to fixing this codeKaren Amestoy
6080           <kamestoy@CCGATE.HAC.COM> for reporting this fix.
6082 Fri Sep 05 16:17:50 1997  David L. Levine  <levine@cs.wustl.edu>
6084         * performance-tests/Misc/preempt.cpp: added command line options,
6085           and explanation on how to interpret the results.
6087 Thu Sep 04 10:26:11 1997  David L. Levine  <levine@cs.wustl.edu>
6089         * ace/OS.cpp: (tss_open): removed paren from around type in "new"
6090           statement, because GHS (and ANSI C++) compilers will choke on it.
6091           Thanks to Brian Mendel <brian.r.mendel@boeing.com> for reporting
6092           this.
6094         * ace/Thread_Manager.cpp: (ACE_Thread_Descriptor ctor): zero out
6095           cleanup_hook_ in cleanup_info_ because we read it later on.
6096           (dump): added guard because thr_table_ is accessed.  (wait):
6097           hacked in thr_yield () to give waited threads a chance to clean
6098           up before continuing.
6100         * ace/OS.h (ACE_Cleanup_Info): added default ctor.
6102         * ace/Log_Msg.cpp (close): delete main thread's Log_Msg instance,
6103           on Solaris if ACE_HAS_EXCEPTIONS is not defined, because main
6104           thread TSS dtors apparently don't get called.
6106         * ace/Token_Manager.{h,cpp}: register ACE_Token_Manager singleton
6107           for deletion with ACE_Object_Manager.
6109         * ace/Token_Invariants.{h,cpp}: register ACE_Token_Invariant_Manager
6110           singleton for deletion with ACE_Object_Manager.
6112         * ace/Naming_Context.cpp (close) moved deletion of "name_options_"
6113           from dtor to close (), because when Service_Repository is closed,
6114           it calls close () instead of deleting the service.
6116         * ace/Process_Strategy.cpp (handle_signal): suppress printouts during
6117           shutdown, to prevent using ACE_Log_Msg while it's being deleted.
6119         * ace/Timer_List.cpp: replace ACE_Recursive_Thread_Mutex with
6120           ACE_SYNCH_RECURSIVE_MUTEX, for non-threaded platforms.
6122         * tests/Reactors_Test (~Test_Task): moved ASSERT after the printout,
6123           so we can see why it failed.  (svc): added printout with thread ID.
6124           (main): deleted reactor at end of test to prevent leak.
6126         * tests/SPIPE_Test (client): increased sleep time to 10 sec,
6127           because a long delay is needed with Purify.
6129         * tests/UPIPE_Test (connector): added 5 second sleep to give
6130           acceptor a chance to start up.
6132         * include/makeinclude/wrapper_macros.GNU: added -max_threads=100 to
6133           Quantify options.
6135         * include/makeinclude/rules.local.GNU: added *.sym to clean target.
6137 Thu Sep 04 09:39:08 1997  David L. Levine  <levine@cs.wustl.edu>
6139         * ACE version 4.3.3, released Thu Sep 04 09:39:08 1997.
6141 Thu Sep 04 08:48:13 1997  David L. Levine  <levine@cs.wustl.edu>
6143         * include/makeinclude/wrapper_macros.GNU: added shared_libs_only
6144           and static_libs_only build options.  Only static_libs_only
6145           has been tested successfully.
6147         * include/makeinclude/rules.lib.GNU: added INSTALL support for
6148           shared_libs_only and static_libs_only.
6150         * include/makeinclude/platform_vxworks*.GNU: use static_libs_only.
6152         * ace/OS.cpp: moved tss_open ()/tss_close () calls from invoke ()
6153           to ace_thread_adapter.
6155         * examples/Threads/auto_event.cpp,manual_event.cpp,
6156           process_manager.cpp,reader_writer.cpp,tss2.cpp:
6157           cast spawn entry point to ACE_THR_FUNC.
6159         * examples/Threads/task_four.cpp (Invoker_Task): rearranged
6160           initializers to match declaration order.
6162         * examples/Threads/thread_specific.cpp (worker): use
6163           ACE_OS::printf () instead of printf (), and print out the
6164           ACE_hthread_t instead of the ACE_thread_t.
6166         * examples/IPC_SAP/SPIPE_SAP/client.cpp,consumer_msg.cpp,
6167           consumer_read.cpp,producer_msg.cpp,producer_read.cpp,server.cpp:
6168           moved #include of shared.h inside ACE_HAS_STREAM_PIPES protection
6169           to avoid compilation warnings on unsupported platforms.
6171         * examples/Reactor/Ntalker/ntalker.cpp (main): removed unused "argc".
6173         * examples/*/*.cpp,netsvcs/clients/Tokens/mutex/test_mutex.cpp:
6174           added args to main ().
6176 Wed Sep  3 21:38:18 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
6178         * ace/config-irix6.x-sgic++.h:
6179           IRIX uses pthread_sigmask to manage per-thread signal mask,
6180           thanks to Gonzalo Diethelm (gonzo@ing.puc.cl) for pointing out
6181           this one.
6183         * ace/OS.h:
6184           Removed an initial '#' for a comment line, thanks to Gonzalo
6185           Diethelm (gonzo@ing.puc.cl) for pointing out this one.
6187         * ace/Timer_Hash_T.cpp:
6188         * ace/Timer_Hash_T.h:
6189         * ace/Timer_Heap_T.cpp:
6190         * ace/Timer_Heap_T.h:
6191         * ace/Timer_List.cpp:
6192         * ace/Timer_List_T.cpp:
6193         * ace/Timer_List_T.h:
6194         * ace/Timer_Queue_T.cpp:
6195         * ace/Timer_Queue_T.h:
6196         * ace/Timer_Wheel_T.cpp:
6197         * ace/Timer_Wheel_T.h:
6198           In the word of its author: Modified the iterators kept in
6199           each of these classes so that they are constructed
6200           dynamically on the heap after the Queue has been properly
6201           initialized. Otherwise, the iterators try to iterate over a
6202           non-initialized queue, and fail miserably (usually dumping
6203           core).  Once more thanks to Gonzalo Diethelm
6204           (gonzo@ing.puc.cl) for this changes.
6206         * tests/UPIPE_SAP_Test.cpp:
6207           Gonzalo improved the error message.
6209         * ace/README:
6210           Gonzalo updated the documentation for some macros.
6212 Wed Sep 03 15:21:46 1997  David L. Levine  <levine@cs.wustl.edu>
6214         * ace/OS.h: define ACE_TSS macros with ACE_HAS_TSS_EMULATION,
6215           and renamed some ACE_TSS_Emulation methods.
6217         * ace/OS.i: allow TSS_Emulation storage to be on thread stack,
6218           instead of always dynamically allocating it.
6220         * ace/OS.cpp (ACE_Thread_Adapter::invoke): allocate TSS_Emulation
6221           storage on thread stack.  (ACE_TSS_Cleanup::exit): only call
6222           a TSS destructor if the thread's value is non-zero.
6224         * ace/Thread_Manager.cpp: support TSS_Emulation.
6226         * ace/Thread_Manager.cpp (resize): zero out unused cleanup_hooks
6227           in thr_table_; (run_thread_exit_hooks): check for zero cleanup
6228           hook before calling.
6230         * ace/Synch_T.*: allow ACE_HAS_TSS_EMULATION _or_
6231           ACE_HAS_THREAD_SPECIFIC_STORAGE.
6233         * ace/Object_Manager.{h,cpp}: allocate main thread's TSS_Emulation
6234           storage in the ACE_Object_Manager instance.
6236         * ace/Log_Msg.h: befriend ACE_OS::cleanup_tss () instead of
6237           ACE_Object_Manager, because the cleanup path is now indirect
6238           from the ACE_Object_Manager.
6240         * ace/Log_Msg.cpp: use TSS_Emulation on VxWorks, so
6241           VxWorks-specific code was removed.
6243         * ace/Task.cpp: removed unused #include of ace/Dynamic.h.  (It had
6244           been used for template instantiations, but they were moved.)
6245           Also, removed unused #include of ace/Object_Manager.h.
6247         * ace/Svc_Handler.{h,cpp}: register Svc_Handler singleton for
6248           deletion with the ACE_Object_Manager.
6250         * tests/Process_Strategy_Test (Options): added a destructor so that
6251           the dynamically allocated concurrency_strategy_ can be deleted.
6253 Wed Sep  3 08:05:26 1997  Steve Huston  <shuston@riverace.com>
6255         * ace/Message_Block.h: Corrected comment on release(void) - the
6256           underlying ACE_Data_Block's refcount is decremented; the
6257           ACE_Message_Block is always deleted.
6259 Tue Sep  2 18:26:22 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
6261         * ace/Task: Revised the ACE_Task_Base::svc_run() method to
6262           register a thread exit hook (ACE_Task_Base::cleanup())
6264         * ace/Task: Added a static method called cleanup() that can serve
6265           as a thread exit hook to ensure that close() is always called
6266           when a task exits a thread.
6268         * ace/Thread_Manager: Added the first-cut implementation of the
6269           thread exit hooks.  This one is butt-simple -- just allowing a
6270           single hook per-thread, but that should be enough to get us over
6271           the hump...
6273         * ace/OS.h: Moved the object_info_t type from Object_Manager.h and
6274           renamed it to ACE_Cleanup_Info since we will use it with the
6275           Thread_Manager and the Object_Manager.
6277         * ChangeLog-97b: Emptied out the ChangeLog-97b file until
6278           we move the ChangeLog to this file...
6280         * ace/OS.h: Moved the <ACE_CLEANUP_FUNC> typedef from the
6281           ACE_Object_Manager into global scope so that it can also be used
6282           by the ACE_Thread_Manager.
6284         * ace/DEV_IO: Moved the get_remote_addr() and get_local_addr()
6285           from the DEV class to the DEV_IO class, which seems to be more
6286           consistent with how they should be used.
6288         * ace/FILE_IO: Added the get_remote_addr() and get_local_addr()
6289           methods to FILE_IO.  Now we should be able to use this with the
6290           Connector pattern.  Thanks to Stephen Coy
6291           <coys@mail.ns.wsa.com.au> for reporting this.
6293         * ace/DEV_Connector*h, ace/FILE*.h: Added "traits" for PEER_ADDR
6294           and PEER_STREAM.  Now we should be able to use this with the
6295           Connector pattern.  Thanks to Stephen Coy
6296           <coys@mail.ns.wsa.com.au> for reporting this.
6298         * tests/Async_Timer_Queue_Test.cpp (main): Replaced the use of
6299           fputs() with read() so that it will be signal-safe.  Thanks to
6300           Carlos for pointing out the need for this.
6302         * ace/Task: All the complex ACE_Task_Exit logic has been moved out
6303           of the Task file and into the Thread_Manager file.  This will
6304           both simplify and generalize the behavior of cleanups on thread
6305           exit.
6307 Tue Sep  2 14:42:52 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
6309         * ace/config-chorus.h (ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR):
6310           Added this directive for Chorus uses g++.  Thanks to David
6311           Levine for pointing this out.
6313 Mon Sep 01 21:31:25 1997  David L. Levine  <levine@cs.wustl.edu>
6315         * ChangeLog-97b,Makefile,bin/create_ace_build: ChangeLog is no longer
6316           a symbolic link, but instead is the most recent ChangeLog file.
6317           ChangeLog-97b was moved to ChangeLog.
6319         * ace/Timer_Queue_T.cpp (schedule): added ACE_UNUSED_ARGs for act
6320           and interval.
6322         * ace/OS.h: changed ACE_SEH_EXCEPT and ACE_SEH_FINALLY from null
6323           to "while (0)" on all platforms except ACE_WIN32.  Thanks to
6324           Nanbor for this bit of macro wizardry.
6326         * ace/OS.i (tss_base): cast VxWorks TCB spare field to a void **&
6327           instead of a void **, because the function returns a reference
6328           to it.
6330         * ace/OS.cpp: protected definition of
6331           ACE_TSS_Emulation::tss_collection_ on VxWorks, where it's not used.
6333         * ace/OS.cpp (ACE_Thread_Adapter::invoke) don't exit the thread
6334           with TSS_EMULATION, except on WIN32.  (thr_create) On VxWorks,
6335           use thread adapter as entry point instead of func (via macros).
6337         * ace/config-vxworks*.h: added ACE_HAS_TSS_EMULATION, with
6338           ACE_DEFAULT_THREAD_KEYS set to 16, and ACE_LACKS_UNIX_SIGNALS.
6340         * tests/Async_Timer_Queue_Test.cpp: added template instantiations.
6342         * tests/IOStream_Test.cpp: no longer need to dynamically allocate
6343           the ACE_SOCK_IOStreams with the recent ACE_Thread_Manager changes.
6344           That was causing occasional problems with unsafe deletion of the
6345           underlying ostreams.  Thanks to James Johnson for consulting on
6346           this intermittent (nasty) problem.
6348         * tests/SPIPE_Test.cpp: (main) added ACE_UNUSED_ARG of client
6349           and server.
6351         * tests/Thread_Manager_Test (worker): added ACE_UNUSED_ARG (thr_mgr)
6352           if ACE_LACKS_UNIX_SIGNALS, and added template instantiations.
6354         * tests/Thread_Manager_Test.cpp: dynamically allocate the
6355          signal_catcher so that we can destroy it before the main
6356          thread's TSS is cleaned up.
6358         * tests/TSS_Test.cpp: dynamically allocate TSS_Error so that we
6359           can ensure its deletion before that of ACE_Object_Manager.
6360           Also, makde the code a little easier to change the number of threads.
6362         * include/makeinclude/wrapper_macros.GNU: added Purify options to
6363           ignore SIGINT and set max threads to 100.
6365 Mon Sep  1 10:53:39 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6367         * ace/Handle_Set: Added an assignment operator that is optimized
6368           for the case when the right-hand side is 0.
6370         * ace/OS: The ACE_THR_C_FUNC macro was confusing for Win32.  We've
6371           replaced this with the original UNIX typedef and will just use
6372           LPTHREAD_START_ROUTINE for Win32.
6374         * tests/Thread_Manager_Test.cpp (main): Revised this test so that
6375           we don't have race conditions for suspend() and resume().
6377         * tests/Tokens_Test.cpp (run_test): Removed the use of
6378           THR_SUSPENDED and resume_all() since this is broken due to race
6379           conditions and other hazards implicit in using suspend() and
6380           resume() on threads.
6382         * ace/Handle_Set.cpp: There were several ACE_INLINE methods in the
6383           Handle_Set.cpp file.  I've removed the ACE_INLINE flag.
6385         * tests/SPIPE_Test.cpp: If ACE doesn't have STREAM pipes on a
6386           platform (or we aren't on NT) then don't try to run this test.
6387           Thanks to James CE Johnson <ace-users@lads.com> for reporting
6388           this.
6390         * ace/config-sunos5.[45]-g++.h: ACE defines _REENTRANT in
6391           config.h.  Application using classes of ACE can conflict by
6392           using compilation option as -D_REENTRANT.  I fixed this by
6393           surrounding the define as:
6395           #if !defined (_REENTRANT)
6396           #define _REENTRANT
6397           #endif /* _REENTRANT */
6399           Thanks to Jean-Marc Strauss <strauss@limeil.cea.fr> for
6400           reporting this.
6402         * ace/Timer_Queue_T.h: We need to #include "ace/Signal.h" since
6403           our Async_Timer_Queue_Adapter needs it.  Thanks to Neil Cohen
6404           for reporting this.
6406         * ace/Reactor.cpp (check_handles): Optimized the check for invalid
6407           handles by using fstat() rather than select() on non-Win32
6408           platforms.  Thanks to Arturo for suggesting this optimization.
6410 Mon Sep  1 17:52:10 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
6412         * ace/Timer_Heap_T.cpp: Changed cancel (id ...) to check for
6413           previously expired/cancelled timers
6415 Mon Sep 01 08:43:37 1997  David L. Levine  <levine@cs.wustl.edu>
6417         * ace/Synch.cpp: added #include of Object_Manager.h.
6418           Thanks to Edan Ayal <edana@vdo.net> for reporting this.
6420 Mon Sep  1 00:46:05 1997  Nanbor Wang  <nw1@dingo.wolfpack.cs.wustl.edu>
6422         * ace/README: Added explanation for ACE_HAS_STL_MAP_CONFILICT.
6424         * ace/OS.h: Added conditional compilation directive
6425           ACE_HAS_STL_MAP_CONFLICT.  This is used when users want to
6426           compile ACE with STL library and the STL map class conflicts
6427           with map structure in <net/if.h>.
6429         * ace/config-unixware-2.1.2-g++.h:
6430         * ace/config-unixware-2.01-g++.h:
6431         * ace/config-osf1-4.0-g++.h:
6432         * ace/config-irix5.3-g++.h:
6433         * ace/config-hpux-10.x-g++.h:
6434         * ace/config-linux-pthread.h:
6435         * ace/config-linux-lxpthreads.h:
6436         * ace/config-linux.h:
6437         * ace/config-freebsd.h:
6438         * ace/config-freebsd-pthread.h:
6439           Added ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR flag for all
6440           config files which apparently use g++.
6442         * ace/config-vxworks-g++.h:
6443         * ace/config-vxworks5.x-g++.h:
6444         * ace/config-sunos4-g++.h:
6445         * ace/config-sunos5.4-g++.h:
6446         * ace/config-sunos5.5-g++.h:
6447           Moved ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR closer to
6448           other template-related directives.
6450 Sun Aug 31 22:56:30 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
6452         * ACE version 4.3.2, released Sun Aug 31 22:56:30 1997.
6454 Sun Aug 31 22:36:08 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
6456         * tests/Async_Timer_Queue_Test.cpp: Need to #include "Timer_List.h"
6457           rather than "Timer_Queue.h".
6459         * ace: Added ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT for all
6460           config.h files.
6462         * ace/Handle_Set.cpp (count_bits): Continued to optimize this
6463           method.  Now, if ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT enabled
6464           it will use a very fast loop that only runs for as many bits
6465           that are enabled in the bitset.  This approach also doesn't have
6466           to access the Global Offset Table in shared libraries, which is
6467           a win.  Thanks to Arturo for contributing this.
6469         * tests/Async_Timer_Queue_Test.cpp: Generalized this test to use
6470           the new ACE_Async_Timer_Queue_Adapter.
6472         * ace/Timer_Queue_T: Added the new ACE_Async_Timer_Queue_Adapter,
6473           which makes it possible to encapsulate any of the ACE Timer
6474           Queue mechanisms into a asynchronous signal-handling context.
6476         * ace/OS.i: If the platform doesn't support ualarm() (and it
6477           doesn't lack UNIX signals) then we'll use alarm() rather
6478           than ualarm().  Clearly, this isn't as good as ualarm(),
6479           but it's better than nothing.
6481         * ace/OS.i: I'd missed replacing
6483           ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS
6485           with
6487           ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS
6489           in OS.i.  Thanks to James CE Johnson  <ace-users@lads.com> for
6490           pointing this out.
6492 Sun Aug 31 09:58:35 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
6494         * Princess Diana was killed today in a senseless auto accident in
6495           Paris, France.  This is a very tragic ending to a very promising
6496           life ahead of her.
6498 Sun Aug 31 15:08:00 1997  David L. Levine  <levine@cs.wustl.edu>
6500         * tests/Async_Timer_Queue_Test.cpp: fixed and added some
6501           ACE_UNUSED_ARG's.
6503         * netsvcs/clients/Tokens/invariant/invariant.cpp (run_mutex,
6504             run_reader_writer),
6505           netsvcs/clients/Tokens/mutex/test_mutex.cpp (run_test),
6506           netsvcs/clients/Tokens/rw_lock/rw_locks.cpp (run_thread):
6507           removed unused argument "vp".
6509         * ace/ACE.i (log2): moved "log" declaration outside of the
6510           for loop because its used after the loop.
6512         * ace/Task.cpp (instance) only register for destruction with
6513           ACE_Object_Manager when creating a new instance_.
6515         * ace/Thread_Manager.cpp (ACE_Thread_Control::exit) with TSS
6516           emulation, don't exit the thread.  Instead,
6517           ACE_Thread_Adpater::invoke () will do it after cleaning up TSS.
6519         * ace/Synch{h,cpp}: (ACE_TSS_Cleanup_Lock) register for
6520           destruction with ACE_Object_Manager.
6522         * ace/OS.*: major cleanup of ACE_TSS_Emulation, esp. how it
6523           interacts with ACE_TSS_Cleanup::exit ().
6525 Sat Aug 30 17:30:24 1997  Steve Huston  <shuston@riverace.com>
6527         * Removed these config files:
6528                 config-hpux-10.x-aCC.h
6529                 config-hpux-10.x-decthreads.h
6530                 config-hpux-10.x-nothread.h
6531           config-hpux-10.x-hpc++.h should be used with HP compilers on
6532           HP-UX 10.x.
6534 Sat Aug 30 14:58:42 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6536         * ace/Signal.cpp (ACE_Sig_Action): Added a new constructor that
6537           also takes an ACE_Sig_Set & *and* registers the handler...
6539         * ace/Handle_Set.cpp (count_bits): Added a newly optimized
6540           algorithm for cases where
6541           ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT.  Thanks to Arturo for
6542           this suggestion.
6544         * ace/config-sco-5.0.0*.h: Added ACE_HAS_LONG_FDMASK for all the
6545           SCO files.  Thanks to Arturo for suggesting this.
6547         * ace/Signal: Added a new mutator method to reassign an
6548           ACE_Sig_Set to an ACE_Sig_Action.
6550         * ace/Handle_Set.i: If the size of the fd_set is 0 then operator
6551           fd_set *() just returns 0.  This will help to optimize the
6552           performance of the Reactor.  Thanks to Arturo for suggesting
6553           this.
6555         * ace/Handle_Set.cpp (count_bits): Added yet another improvement
6556           to remove the "i" iterator.  Thanks to Arturo for this!
6558         * ace/Log_Msg.cpp (log): Used the new ACE_Log_Record::priority()
6559           method in place of the type() method so that the priorities are
6560           handled correctly.
6562         * ace/Log_Record: Added two new methods that get/set the
6563           "priority" of an ACE_Log_Record.  This value computed as the
6564           base 2 log of the value of the corresponding ACE_Log_Priority
6565           enumeral (which are all powers of two).  We need this mapping
6566           function so that we can use the priorities as parameters to the
6567           putpmsg() function (which can only map between 0-255).  Thanks
6568           to Per Andersson for finding this stuff!
6570         * ace/ACE: Added a new method to compute the base2 logarithm of a
6571           number.
6573         * Replaced all uses of ACE_Thread_Control since this is now
6574           handled by the ACE_Thread_Manager.
6576         * ace/Thread_Manager.cpp (spawn_i): Make sure to pass "this" to
6577           the ACE_Thread_Adapter if we're constructing it in the
6578           ACE_Thread_Manager::spawn_i() method.
6580         * ace/OS.i (cond_timedwait): Added a special check to see if
6581           timeout != 0, in which case we just call ACE_OS::cond_wait().
6582           Therefore, VxWorks can now use ACE_OS::cond_timedwait(), as long
6583           as the timeout == 0!  This simplifies certain internal ACE code.
6584           Thanks to David Levine for pointing this out.
6586         * ace/Handle_Set.cpp (count_bits):  Changed the code from
6588           for (int i = 0; i < sizeof (u_long); i++)
6589             {
6590               rval += ACE_Handle_Set::nbits_[n & 0xff];
6591               n >>= 8;
6592             }
6594           to
6596           for (int i = 0; n != 0; i++)
6597             {
6598               rval += ACE_Handle_Set::nbits_[n & 0xff];
6599               n >>= 8;
6600             }
6602           in order to speed it up in the "best case."  Thanks to Arturo
6603           Montes <mitosys@colomsat.net.co> for reporting this.
6605         * ace/Thread.cpp (spawn_n): Added a test to make sure that the
6606           thread_ids is != 0 before we assign into this.
6608 Fri Aug 29 22:45:21 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
6610         * ace/config-vxworks-g++.h:
6611         * ace/config-vxworks5.x-g++.h:
6612         * ace/config-sunos4-g++.h:
6613         * ace/config-sunos5.4-g++.h:
6614         * ace/config-sunos5.5-g++.h:
6615           Added flag ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR to these
6616           config files.
6618         * ace/README: Added explanation of flag
6619           "ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR."
6620           When calling a template class'es destructor explicitly, if you
6621           must use "ptr->FOO<BAR>::~FOO ();" but not
6622           "ptr->FOO<BAR>::~FOO<BAR> ();" then, you must add this flag to
6623           your config file.
6625         * ace/OS.h (ACE_DES_FREE_TEMPLATE): Added this new macro to cope
6626           with the fact that compilers require different syntax when
6627           calling destructor of template classes explicitly.  This macro
6628           takes four arguments, POINTER, DEALLOCATOR, CLASS, and
6629           TEMPLATE_PARAMETER.  To deallocate a pointer allocated by
6630           ACE_NEW_MALLOC and you need to call FOO<BAR> class'es
6631           destructor, you'll write:
6633             ACE_DES_FREE_TEMPLATE (ptr, alloc->free, FOO, <BAR>);
6635         * ace/Containers.cpp: Changed to use ACE_DES_FREE_TEMPLATE to iron
6636           out differences among compilers.
6638 Fri Aug 29 15:31:50 1997  David L. Levine  <levine@cs.wustl.edu>
6640         * ace/OS.*,Synch.{h,cpp},Object_Manager.cpp: started adding
6641           support for TSS emulation.
6643         * ace/OS.h: declare class ostream if
6644           ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
6646         * tests/Async_Timer_Queue_Test.cpp (parse_commands): fixed
6647           sscanf format specifiers to match argument types; (main):
6648           fixed ACE_ERROR_RETURN parens; protected bulk of code with
6649           ACE_HAS_UALARM so that the test will build cleanly on
6650           platforms without it.
6652 Fri Aug 29 00:43:27 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6654         * ace/Synch.cpp (wait): Simpified the call to
6655           ACE_OS::cond_timedwait() to avoid an extra test.  Thanks to
6656           Arturo for pointing this out.
6658         * ace/TTY_IO: Added native support for TSETA.  Thanks to Arturo for
6659           this.
6661         * ace/Strategies_T.cpp: Finished integrating the ACE_DLL_Strategy
6662           implementation, which is used in TAO.  Thanks to Satheesh Kumar
6663           MG <satheesh@india.aspectdv.com> for motivating this.
6665         * ace/Synch_T.h: Clarified the constructor for ACE_TSS that takes
6666           a TYPE * as an argument.  Note that this only initializes the
6667           TSS value in the *calling* thread, but not any other threads
6668           that may come along later on.  Thanks to Bob Laferriere
6669           <laferrie@gsao.med.ge.com> for helping to clarify this.
6671         * ace/Synch_T.h: Removed stray semi-colons from some of the
6672           ACE_SYNCH_* macros.  Thanks for Wei Chiang for reporting this.
6674 Fri Aug 29 11:40:10 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
6676         * ace/OS.cpp:  Added cast for ace_thread_adapter.
6678         * ace/OS.h:  Changed name of ACE_Thread_Adapter's constructor's
6679           fourth parameter from tm to tmgr since tm conflicted with
6680           another tm.
6682         * ace/Thread_Manager.cpp: In spawn_i, changed the last parameter
6683           given to spawn to thread_args.  Also had to add a cast for
6684           ace_thread_adapter.
6686 Fri Aug 29 06:44:05 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
6688         * ace/OS.h (ACE_DES_FREE): Added this macro which will call
6689           designate destructor before freeing the memory.  This is a
6690           matching macro that should go with ACE_NEW_MALLOC and
6691           ACE_NEW_MALLOC_RETURN which allocate memory using designate
6692           allocator then call the user specified constructor explicitly.
6694         * ace/Containers.cpp: Many memory deallocations of container's
6695           nodes were changed to use the new macro which deletes objects
6696           correctly.
6698           Thanks very, very much to Ivan Murphy for torturing various
6699           test programs and reporting those tests which fail the
6700           excruciation.
6702 Fri Aug 29 01:26:38 1997    <irfan@TWOSTEP>
6704         * ace/ReactorEx.cpp: Added two new methods to ReactorEx -
6705           schedule_wakeup() and cancel_wakeup().  Also fixed some bugs
6706           related to our local copy of network_events_ not getting updated
6707           properly. Thanks to Edan Ayal <edana@vdo.net> for pointing out
6708           the two missing functions.
6710 Thu Aug 28 20:12:23 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6712         * ace/Thread_Manager.cpp: Added a new ace_thread_manager_adapter()
6713           function, which is similar to the ace_thread_adapter function
6714           used in ACE_OS::thr_create().  However, the new function ensures
6715           that threads spawned by an ACE_Thread_Manager are automatically
6716           registered and deregistered from the Thread Manager.
6718         * ace/ACE.h (inherit_log_msg): Factored out the functionality to
6719           inherit the logging features if the parent thread has an
6720           ACE_Log_Msg instance in thread-specific storage.  This function
6721           is called in several places (e.g., OS.cpp and
6722           Thread_Manager.cpp), so it pays to factor it out.
6724         * ace/OS.h (ACE_Thread_Adapter): Added a new data member that
6725           keeps track of which thread entry point function we will pass to
6726           the underlying OS thread creation routine.  The default value is
6727           ace_thread_adapter, but this can be overridden to do different
6728           things...
6730         * ace/OS,
6731           ace/Thread: Extended thr_create() so that if an
6732           ACE_Thread_Adapter is passed to it this is used in lieu of the
6733           func and arg parameters.  This reduces the amount of dynamic
6734           allocation and indirection required with the new
6735           ACE_Thread_Manager.
6737         * ace/Task.h: Removed the ACE_Thread_Control data member from the
6738           ACE_Task_Exit class since it now belongs to the
6739           ACE_Thread_Manager instead...
6741         * ace/OS.cpp: Move the ACE_Thread_Adapter out of the OS.cpp file
6742           and made it a first-class citizen of ACE.  We can put this
6743           to good use in the new ACE_Thread_Manager.
6745         * ace/OS.cpp: The ACE_Thread_Adapter is now the default behavior
6746           in ACE.  If you don't want to use it for whatever reason,
6747           you'll need to set the ACE_NO_THREAD_ADAPTER macro.
6749         * ace/config-sco-5.0.0-fsu-pthread.h: Added
6750           ACE_LACKS_CONST_TIMESPEC_PTR.  Thanks to Arturo for this.
6752         * ace/Synch.cpp (wait): Removed the reference assignment and just
6753           take the address of this->mutex_.lock_.  Also, removed the
6754           additional check for abstime == 0 in order to speed up the
6755           common case.  Thanks to Arturo for these suggestions.
6757 Thu Aug 28 20:02:03 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
6759         * ACE version 4.3.1, released Thu Aug 28 20:02:03 1997.
6761 Thu Aug 28 00:21:09 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6763         * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added reasonable
6764           values to the default constructor.  Thanks to Stephen Coy
6765           <stevec@wsa.com.au> for reporting this.
6767         * ace/config-irix6.x-sgic++-*.h: Added ACE_HAS_UALARM.  Thanks to
6768           Amos Shapira <amos@gezernet.co.il> for reporting this.
6770         * ace/config-aix-4.*.h: Added ACE_HAS_UALARM.  Thanks to Cary
6771           Clark for reporting this.
6773         * ace/config-hpux-10.x*.h: Added ACE_HAS_UALARM.  Thanks to Cary
6774           Clark for reporting this.
6776         * ace/config-osf1*.h: Added ACE_HAS_UALARM.  Thanks to Thilo
6777           for reporting this.
6779         * ace/config-mvs.h: Added ACE_HAS_UALARM.  Thanks to Chuck Gehr
6780           for reporting this.
6782         * tests/Async_Timer_Queue_Test.cpp: Added a new test that will
6783           illustrate how to implement an asynchronously invoked
6784           Timer_Queue using UNIX SIGALRM signals.
6786 Thu Aug 28 19:32:07 1997    <irfan@TWOSTEP>
6788         * examples/Reactor/ReactorEx: Added two new applications
6789           (test_registry_changes.cpp and test_console_input.cpp) to show
6790           some more features of ReactorEx. test_registry_changes.cpp shows
6791           how to monitor the Registry using ReactorEx.
6792           test_console_input.cpp shows how to use ReactorEx to get
6793           notified when input shows up on the console.
6795 Thu Aug 28 18:07:37 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
6797         * ace/Timer_{List,Heap,Wheel,Hash}_T.cpp: Changed the behavior
6798           of the iterator to automatically initialize when the iterator
6799           is constructed.
6801 Thu Aug 28 10:43:35 1997  David L. Levine  <levine@cs.wustl.edu>
6803         * ace/Task.{h,cpp} (ACE_Task_Exit::instance) added call to
6804           ACE_Object_Manager::at_exit () to clean up the singleton at
6805           program termination.
6807 Thu Aug 28 03:25:52 1997  Nanbor Wang  <nw1@lambada.cs.wustl.edu>
6809         * tests/Task_Test.cpp (Barrier_Task):
6810         * tests/TSS_Test.cpp (main): Added an array  to collect thread
6811           handles in order to clean them up.  Thanks to Ivan Murphy
6812           for pointing this out.
6814         * ace/Thread_Manager.{h,cpp} (spawn_n):
6815         * ace/Task.{h,cpp} (activate):
6816           Added an extra argument ACE_hthread_t thread_handles[] with
6817           default value 0.  We need this argument to collect handles of
6818           spwaned/activated threads.  On NT, we have to join terminated
6819           threads explicitly to prevent handles leak.  Thanks to Ivan
6820           Murphy for digging this out.
6822 Wed Aug 27 10:48:25 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6824         * ace: Changed all occurrences of ACE_LACKS_RLIMIT_PROTO to
6825           ACE_LACKS_RLIMIT_PROTOTYPE, ACE_LACKS_POSIX_PROTO to
6826           ACE_LACKS_POSIX_PROTOTYPES, and ACE_LACKS_SYSV_MSQ_PROTOS to
6827           ACE_LACKS_SYSV_MSQ_PROTOTYPES to be more consistent.
6829         * ace/config-sunos5.x*.h: Added ACE_HAS_UALARM to all the Solaris
6830           config files.  However, also had to add ACE_LACKS_UALARM_PROTOTYPE
6831           since Solaris strangely doesn't provide this prototype.
6833         * ace/OS.h: Added an ACE_Time_Value version of ACE_OS::ualarm().
6835         * ace/Signal: Added a new constructor for ACE_Sig_Action that
6836           takes an ACE_Sig_Set parameter.
6838         * ace/Signal: Added a sigset() accessor method.
6840         * ace/config-unixware-2.1.2-g++.h: Added ACE_HAS_UALARM.  Thanks
6841           to Ganesh Pai <gpai@voicetek.com> for reporting this.
6843         * ace/OS.h: Added a default value of 0 to ACE_OS::time().
6845         * ace/Synch.i (ACE_Thread_Mutex_Guard): Rearranged the code so
6846           that we can inline the acquire(), tryacquire(), and release()
6847           methods properly.  Thanks to David Levine for pointing this out.
6849         * ace/OS.h: Added ACE_OS support for the ualarm() method.  If your
6850           platform supports ualarm() please send me email so I can set the
6851           ACE_HAS_UALARM flag in your config.h file.
6853         * tests/Makefile: Added an asynchronous timer queue test.
6855         * examples/IOStream/server/iostream_server.cpp: Added a new macro
6856           to work around the fact that some C++ compiles don't grok
6857           template typedefs.  Thanks to Oleg Krivosheev <kriol@fnal.gov>
6858           for pointing this out.
6860         * ace/OS,
6861           ace/Task.cpp:
6862           Installed a bunch of patches for FSU pthreads.  Thanks to Arturo
6863           Montes <mitosys@colomsat.net.co> for sending this.
6865         * Makefile: Added a line to the release script that will
6866           automatically generate an ACE-INSTALL text file from the
6867           ACE-INSTALL.html file.  Thanks to Oleg Krivosheev
6868           <kriol@fnal.gov> for suggesting this.
6870         * performance-tests/Misc/Makefile: Added $(BIN) to the FILE target
6871           so that "make depend" will work.  Thanks to David Levine for
6872           pointing this out.
6874         * ace/Synch.i: Eliminated unnecessary assignment to this->owner_.
6875           Thanks to Chris for pointing this out.
6877         * ace/OS.i (msgctl): Added a "struct" to the definition of
6878           msqid_ds.  Thanks to Steve Hickman <SHICKMAN@cobra.mcit.com> for
6879           reporting this.
6881 Thu Aug 28 01:07:21 1997    <irfan@TWOSTEP>
6883         * examples/Reactor/ReactorEx/test_directory_changes.cpp: Added a
6884           new example application.  This application tests the working of
6885           ReactorEx when users are interested in changes in the
6886           filesystem.
6888 Wed Aug 27 22:06:23 1997  Nanbor Wang  <nw1@lambada.cs.wustl.edu>
6890         * *.{mak,mdp,dsw,dsp}: Updated ACE's library names on Win32 as
6891           below.  Only Microsoft's Win95 and Windows NT are effected.
6893           Version             Dynamic Library       Static Livrary
6894           ------------------  --------------------  -----------------
6895           Debug               aced.lib, aced.dll    acesd.lib
6896           Release             ace.lib, ace.dll      aces.lib
6897           Debug w/ UNICODE    aceud.lib, aceud.dll  acesud.lib
6898           Release w/ UNICODE  aceu.lib, aceu.dll    acesu.lib
6900           Thanks to John Morey <jmorey@tbi.com> for suggesting this and
6901           Darrell for updating VC 5.0's makefiles.
6903         * ace/config-freebsd[-pthread].h (ACE_HAS_UALARM): FreeBSD does has
6904           ualarm.
6906 Wed Aug 27 10:52:59 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6908         * ace/Synch_T.h (CTOR): Eliminated unnecessary assignment to
6909           this->owner_.
6911 Wed Aug 27 09:32:57 1997  David L. Levine  <levine@cs.wustl.edu>
6913         * ace/Singleton.cpp (instance): removed full qualification of
6914           "instance_" in ACE_NEW_RETURN macro, because it confused
6915            the Sun C++ 4.2 preprocessor.
6917         * ace/Singleton.cpp: added support for ACE_HAS_SIG_C_FUNC platforms,
6918           e.g., on MVS.  At least I tried to.  The cleanup function,
6919           on ACE_HAS_SIG_C_FUNC platforms only, doesn't call the object's
6920           destructor.  It just deallocates the storage.  That should be
6921           good enough; I don't think it's worth trying to do more than that.
6923         * ace/Synch.cpp (close_singleton): removed call to
6924           ACE_Allocator::close_singleton (), because this method is
6925           only called if ACE_HAS_THREADS.
6927         * ace/Object_Manager.cpp (dtor): added call to
6928           ACE_Allocater::close_singleton (), and protected call to
6929           ACE_Static_Object_Lock::close_singleton () with ACE_HAS_THREADS.
6931         * tests/Time_Value_Test.cpp: disabled ACE_U_LongLong test
6932           on ACE_WIN32 platforms, because that class is never used
6933           there.  Thanks to Nanbor for finding this.
6935         * performance-tests/Misc/preempt.cpp,Makefile: added preempt
6936           test, which tests for thread preemption.
6938 Tue Aug 26 13:59:01 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6940         * netsvcs/lib/Server_Logging_Handler_T.cpp: Changed the symbol
6941           "SS" to "SST" to avoid a namespace collision with UnixWare.
6942           Thanks to Ganesh Pai <gpai@voicetek.com> for pointing this out.
6944         * ace: Added a new config file to sco using FSU pthreads.  Thanks
6945           to Arturo Montes <mitosys@colomsat.net.co> for sending this.
6947         * include/makeinclude: Added a new platform macros file to sco
6948           using FSU pthreads.  Thanks to Arturo Montes
6949           <mitosys@colomsat.net.co> for sending this.
6951 Tue Aug 26 22:06:14 1997    <irfan@TWOSTEP>
6953         * examples/Reactor/ReactorEx: Added two new applications for
6954           testing some of the new features of ReactorEx.  Added
6955           documentation and renamed some of the older test files to make
6956           it easier to comprehend the examples.
6958 Tue Aug 26 11:47:29 1997    <irfan@TWOSTEP>
6960         * ace/OS.i (mutex_trylock): Changed this method to make it deal
6961           correctly with abandoned mutexes. Also added a new mutex_trylock
6962           method that allows the user to know if the mutex was abandoned
6963           (through an extra out parameter).  Also fixed
6964           ACE_OS::cond_timedwait(), ACE_OS::cond_wait(),
6965           ACE_OS::event_wait(), ACE_OS::event_timedwait() and
6966           ACE_OS::sema_wait() to remove extra checks for WAIT_ABANDONED,
6967           since we are not dealing with mutexes in these methods.  Thanks
6968           to Ivan Murphy <Ivan.Murphy@med.siemens.de> for pointing this
6969           out.
6971 Tue Aug 26 11:06:45 1997  David L. Levine  <levine@cs.wustl.edu>
6973         * ace/OS.h,config-vxworks5.x-g++.h:
6974           split ACE_HAS_RENAMED_MAIN into ACE_MAIN and
6975           ACE_HAS_NONSTATIC_OBJECT_MANAGER.
6977         * ace/ACE.cpp: only create the ACE_Object_Manager_Destroyer
6978           if not ACE_HAS_NONSTATIC_OBJECT_MANAGER.
6980         * ace/Object_Manager.{h,cpp}: dynamically allocated the
6981           contained ACE_Unbounded_Queue to so that it can be deallocated
6982           before the ACE_Allocator is destroyed.
6984         * ace/Singleton.{h,cpp}: register all ACE_Singletons for
6985           cleanup with the ACE_Object_Manager.
6987         * ace/Synch.{h,cpp}: renamed ACE_Static_Object_Lock::atexit () to
6988           close_singleton (), and removed the unused atexit hook.
6990         * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::close): delete the
6991           main thread's Log_Msg.
6993         * ace/config-vxworks-ghs-1.8.h: added ACE_HAS_NONSTATIC_OBJECT_MANAGER.
6995         * tests/Time_Value_Test.cpp: added tests of ACE_U_LongLong.
6997         * tests/Atomic_Op_Test.cpp (main): added arguments to main ().
6999         * tests/Barrier_Test.cpp (main): delete thread_handles array
7000           to prevent memory leak.
7002         * examples/Reactor/Misc/test_signals_2.cpp (main): changed
7003           type of second arg from "char *" to "char *[]".
7005 Mon Aug 25 14:13:57 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
7007         * ace/OS.h:
7008           Changed the return type of sendmsg_timedwait from sszie_t to
7009           ssize_t, this should only affect platforms where
7010           ACE_LACKS_TIMEDWAIT_PROTOTYPES, further it was definitely wrong
7011           before.
7012           Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for pointing
7013           out this one.
7015 Mon Aug 25 10:15:06 1997  David L. Levine  <levine@cs.wustl.edu>
7017         * ace/Message_Queue.cpp (notify): fixed ACE_TRACE message.
7019         * examples/ASX/UPIPE_Event_Server/event_server.cpp,
7020           examples/Connection/misc/test_upipe.cpp,
7021           examples/Connection/non_blocking/test_*.cpp,
7022           examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp,
7023           examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp,
7024           examples/Misc/test_dump.cpp,
7025           examples/Reactor/FIFO/client.cpp,
7026           examples/Reactor/Misc/test_*.cpp,
7027           examples/Reactor/Proactor/test_multiple_loops.cpp,
7028           examples/Reactor/Proactor/test_timeout.cpp,
7029           examples/Reactor/ReactorEx/test_timeout.cpp,
7030           examples/Reactor/ReactorEx/test_exceptions.cpp,
7031           examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp,
7032           examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp,
7033           examples/Shared_Malloc/test_multiple_mallocs.cpp,
7034           examples/System_V_IPC/SV_Message_Queues/*MQ_*.cpp,
7035           examples/System_V_IPC/SV_Semaphores/Semaphores_?.cpp,
7036           examples/Threads/process_mutex.cpp,
7037           examples/Threads/recursive_mutex.cpp,
7038           examples/Threads/tss1.cpp,
7039           examples/Threads/thread_specific.cpp,
7040           examples/Threads/token.cpp,
7041           examples/Threads/wfmo.cpp,
7042           tests/Simple_Message_Block_Test.cpp,
7043           tests/Hash_Map_Manager_Test.cpp:
7044           added arguments to main () to support redeclaring it on VxWorks.
7046           From now on, we should always declare main () with arguments, e.g.,
7047           int
7048           main (int, char *[])
7050 Sun Aug 24 10:27:33 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
7052         * tests/Future_Test.cpp (Scheduler): Removed the non-existent
7053           friend class Method_ObjectWork.  Thanks to Sandro Doro
7054           <doros@aureus.sublink.org> for reporting this problem.
7056         * ace/Message_Block.h: Clarified in the comments that the length()
7057           of a Message_Block is 0 until the wr_ptr() is explicitly set.
7058           Thanks to Amos Shapira <amos@gezernet.co.il> for pointing out
7059           the need for this.
7061 Sat Aug 23 14:43:27 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7063         * ACE version 4.3, released Sat Aug 23 14:43:27 1997.
7065 Sat Aug 23 14:40:32 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7067         * Released the long-awaited ACE 4.3.  Good night sweet prince:
7068           And flights of angels sing thee to thy rest.
7070 Sat Aug 23 00:44:09 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
7072         * netsvcs/lib/Server_Logging_Handler.cpp: Make sure that we
7073           explicitly instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM,
7074           ACE_NULL_SYNCH> whether or not we're building with threads
7075           since otherwise we get link errors.
7077 Fri Aug 22 20:58:49 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7079         * ace/OS.cpp (ACE_TSS_Cleanup):  Changed the lock for
7080           ACE_TSS_Cleanup from a static object to a singleton to avoid the
7081           nasty detruction order problem.  This only effects Win32.
7083         * ace/Synch.{h,cpp}: Added a new singleton lock
7084           "ACE_TSS_Cleanup_Lock" for Win32 platform.  This object is
7085           expect to be put under ACE_Object_Manager's control and will
7086           probably gone/changed in the near future.
7088 Fri Aug 22 18:48:17 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
7090         * ACE-install.sh:
7091           I updated the information on IRIX. Now we know for a fact it
7092           compiles on IRIX 6.x, but we are not certain on IRIX 5.X.
7094         * bin/auto_compile_wrapper:
7095           I have tried to make it clear that auto_compile_wrapper must be
7096           tailored on each site. The email address is invalid and the
7097           script should just crash the
7099         * ace/OS.i (cond_timedwait):
7100           It used to always dereference the timeout parameter, which could
7101           be 0 (heading for a
7102           Sthreads use timestruc_t instead of timespec_t, thanks to
7103           Ganesh Pai <gpai@voicetek.com> for pointing out this one and to
7104           Steve Huston <shuston@riverace.com> for explaining to us what
7105           was going on.
7107 Fri Aug 22 08:46:39 1997  David L. Levine  <levine@cs.wustl.edu>
7109         * include/makeinclude/platform_vxworks*.GNU:
7110           unset SHLIB to fix builds without PRELIB.
7112         * netsvcs/lib/Logging_Strategy.cpp,
7113           examples/Threads/task_three.cpp: include fstream.h and
7114           iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
7116         * examples/ASX/UPIPE_Event_Server/event_server.cpp,
7117           examples/Log_Msg/test_log_msg.cpp,
7118           examples/Reactor/Misc/test_time_value.cpp,
7119           examples/Logger/Accepter-server/server_loggerd.cpp:
7120           #include iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
7122         * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc):
7123           replaced an iostream printout with an ACE_DEBUG call.
7125         * examples/Misc/test_read_buffer.cpp,
7126                         test_dump.cpp,
7127                    Mem_Map/IO-tests/test_io.cpp:
7128           replaced bare OS calls with ACE_OS calls.
7130         * examples/Reactor/Misc/notification.cpp (Thread_Handler):
7131           added cast of svc_run to ACE_THR_FUNC.
7133 Thu Aug 21 22:38:19 1997  Carlos O'Ryan  <coryan@polka.cs.wustl.edu>
7135         * bin/auto_compile:
7136           This tool will checkout ACE_wrapper from CVS, use
7137           bin/create_ace_build to update a clone directory, compile ace
7138           and tests in that clone directory and then run run_tests.sh.
7139           If there is any problem it will report it to email.
7141         * bin/auto_compile_wrapper:
7142           The former needs some configuration information and a proper
7143           enviroment, hence it may not be invoked directly from your
7144           crontab. This tool is used for that purpose.
7146         * apps/Gateway/Gateway/Makefile:
7147         * apps/JAWS/server/Makefile:
7148         * examples/Connection/non_blocking/Makefile:
7149         * examples/IPC_SAP/DEV_SAP/reader/Makefile:
7150         * examples/IPC_SAP/DEV_SAP/writer/Makefile:
7151         * examples/Service_Configurator/IPC-tests/server/Makefile:
7152         * netsvcs/clients/Naming/Client/Makefile:
7153         * netsvcs/clients/Naming/Dump_Restore/Makefile:
7154         * performance-tests/Synch-Benchmarks/Makefile:
7155           No need to defines LIBS=-lACE here, it is already done in
7156           wrapper_macros.GNU. Thanks to Cary Clark <claca@iccokc.com> for
7157           pointing out this one.
7159         * bin/create_ace_build:
7160           New flag -a to create all symlinks using absolute paths, it
7161           helps when the build directory is a symlink too.
7163         * include/makeinclude/platform_irix6.x-sgic++.GNU:
7164           ACE now compiles with little or no warnings, I kept the linker
7165           warnings deactivated though.
7166           -ptall does not work any more. I added a comment on that.
7168         * ace/OS.h:
7169         * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp:
7170         * apps/JAWS/clients/Blobby/Blob_Handler.cpp:
7171         * apps/JAWS/server/HTTP_Server.cpp:
7172         * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp:
7173         * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp:
7174         * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp:
7175         * examples/Reactor/Dgram/CODgram.cpp:
7176         * examples/Reactor/Dgram/Dgram.cpp:
7177         * examples/Reactor/Misc/test_demuxing.cpp:
7178         * examples/Reactor/Misc/test_reactors.cpp:
7179         * examples/Reactor/Misc/test_signals_2.cpp:
7180         * examples/Threads/barrier2.cpp:
7181         * examples/Threads/process_manager.cpp:
7182         * examples/Threads/task_three.cpp:
7183         * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
7184         * netsvcs/clients/Tokens/collection/collection.cpp:
7185         * netsvcs/clients/Tokens/mutex/test_mutex.cpp:
7186         * performance-tests/Misc/childbirth_time.cpp:
7187         * tests/Reactor_Exceptions_Test.cpp:
7188         * tests/Reactors_Test.cpp:
7189         * tests/SOCK_Test.cpp:
7190           New macro ACE_NOTREACHED. Some compilers will issue warnings on
7191           unreached statements with things like:
7192             int foo()
7193             {
7194               if (bar) {
7195                 return 0;
7196               } else {
7197                 return 1;
7198               }
7199               return 0; // warning here
7200             }
7201           but if we remove the last return some other compiler will issue
7202           warnings on leaving the function with no return value.
7203           This macro tries to deal with that, all we have to do is to
7204           write the last line like:
7205             int foo()
7206             {
7207               if (bar) {
7208                 return 0;
7209               } else {
7210                 return 1;
7211               }
7212               ACE_NOTREACHED(return 0); // No warning now!!!
7213             }
7214           IMHO it also serves as a form of documentation.
7216 Thu Aug 21 21:00:35 1997    <irfan@TWOSTEP>
7218         * ace/Auto_Ptr: Changed auto_ptr implementation to be as close
7219           to the C++ specification as possible. Things that are still
7220           missing are:
7221           (a) std namespace
7222           (b) member templates implementations
7223           (c) making the constructors explicit
7225         * ace/OS.h (ACE_BIT_STRICTLY_ENABLED): Added new macro to check if
7226           a bit is strictly enabled in a word.  This is necessary when the
7227           bit would be a combination of bits, and therefore, just
7228           comparing against != 0 (like ACE_BIT_ENABLED does) is not enough
7229           and comparing == BIT is necessary.
7231 Thu Aug 21 19:28:28 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
7233         * include/makeinclude/rules.local.GNU (depend.local): If TAO_ROOT
7234           is not set, don't try using it in sed.
7236         * bin/g++dep: Check the existence of the TAO_ROOT environment
7237           variable before adding it to the relative pathname replacement
7238           strategy.
7240 Thu Aug 21 16:29:02 1997  David L. Levine  <levine@cs.wustl.edu>
7242         * ace/OS.h: added THR_JOINABLE and THR_SCHED_FIFO/RR/DEFAULT
7243           to STHREADS, WTHREADS, and non-threaded platforms.  On VxWorks
7244           only, set NSIG to _NSIGS + 1.
7246         * ace/config-vxworks*.h: removed ACE_HAS_POSIX_SEM now that we
7247           emulate it for VxWorks.
7249         * tests/Priority_Task_Test.cpp: use THR_SCHED_FIFO unconditionally
7250           now that it's defined on all platforms.
7252         * include/makeinclude/platform_chorus.GNU,
7253                               platform_hpux_gcc.GNU,
7254                               platform_linux*.GNU,
7255                               platform_m88k.GNU,
7256                               platform_osf1_4.0_g++.GNU,
7257                               platform_sco*.GNU,
7258                               platform_sunos*_g++.GNU,
7259                               platform_unixware_g++.GNU,
7260           g++ only: replaced PRELIB with "true" because it's not
7261           needed for template instantiation.  The old PRELIB no longer
7262           worked without -lACE being added to LIBS in individual Makfiles.
7263           The only reason to leave PRELIB defined to something is so that
7264           the shared object definitions will be correct in rules.lib.GNU.
7265           That should be fixed after 4.3 is released.
7267         * include/makeinclude/platform_vxworks5.x_ghs.GNU:
7268           PRELIB no longer needed with explicit template instantiation.
7270 Thu Aug 21 12:38:26 1997  Steve Huston  <shuston@riverace.com>
7272         * ace/config-hpux-10.x.h: Removed extraneous #endif
7274 Thu Aug 21 12:21:16 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7276         * ace/OS.h (THR_JOINABLE): Defined this macro for Win32 as 0.
7278 Wed Aug 20 22:36:52 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7280         * ACE version 4.2.44, released Wed Aug 20 22:36:52 1997.
7282 Wed Aug 20 18:28:28 1997  Steve Huston  <shuston@riverace.com>
7284         * ace/config-hpux-10.x.h: Made some definitions dependent on the
7285           HP-UX version that is compiling the code.
7287         * ace/Filecache.(cpp h): Moved the definition of ACE_Filecache_Object
7288           from .cpp to .h to help AIX xlC's template instantiator along.
7290         * apps/Gateway/Peer/Peer.(cpp h): Moved the definition of Peer_Handler
7291           from .cpp to .h to help AIX xlC's template instantiator along.
7293         * include/makeinclude/platform_(hpux hpux_aCC hpux_gcc).GNU:  Added
7294           a compiler option to define HPUX_VERS with the current OS version.
7295           Used in the config-hpux-10.x.h file.
7297 Wed Aug 20 13:44:16 1997  Carlos O'Ryan  <coryan@mambo.cs.wustl.edu>
7299         * ace/config-unixware-2.1.2-g++.h:
7300           Unixware does not define timespec_t. Thanks to Ganesh Pai
7301           <gpai@voicetek.com> for pointing out this one.
7303 Wed Aug 20 11:37:44 1997  David L. Levine  <levine@cs.wustl.edu>
7305         * include/makeinclude/rules.bin.GNU,platform_vxworks5.x_g++.GNU:
7306           added POSTLINK to build symbol table.
7308 Wed Aug 20 07:43:14 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7310         * ACE version 4.2.43, released Wed Aug 20 07:43:14 1997.
7312 Tue Aug 19 08:25:28 1997  Steve Huston  <shuston@riverace.com>
7314         * tests/Barrier_Test.cpp: Added THR_JOINABLE to the flags for
7315           creating threads - allows join to work on platforms that create
7316           threads detached by default (i.e. AIX).
7318         * tests/Process_Strategy_Test.cpp: If the final ACE_OS::kill() fails,
7319           don't ACE_OS::wait() for the process.
7321         * ace/config-aix-4.2.x.h: Added ACE_HAS_BROKEN_POSIX_TIME.  Commented
7322           out ACE_HAS_AIX_BROKEN_SOCKET_HEADER.  Added ACE_HAS_PTHREAD_T,
7323           and will now not use tid_t for any ACE types.  Rearranged things
7324           to start clarifying items.
7326         * ace/config-hpux-10.x.h: Removed ACE_HAS_SETKIND_NP and adjusted
7327           other, more meaningful, threads-related definitions to match what
7328           HP 10.10 and 10.20 have for threads.  This matches changes to OS.*
7330         * ace/OS.(h i cpp): Removed use of ACE_SETKIND_NP in an effort to
7331           simplify the variety of threads-capability definitions.  The only
7332           platforms which used ACE_HAS_SETKIND_NP were HP-UX (see above) and
7333           OSF/1 V3.2 (which has the same threads package as HP-UX).  OSF/1
7334           V3.2 may require some adjustments per this change - it probably
7335           should be changed to match HP-UX.  OSF/1 V4 (aka Digital UNIX)
7336           is not affected by this change.
7338         * ace/Log_Msg.cpp: Changed the 't' format (thread ID) to call
7339           thread_self() directly on AIX.
7341 Mon Aug 18 21:39:33 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7343         * ACE version 4.2.42, released Mon Aug 18 21:39:33 1997.
7345 Mon Aug 18 20:22:14 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7347         * apps/Gateway/Peer/Makefile:
7348           No need to define LIBS=-lACE here, its already done in
7349           wrapper_macros.GNU.  Thanks to Cary Clark <claca@iccokc.com>
7350           for helping in this effort.
7352 Mon Aug 18 19:54:36 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7354         * ace/OS.{h,i} (open, mutex_init, sema_init, event_init, mmap):
7355           Added an extra argument LPSECURITY_ATTRIBUTE with default value
7356           0 to all these methods so that we can modify objects' security
7357           attributes when needed.  Thanks to Ivan Murphy for pointing this
7358           out.
7360 Mon Aug 18 19:50:13 1997  Carlos O'Ryan  <coryan@mambo.cs.wustl.edu>
7362         * examples/Service_Configurator/Makefile:
7363         * examples/Service_Configurator/IPC-tests/server/Makefile:
7364         * apps/Gateway/Gateway/Makefile:
7365         * examples/Connection/non_blocking/Makefile:
7366           $(SOEXT) must be used instead of just .so, the former does not
7367           work on all platforms, notably HP-UX.  Thanks to Cary Clark
7368           <claca@iccokc.com> for helping in this effort.
7370 Mon Aug 18 19:46:27 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7372         * ace/OS.i:
7373           Added support for the missing netdb reentrant functions, even
7374           under IRIX 6.2 with no threads.  Thanks Paul Roman
7375           <proman@npac.syr.edu> for reporting this.
7377 Mon Aug 18 12:53:16 1997  David Levine  <levine@merengue.cs.wustl.edu>
7379         * tests/Barrier_Test.cpp (tester): VxWorks doesn't support
7380           thr_join().  Therefore, we need to work around it for now.
7381           Maybe Wind River will fix it at some point.
7383 Mon Aug 18 12:38:52 1997  Steve Huston  <shuston@riverace.com>
7385         * ace/config-aix-4.2.x.h: Removed ACE_HAS_SVR4_TIME, added
7386           ACE_LACKS_TIMESPEC_T.
7388 Mon Aug 18 12:00:31 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7390         * ace/config-mvs.h:
7391           MVS does not define timespec_t either.  Thanks to Chuck
7392           Gehr for reporting this.
7394 Mon Aug 18 10:41:05 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7396         * ace/OS.h:
7397         * ace/README:
7398           On some platforms timespec_t is not defined. We added a new
7399           config macro (ACE_LACKS_TIMESPEC_T) to handle that and we do a
7400           typedef to solve the problem.
7402         * ace/config-freebsd-pthread.h:
7403         * ace/config-freebsd.h:
7404         * ace/config-linux-lxpthreads.h:
7405         * ace/config-linux-pthread.h:
7406         * ace/config-linux.h:
7407           These are *some* config files that needed changes due to the new
7408           timespec_t stuff.
7410 Mon Aug 18 09:34:11 1997  David L. Levine  <levine@cs.wustl.edu>
7412         * ace/OS.cpp (ACE_Thread_Adapter): rearranged initializers to
7413           match declaration order.
7415         * ace/Log_Record.h: declare "class ostream" if
7416           ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION Log_Record.h.
7418         * ace/IOStream.h,Log_Msg.cpp,Log_Record.cpp,
7419           tests/test_config.h: include iostream.h instead of ace/stdcpp.h
7420           if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
7422         * ace/config-vxworks*.h: added ACE_LACKS_TIMESPEC_T.
7424 Sun Aug 17 20:58:56 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7426         * ACE version 4.2.41, released Sun Aug 17 20:58:56 1997.
7428 Sun Aug 17 17:02:53 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7430         * ace/config-irix6.x-sgic++-nothreads.h:
7431         * ace/config-irix6.x-sgic++.h:
7432         * include/makeinclude/platform_irix6.x-sgic++.GNU:
7433           Finally a single config.h and platform_macros.GNU file can be use
7434           for all the IRIX 6.X versions.
7435           On SGI machines we need a higher value for
7436           ACE_DEFAULT_BASE_ADDR, we used 1024*1024*1024, which works on
7437           our site, but your mileage may vary.
7439         * include/makeinclude/platform_irix6.2_sgic++.GNU:
7440         * include/makeinclude/platform_irix6.4_sgic++.GNU:
7441         * ace/config-irix6.2-sgic++-nothreads.h:
7442         * ace/config-irix6.2-sgic++.h:
7443         * ace/config-irix6.4-sgic++-nothreads.h:
7444         * ace/config-irix6.4-sgic++.h:
7445           These files are no longer needed, see above.
7447         * ace/README:
7448         * ace/ACE.cpp:
7449         * ace/OS.h:
7450         * ace/OS.i:
7451         * ace/Profile_Timer.cpp:
7452         * ace/Profile_Timer.h:
7453           We no longer use timestruct_t in ACE, it is a SYSVism; we use
7454           timespec_t instead.  Hence we have no need for the config
7455           macro ACE_HAS_SVR4_TIME, but we keep it there for future
7456           reference.
7458         * tests/Reader_Writer_Test.cpp:
7459           On IRIX using ACE_Thread::yield() degraded performance for
7460           multiprocessor machines, but worse, the test will not behave as
7461           expected: instead of interleaving read/write locks over the
7462           RW_Mutex it will make all the write locks first and then the read
7463           locks.  The test uses ACE_OS::sleep() for yielding the CPU,
7464           and it uses different pauses for each thread (see code for
7465           details). Further, it yields the CPU *before* taking the
7466           lock, to give other threads a chance.
7468 Sat Aug 16 18:17:10 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7470         * ACE version 4.2.40, released Sat Aug 16 18:17:10 1997.
7472 Sat Aug 16 18:13:22 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7474         * ace/ReactorEx.cpp (add_network_events_i): Revised the code to
7475           use the ACE_BIT_CMP_MASK and ACE_SET_BITS macros to simplify the
7476           code.
7478         * ace/OS.h: Added a new macro called ACE_BIT_CMP_MASK which checks
7479           if a "bit-wise" & with a word == a particular mask.
7481         * ace/OS.cpp (thr_create): If we're in the Pthreads implementation
7482           then we assume that ACE_thread_t and ACE_hthread_t are the same.
7483           If this *isn't* correct on some platform, please let us know.
7484           Thanks to Carlos O'Ryan <coryan@cs.wustl.edu>.
7486         * ace/Auto_Ptr.cpp: Reverted the changes of ACE_Auto_Ptr to
7487           auto_ptr since we want to be Standard C++ Library compliant.
7488           However, we only define auto_ptr if ACE_HAS_STANDARD_CPP_LIBRARY
7489           is *not* enabled.
7491         * Removed the INSTALL file since this is redundant with the HTML
7492           version of this file (ACE-INSTALL.html).  Thanks to David Levine
7493           for doing the legwork to merge this.
7495 Sat Aug 16 15:11:24 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
7497         * ace/Auto_Ptr.h: Put in an #include <memory> (for auto_ptr) if
7498           the standard C++ library is being used.
7500         * ace/Auto_Ptr.*: Changed the checks for ACE_HAS_STANDARD_CPP_LIBRARY
7501           to also check to see if it is defined to 0 (which means the same
7502           as it not being defined).
7504         * ace/ReactorEx.cpp: Changed the use of auto_ptr to work with
7505           the one in the Standard C++ library.
7507         * ace/config-win32-common.h: Added ACE_HAS_BROKEN_NESTED_TEMPLATES
7508           and ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER for the MSVC versions
7509           that need them.
7511         * ace/Registry.cpp: changed some variable names from iterator to
7512           iter to prevent conflicts with another variable
7514         * ace/Registry.cpp:
7515           STL/bstring.h:
7517           Changed references of NPOS to Istring::npos
7519 Sat Aug 16 14:17:07 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
7521         * ace/Auto_Ptr.i:
7522         * ace/Auto_Ptr.cpp:
7523           Some code was only included if ACE_HAS_STANDARD_CPP_LIBRARY was
7524           defined; but the intention was exactly the opposite.
7526 Sat Aug 16 14:33:26 1997  David L. Levine  <levine@cs.wustl.edu>
7528         * README,FAQ,Makefile: changed references from INSTALL file
7529           to ACE-INSTALL.html.
7531 Fri Aug 15 19:51:52 1997    <irfan@TWOSTEP>
7533         * ace/Auto_Ptr.h: A rarely used piece of ACE code has changed
7534           names because of name conflicts with the Microsoft Standard C++
7535           Library. The change is from auto_ptr to ACE_Auto_Ptr. A perl
7536           script ($ACE_ROOT/bin/auto_ptr.perl) is provided for users to
7537           change their code accordingly.
7539           The following files were effected:
7541           ace: ACE.cpp Auto_Ptr.cpp Auto_Ptr.h Auto_Ptr.i OS.h
7542                ReactorEx.cpp Service_Config.cpp Service_Object.h
7544           examples/Threads: future1.cpp future2.cpp test_future1.cpp
7545                             test_future2.cpp
7547           tests: Future_Test.cpp
7549 Fri Aug 15 17:41:28 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7551         * ACE version 4.2.39, released Fri Aug 15 17:41:28 1997.
7553 Fri Aug 15 13:33:04 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7555         * ace/OS.h (ACE_DEFAULT_GLOBALNAME_W): Moved pathname delimiter
7556           from ACE_DEFAULT_{LOCAL|GLOBAL}NAME_* to
7557           ACE_DEFUALT_NAMESPACE_DIR on NT.  We need to append local/global
7558           name to get a unique mutex name for naming service.  NT won't
7559           let us put a backslash in lock name. ;(
7561 Fri Aug 15 14:50:26 1997  Steve Huston  <shuston@riverace.com>
7563         * ace/Makefile: Moved ARGV from the TEMPLATES section to the FILES
7564           section; now builds on AIX.
7566         * ace/config-hpux-10.x.h: Don't redefine _HPUX_SOURCE.  Move the
7567           ACE_HAS_REENTRANT_FUNCTIONS and ACE_CTIME_R_RETURNS_INT to the
7568           build-with-threads section.  Thanks to Neil Cohen <nbc@metsci.com>
7569           for helping to flush these problems out.
7571         * tests/Makefile: If building on AIX, wipe out the tempinc directory
7572           before each compilation to keep the driver from compiling all
7573           prior programs' template instantiations in every link step.
7575 Fri Aug 15 13:07:26 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
7577         * ace/Signal.cpp (remove_handler): Added some additional
7578           parameters to ACE_Sig_Action usages in order to get this stuff
7579           to compile with G++ on SunOS 4.1.4.  Thanks to Kumar Neelakantan
7580           <kneelaka@PaineWebber.COM> for reporting this.
7582         * ACE version 4.2.38, released Thu Aug 14 23:07:26 1997.
7584 Fri Aug 15 13:33:04 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7586         * ace/Naming_Context.cpp (ACE_Naming_Context): Moved the deletion
7587           of name_options_ from close to dtor of this class so that we can
7588           reconfigure the naming context.
7590 Fri Aug 15 10:28:14 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
7592         * ace/OS.cpp: Changed uname() for Win32 so it returns information
7593           for Windows 95 and NT.
7595 Thu Aug 14 18:06:37 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
7597         * ace/OS.[hi] (strsplit_r): Added a new method which splits a
7598           string separated by tokens, similar to the way that perl's
7599           split() works.  This is different from the strtok() family b/c
7600           for the string ":/foo:/bar::boo", strtok() would return "/foo",
7601           "/bar", "boo", while strsplit_r() returns "", "/foo", "/bar",
7602           "", "boo".  This method is also properly re-entrant, and thus
7603           safe to use among multiple threads.
7605         * ace/ACE.cpp (ldfind): Fixed this so that it now properly deals
7606           with paths containing empty components intended to indicate
7607           'current directory'.
7609 Thu Aug 14 17:30:36 1997  Steve Huston <shuston@riverace.com>
7611         * ace/config-hpux-10.x.h - Add ACE_LACKS_CONST_STRBUF_PTR, remove
7612           ACE_HAS_POSIX_SEM, clarify comments regarding setting of
7613           _CMA_NOWRAPPERS_ - thanks to Cary Clark <claca@iccokc.com> for
7614           helping in this effort.
7616 Thu Aug 14 16:14:47 1997  David L. Levine  <levine@cs.wustl.edu>
7618         * ace/High_Res_Timer.cpp (print_ave,print_total): fixed format
7619           specification for total_secs to be lu instead of lld.
7621 Thu Aug 14 14:06:37 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
7623         * ace/ARGV.cpp: Completed the explicit template instantiations for
7624           this component.
7626 Thu Aug 14 11:27:03 1997  Edward Everett Anderson  <eea1@polka.cs.wustl.edu>
7628         * ace/ARGV.* (argv):
7630         * Added another behavior to ACE_ARGV -- a user can iteratively
7631           build the parameter set with add().  Made the class more
7632           consistent so that accessors work no matter which constructor is
7633           used.
7635 Thu Aug 14 10:14:37 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
7637         * Made several changes to allow ACE to work with the new standard
7638           C++ header files, such as <cstdio> and the built in STL.  Thanks
7639           to Matthias Kerkhoff <make@cs.tu-berlin.de> for these changes.
7640           The default is to use the old headers, unless the
7641           ACE_HAS_STANDARD_CPP_LIBRARY is defined as 1.
7643         * ace/config-win32-common.h:
7644           ace/config-win32.h:
7646           - Added ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB flag to
7647             distinguish compilers who have the standard C++ library
7648             declared in the namespace std and those who use the global
7649             namespace for it
7651           - Enabled ACE_HAS_SIG_ATOMIC_T and ACE_HAS_TYPENAME_KEYWORD for
7652             MSVC 5
7654           - Changed the semantics of ACE_HAS_STANDARD_CPP_LIBRARY from
7655             [defined/undefined] to [(undefined or defined as 0)/defined != 0]
7656             to allow the choice between the old iostream and standard C++
7657             library for those platforms that support both
7659           - Don't define the ACE_LACKS_IOSTREAM_FX when building with MSVC
7660             5.0 and the standard C++ library.
7662           - If __ACE_INLINE__ is defined as 0, config-win32-common.h
7663             undefines __ACE_INLINE__ to decrease the size of libraries and
7664             executables.
7666         * ace/IOStream.cpp: Moved the #ifdef ACE_LACKS_ACE_IOSTREAM up to the
7667           proper place
7669         * ace/IOStream.h:
7670           ace/IOStream_T.h:
7671           ace/Log_Msg.cpp:
7672           ace/Log_Msg.h:
7673           ace/Log_Record.cpp:
7674           ace/Log_Record.h:
7675           examples/ASX/Message_Queue/*.dsp:
7676           examples/OS/Process/*.dsp:
7677           examples/Threads/*.dsp:
7678           examples/Threads/barrier2.cpp:
7679           examples/Threads/task_three.cpp:
7680           netsvcs/lib/Logging_Strategy.cpp:
7682           Updated to including stdcpp.h instead of <iostream.h>,
7683           <iomanip.h>, <fstream.h>, etc.
7685         * ace/OS.h: Updated to use stdcpp.h instead of including the
7686           normal C headers.  Moved the includes into stdcpp.h to allow
7687           switching between the old and new versions
7689         * ace/Registry.h: Changed to use the standard C++ headers for STL
7690           and added a typedef Name_Component and Binding to
7691           ACE_Registry::* to help some unresolved problems.
7693         * tests/Hash_Map_Manager_Test.cpp:
7694           tests/test_config.h:
7696           Updated to #include ace/stdcpp.h instead of <iostream.h> and
7697           <fstream.h>
7699         * ace/stdcpp.h: Updated to include more of the new standard C++
7700           header files, and also promote some of the iostream classes to
7701           the global namespace.
7703         * ace/ace.dsp:
7705           - Added some folders like Templates and Documentation
7706           - Added some files that were missing to the project
7707           - Enabled function level linking for debug projects
7708           - Set it to "Not using MFC"
7709           - Removed wsock32.lib from the project settings (since
7710             config-win32-common.h will tell the linker to use the correct
7711             winsock library)
7712           - Removed some other unnecessary libraries (OLE) from the
7713             project.
7715 Wed Aug 13 23:02:45 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7717         * ACE version 4.2.37, released Wed Aug 13 23:02:45 1997.
7719 Wed Aug 13 13:26:27 1997  Douglas C. Schmidt  <schmidt@mambo.cs.wustl.edu>
7721         * tests/Barrier_Test.cpp (main): Fixed the test of the ACE_Barrier
7722           class so that it doesn't leak handles.  This also illustrates
7723           the use of the ACE_Thread::join() and
7724           ACE_Thread_Manager::spawn_n() methods.  Thanks to Ivan Murphy
7725           for pointing this out.
7727         * ace/Thread_Manager.cpp (spawn_n): Note that if we get a null
7728           thread_ids parameter we shouldn't try to index into it!
7730         * include/makeinclude/rules.local.GNU (OBJDIRS): Added
7731           so_locations to the list of directories cleaned up during a make
7732           clean/realclean.  Thanks to Amos Shapira for reporting this.
7734         * ACE version 4.2.36, released Wed Aug 13 07:30:10 1997.
7736         * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added a
7737           -Wl,-woff,133 to LDFLAGS to make the linker shutup about branch
7738           instructions that might degrade performance
7739           (what does this mean?).  Thanks to Amos for this.
7741         * tests/test_config.h: Fixed a typo (ourput_file() should be
7742           output_file()).  How on earth did this ever work?!  Thanks to
7743           Amos Shapira for reporting this.
7745         * ace/Message_Queue.cpp: Added a couple of new ACE_UNUSED_ARGs
7746           Thanks to Amos Shapira for reporting this.
7748         * ace/OS.cpp (gethrtime): ACE_OS::gethrtime should cast its return
7749           value to ACE_hrtime_t instead of (u_long long).  Thanks to
7750           Amos Shapira for reporting this.
7752 Wed Aug 13 14:51:47 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
7754         * ace/SString.[i,cpp]: moved some inline methods from the .i into
7755           the .cpp so the Win32 Unicode Release compiles with inlining.
7757 Wed Aug 13 01:14:08 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7759         * tests/test_config.h (ACE_NEW_THREAD): Removed
7760           ACE_Log_Msg::set_flags/clr_flags from this macro because
7761           ACE_Log_Msg::flags is a static variable.  We really don't need
7762           to reset them when creating new threads.  Once VxWorks can also
7763           inherit ACE_Log_Msg's properties, we no longer need this macro.
7765         * ace/Log_Msg.h: Added trace_depth() functions.  They are required
7766           for inheriting ACE_Log_Msg's properties.
7768         * ace/OS.cpp: Changed ACE_Thread_Adapter implementation so that
7769           newly created threads will inherit properties from their parent
7770           threads.  This is the default behavior and is valid on all
7771           platform except VxWorks.  If you don't want it and would like to
7772           arrange the properties propagation yourself, you must define
7773           ACE_THREADS_DONT_INHERIT_LOG_MSG in your ace/config.h file.  Now,
7774           creating a new thread will go thru ace_thread_adapter on all
7775           platform except VxWorks.  If ACE_THREADS_DONT_INHERIT_LOG_MSG is
7776           defined but your platform defines ACE_HAS_THR_C_FUNC or
7777           ACE_WIN32, creating new threads still need to use
7778           ace_thread_adapter.  This change also fixes a previous problem
7779           which let threads access another thread's TSS.
7781 Tue Aug 12 21:57:30 1997  David L. Levine  <levine@cs.wustl.edu>
7783         * etc/ACE-guidelines.html: added.
7785 Tue Aug 12 16:54:33 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7787         * Added Chuck Gehr's explanation of how to build ACE for MVS to
7788           the ACE-INSTALL.html file at http://www.cs.wustl.edu/~schmidt/.
7790         * ace/OS.i: changed the name of ACE_U_LongLong::dump() to
7791           ACE_U_LongLong::output().  Also moved some of the code that was
7792           inlined in the class definition into the *.i file.
7794         * netsvcs/lib/Server_Logging_Handler.cpp: Added a template
7795           specialization for ACE_Atomic_Op<ACE_Thread_Mutex, u_long> to
7796           make things link with SGI and other systems that have long
7797           different than int.  Thanks to Amos Shapira for reporting this.
7799         * ace/Reactor.cpp (close): Removed the #ifdefs around
7800           notify_handler_.open () and notify_handler_.close() since this
7801           is now supposed to be available on all build configurations.
7802           Thansk to Stefan Ericsson for reporting this.
7804         * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
7805           Removed a static variable that seemed to be causing problems for
7806           SGI C++.  Also, removed the now unnecessary "inherited" from
7807           Handle_Thr_Acceptor.
7809         * examples/ASX/UPIPE_Event_Server/Peer_Router.h,
7810         * netsvcs/lib/Log_Message_Receiver.h: Added an
7811           ACE_UNIMPLEMENTED_FUNC macro for the assignment operator to work
7812           around silly "features" of SGI C++...
7814         * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added some
7815           additional patches to suppress warning code.  Thanks to Torbjorn
7816           Lindgren <tl@funcom.no> for this fix.
7818         * include/makeinclude/platform_mvs.GNU: Changed all occurrences of
7819           "MVSLIB" to "ACELIB".  Thanks to Chuck Gehr for reporting this.
7821 Tue Aug 12 15:03:42 1997  Steve Huston <shuston@riverace.com>
7823         * ace/Timer_Hash_T.cpp, Timer_Wheel_T.cpp: Replaced references to
7824           ACE_High_Res_Timer::gettimeofday with ACE_OS::gettimeofday.
7825           The High Res version is deprecated, and doesn't work
7826           correctly on HP-UX.
7828 Tue Aug 12 07:51:02 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7830         * ACE version 4.2.35, released Tue Aug 12 07:51:02 1997.
7832 Mon Aug 11 22:30:39 1997  David L. Levine  <levine@cs.wustl.edu>
7834         * include/makeinclude/platform_vxworks5.x_ghs.GNU: disabled
7835           automatic template instantiation, because we use explicit
7836           template instantiation, via a #pragma, with Green Hills.
7837           Thanks to Brian Mendel <brian.r.mendel@boeing.com> for
7838           finding the compiler options.
7840 Mon Aug 11 17:45:44 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7842         * ace/OS.cpp (ace_thread_adapter): Changed the code so that TSS
7843           ACE_Log_Msg will get created and put into cleanup stack first no
7844           matter there is other ACE_Log_Msg instances or not.  This fixed
7845           the "order of destruction" problem on Win32 platform.  Thanks to
7846           Irfan for digging this out and helping solving it.
7848 Mon Aug 11 07:25:29 1997    <irfan@TWOSTEP>
7850         * examples/Reactor/ReactorEx/test_reactorEx.cpp: Updated this
7851           example to use the new Proactor and Asynch IO interfaces.
7853         * ace/Connector.cpp (activate_svc_handler): Fixed the "leak" of
7854           svc_handler in case of error. Thanks to Wei Chiang
7855           <chiang@tele.nokia.fi> for reporting this.
7857 Mon Aug 11 01:11:26 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7859         * ACE version 4.2.34, released Mon Aug 11 01:11:26 1997.
7861 Mon Aug 11 01:06:02 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7863         * ace/Message_Queue.cpp (enqueue_tail_i): Inadvertantly
7864           added "signal_dequeue_waiters()" where I meant
7865           "signal_enqueue_waiters()."
7867         * include/makeinclude/wrapper_macros.GNU: Fixed a typo in the
7868           wrapper_macros.GNU file that was causing link errors.
7870 Sun Aug 10 11:35:06 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7872         * ace/Message_Queue.cpp: To make sure that we have correctly
7873           signaled waiters the signal_enqueue_waiters() and
7874           signal_dequeue_waiters() methods now check the return value from
7875           the semaphore release if ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is
7876           enabled.
7878         * include/makeinclude/wrapper_macros.GNU (VLDLIBS): Added a
7879           new macro called ACELIB that can be used to make it easier
7880           to enable static linking for ACE, i.e.:
7882           ACELIB = -Bstatic -lACE -Bdynamic
7884           or
7886           ACELIB = $(ACE_ROOT)/ace/libACE.a
7888           Can be added to the individual platform_macros.GNU file.  This
7889           allowed us to remove special code for MVS in wrapper_macros.GNU.
7890           Thanks to Chuck Gehr for this fix.
7892         * netsvcs/lib: Added some comments after the #endifs.
7894         * ace/Filecache.cpp (insert_i): Updated the code so that we use
7895           ACE_NEW_RETURN rather than operator new.  This macro will
7896           protect against failed allocations.
7898 Sat Aug  9 22:08:50 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
7900         * ace: Added two new config files:
7902           config-irix6.x-sgic++.h
7903           config-irix6.x-sgic++-nothreads.h
7905           This should hopefully consolidate the SGI platform
7906           configuration.  Thanks to Torbjorn Lindgren <tl@funcom.no> for
7907           this fix.
7909         * include/makeinclude: Added two new platform macro files:
7911           platform_irix6.x-n32_sgic++.GNU:
7912           platform_irix6.x-32_sgic++.GNU
7914           This should hopefully consolidate the SGI platform macros.
7915           Thanks to Torbjorn Lindgren <tl@funcom.no> for this fix.
7917         * ace/Filecache.cpp: Fixed the syntax of the SGI pragma stuff.
7918           Thanks to Torbjorn Lindgren <tl@funcom.no> for reporting this.
7920         * ace/Name_Request_Reply.h: Changed MAX_NAME_LEN to MAX_NAME_LENGTH
7921           to avoid problems with Solaris 2.6.  Thanks to Thanh Ma <tma@encore.com>
7922           for reporting this.
7924 Sat Aug  9 12:10:35 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7926         * ace/config-win32-common.h (ACE_HAS_WINSOCK2):
7927         * ace/config-win32.h (ACE_HAS_WINSOCK2): Rearranged definition of
7928           this so that users can overwrite the default setting and choose
7929           older Winsock if they want.  No action needed for most NT
7930           useres. Thanks to jmorey@tbi.com (John Morey) for pointing this
7931           out.
7933 Sat Aug 09 11:28:36 1997  Steve Huston  <shuston@riverace.com>
7935         * ace/Profile_Timer.i: ACE_HAS_GETRUSAGE and !ACE_HAS_PRUSAGE
7936           platforms now use ACE_OS::gettimeofday rather than
7937           ACE_High_Res_Timer::gettimeofday in start() and stop() methods.
7939         * tests/Sigset_Ops_Test.cpp: adjusted test for sigismember() with
7940           out-of-range signum to separately test return value and errno.
7941           Also, returns non-zero from program on failed test.
7943 Fri Aug 08 17:39:43 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7945         * ACE version 4.2.33, released Fri Aug 08 17:39:43 1997.
7947 Fri Aug 08 02:50:31 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
7949         * ace/Message_Queue: Factored out the code that differs depending
7950           on whether we are using the optimized ACE_Message_Queue
7951           implementation (i.e., VxWorks and NT).  This change makes it
7952           easier to maintain the code.  Thanks to Darrell for helping with
7953           this.
7955         * ace/Log_Msg.cpp (close): Fixed a couple of typos in this code,
7956           in particular, we need to make sure that we don't call
7957           ACE_Log_Msg_Manager::close() if we aren't multi-threaded.
7959         * ACE version 4.2.32, released Fri Aug 08 02:50:31 1997.
7961 Fri Aug  8 13:17:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
7963         * ace/OS.* (strtoul): Added the OS function strtoul() to turn
7964           strings into unsigned longs.
7966 Fri Aug  8 12:26:54 1997  Steve Huston  <shuston@riverace.com>
7968         * ace/Log_Msg.cpp: Fixed some comments and removed unused code
7969           I erroneously added August 6.
7971         * ace/config-hpux-10.x.h: Fixed to not always compile tracing code.
7973         * tests/test_config.h: ACE_END_TEST and ACE_END_LOG macros direct
7974           log output back to stderr when shutting off the file output.
7976         * tests/TSS_Test.cpp: Removed ACE_Thread_Control object from the main
7977           thread - it served no purpose and didn't work on HP-UX (due to
7978           a documented pthread_exit restriction).  Also changed a 'delete
7979           ptr' to a call on operator delete (void *).
7981 Fri Aug  8 09:17:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
7983         * ace/Service_Repository.h (operations.): Improved documentation
7984           on find().
7986 Fri Aug  8 00:01:43 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
7988         * ace/Log_Msg.cpp (close): Moved ACE_Log_Msg::close() out of
7989           ACE_MT_SAFE block so it always exists.  This function only takes
7990           care of non-VxWorks platforms.
7992           (instance): Removed at_exit() call since the instances will be
7993           taken of by TSS_Cleanup.
7995         * ace/Object_Manager.cpp (~ACE_Object_Manager): Removed condition
7996           compilation so it always calls ACE_Log_Msg::close().
7998 Thu Aug  7 23:36:26 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8000         * ace/Reactor.h: Added the renew() method and the notify_handler_
8001           data member to all compilation cases, not just for
8002           multi-threading.
8004         * ace/Service_Config.h: Clarified the fact that argv[0] is the
8005           program name.  Thanks to Chris Cleeland for pointing this out.
8007         * ace/config-mvs.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION flag
8008           thanks to Chuck Gehr.
8010         * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on
8011           exceptions and turned off implicit template instantiation.
8012           Thanks to Amos Shapira <amos@gezernet.co.il> for reporting the
8013           former.
8015         * ace/config-irix6.2-sgic++.h: Also added the
8016           ACE_HAS_TEMPLATE_SPECIALIZATION flag and changed the
8017           platform_irix6.2.GNU file to not implicitly initialize
8018           templates.  If this breaks something, please let me know.
8020         * ace/config-irix6.2-sgic++.h: Added the ACE_HAS_EXCEPTIONS flag.
8021           Thanks to Amos Shapira <amos@gezernet.co.il> for reporting this.
8022           However, there is some question as to whether this will work.
8023           If it doesn't, please let me know.
8025         * ace/Reactor: Moved the ACE_Reactory_Notify class out from the
8026           ACE_MT_SAFE section into the main code since this should work
8027           for non-threaded builds, as well.  Thanks to Stefan Ericsson
8028           <uabsjen@osd.ericsson.se> for reporting this.
8030         * ace/config-chorus.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION
8031           flag.  Thanks to Wei Chiang for this.
8033 Thu Aug  7 19:09:35 1997  Steve Huston  <shuston@riverace.com>
8035         * tests/Hash_Map_Manager_Test.cpp - split definition of Dumb_String
8036           class to a new header, Hash_Map_Manager_Test.h.  This makes AIX
8037           C Set ++ happy.
8039         * tests/Process_Strategy_Test.cpp - split definitions of Options
8040           and Counting_Service classes to Process_Strategy_Test.h for AIX
8041           C Set ++'s benefit.
8043 Thu Aug  7 15:27:28 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8045         * ace/OS.h: Fixed typo in the definition of ACE_SYNCH_1 and
8046           ACE_SYNCH_2 for ACE_HAS_OPTIMIZED_MESSAGE_QUEUE
8048 Thu Aug  7 13:05:20 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
8050         * ace/Strategies_T.h: Changed the argument to ACE_DLL_Strategy
8051           from ACE_Service_Config to ACE_Service_Repository, which is more
8052           concrete.
8054         * bin/g++dep (REL): Added sed rule so that TAO's dependencies are
8055           set relative to $TAO_ROOT as well as $ACE_ROOT when the '-r'
8056           option is utilized.
8058         * include/makeinclude/platform_linux_lxpthread.GNU (CCFLAGS): The
8059           -Wall option can now be used.  It only generates two warnings
8060           throughout all of ACE!
8062         * include/makeinclude/rules.local.GNU (depend.local): Modified
8063           this target so that TAO's dependencies are set relative to
8064           $TAO_ROOT as well as $ACE_ROOT.
8066 Thu Aug  7 12:03:48 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
8068         * ace/Filecache.{h,cpp}: Fixed unused variable found by Amos
8069           Shapira.  Fixed TEMPLATE_SPECIALIZATION dependency, sort of.  Do
8070           not attempt to use Filecache if you do not support
8071           TEMPLATE_SPECIALIZATION.
8073 Thu Aug 07 00:19:12 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8075         * ACE version 4.2.31, released Thu Aug 07 00:19:12 1997.
8077 Wed Aug  6 22:20:54 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
8079         * ace/Synch_T.h: Replaced all uses of ACE_Null_Condition_Mutex
8080           with ACE_Null_Condition, which is much more straightforward...
8082         * ASNMP: Added Mike MacFaden's changes for IRIX.
8084 Wed Aug  6 16:37:51 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
8086         * ace/Hash_Map_Manager.cpp: Changed implementation back to use a
8087           single sentinel_ rather than an array of them.
8089         * ace/Filecache.{h,cpp}: Total re-implementations.  Fewer locks
8090           acquired and released when there is a cache hit.
8092 Wed Aug 06 12:55:26 1997  Steve Huston  <shuston@riverace.com>
8094         * ace/Log_Msg.(h cpp):
8095                 (ACE_Log_Msg_Manager) - Removed most of the non-VxWorks
8096           pieces - there's just a lock left; the instances_ was removed
8097                 (ACE_Log_Msg) - Use ACE_Object_Manager to remove per-thread
8098           instances of ACE_Log_Msg rather than using ACE_Log_Msg_Manager.
8099           The use of an ACE_Unbounded_Set to hold the ACE_Log_Msg pointers
8100           in previous versions caused some non-tail recursion problems when
8101           tracing was enabled.
8102           Uses an instance count to know when it's safe to free the dynamically
8103           allocated class-static memory.
8105         * ace/Trace.(h cpp): Added new static member function:
8106              int is_tracing(void)   - returns 1 if tracing is enabled, else 0.
8108         * ace/Object_Manager.(h cpp): Added a flag to indicate the object is
8109           being destroyed - during destruction, ACE_Object_Manager now refuses
8110           to register any new memory pointers.  Also turns tracing off during
8111           destruction - ACE_Log_Msg makes use of ACE_Object_Manager, so we
8112           don't want ACE_Log_Msg instance being deleted, then created for a
8113           ACE_TRACE, then deleted, then created,...
8115 Wed Aug 06 03:35:41 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8117         * ACE version 4.2.30, released Wed Aug 06 03:35:41 1997.
8119 Wed Aug  6 00:13:27 1997  Nanbor Wang  <nw1@dingo.wolfpack.cs.wustl.edu>
8121         * netsvcs/lib/Server_Logging_Handler.cpp: We only need to
8122           instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_SYNCH> when
8123           ACE_HAS_THREADS.  Otherwise, we'll have duplicate symbols
8124           defined on platforms that do not support threads.
8126 Tue Aug  5 19:52:36 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8128         * ace/Containers: Added a new reset method for ACE_Unbounded_Set.
8129           Thanks to Arturo Montes <mitosys@colomsat.net.co> for
8130           reporting this.
8132         * ace: Changed most uses of ACE_LACKS_COND_T to
8133           ACE_HAS_OPTIMIZED_MESSAGE_QUEUE to make it possible to toggle
8134           between the emulated condition variable implementation of
8135           ACE_Message_Queue and the semaphore implementation.  We need
8136           this until we fully test out the semaphore implementation of
8137           ACE_Message_Queue.
8139         * ace/Object_Manager.cpp (ACE_Object_Manager): Only call the
8140           ACE_Log_Msg::close() method if ACE_MT_SAFE is enabled!  Thanks
8141           to Satoshi Ueno <satoshi.ueno@gs.com> for reporting this.
8143         * ace/Malloc.h: Added a fix for misalignment of data in the
8144           ACE_CONTROL_BLOCK_ALIGN_LONGS macro.  Thanks to Fred LaBar
8145           <flabar@fallschurch.esys.com> for this fix.
8147         * ace/ACE.cpp: (enter_recv_timedwait,enter_send_timedwait): Always
8148           give val a default value of 0 to make Purify happy.  Thanks to
8149           David Levine for reporting this.
8151         * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp,
8152           netsvcs/clients/Tokens/manual/manual.cpp,
8153           netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp:
8154           Removed unreachable statements.  Thanks to Cherif Sleiman
8155           <sleiman@research.moore.com> for reporting this deficiency and
8156           testing the fix.
8158 Tue Aug  5 16:41:06 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8160         * ace/Synch_T.h: Added some more ACE_LACKS_COND_T changes for compilers
8161           without template typdefs.
8163 Tue Aug  5 11:50:43 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8165         * ace/Message_Queue.h: Fixed typos for the case when
8166           ACE_LACKS_COND_T.
8168 Tue Aug 05 11:02:11 1997    <irfan@TWOSTEP>
8170         * tests/Atomic_Op_Test.cpp (main): Made sure that on platforms
8171           without threads, we don't try to run this test.
8173 Tue Aug 05 09:15:40 1997  David L. Levine  <levine@cs.wustl.edu>
8175         * include/makeinclude/platform_vxworks5.x_ghs.GNU: removed
8176           -no_prelink from LDFLAGS because ghs 1.8.8 doesn't support it.
8177           Thanks to Cherif Sleiman <sleiman@research.moore.com> for
8178           reporting this.
8180         * ace/Service_Record.cpp: added #include "ace/Stream_Modules.h"
8181           to support template instantiation on GreenHills, at least.
8182           Thanks to Cherif Sleiman <sleiman@research.moore.com> for
8183           reporting this deficiency and testing the fix.
8185         * ace/config-vxworks-ghs-1.8.h: added
8186           ACE_LACKS_LINEBUFFERED_STREAMBUF.  Thanks to Cherif Sleiman
8187           <sleiman@research.moore.com> for reporting this.
8189 Mon Aug  4 22:47:54 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
8191         * ace/Message_Queue: Fixed consistency problems in naming notfull
8192           vs.  not_full.  Thanks to David Levine for finding this.
8194         * ace/Message_Queue: Added specialized support for cases where
8195           ACE_LACKS_COND_T (e.g., VxWorks and NT).  This scheme uses
8196           ACE_Thread_Semaphores in this case, which should be more
8197           efficient).
8199         * ace/Synch_T.h: Added a new set of macros and typedefs for
8200           ACE_SYNCH_SEMAPHORE.
8202         * examples/ASX/Message_Queue: Cleaned up all the Message_Queue
8203           examples.
8205         * examples/ASX/Message_Queue/buffer_stream.cpp: Added a
8206           NUL-terminator to the program so that it won't break.  Thanks to
8207           Darrell for finding this.
8209         * ace/Reactor.cpp (wait_for_multiple_events): Fixed some
8210           stylistic problems in the Reactor.
8212         * ace/Synch.cpp (ace_static_object_lock_atexit): Changed from:
8214           extern "C" static void
8216           to:
8218           extern "C" void
8220           Thanks to Chuck Gehr <gehr@sweng.stortek.com> for this.
8222 Mon Aug  4 14:03:22 1997  Steve Huston  <shuston@riverace.com>
8224         * tests/Enum_Interfaces_Test.cpp: return non-zero if test fails.
8226 Mon Aug  4 12:03:29 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8228         * tests/Semaphore_Test: Redid to test timed waits in a more
8229           reasonably fashion.
8231 Mon Aug  4 11:43:09 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8233         * ace/OS: Continued to cleanup the problems with inconsistent
8234           variants of sendmsg() and writev() on VxWorks.  Thanks to Cherif
8235           Sleiman <sleiman@research.moore.com> for reporting this.
8237         * ace/OS.i (sema_wait): Fixed the implementation on NT so that
8238           errno = ETIME.
8240         * tests/Semaphore_Test.cpp: Cleaned up the programming style a
8241           bit.
8243         * ace/OS (writev): Removed the ACE_WRITEV_TYPE from the
8244           ACE_OS::writev() method and instead put this as a cast on the
8245           internal call to ::writev().  This is much cleaner and should
8246           fix a bug introduced last night.  Thanks Cherif Sleiman
8247           <sleiman@research.moore.com> for reporting this.
8249         * ace/Synch: Added a new release() method to ACE_Semaphore that
8250           enables a caller to release multiple waiters.  Thanks to Darrell
8251           Brunsch <brunsch@cs.wustl.edu> for noticing this.
8253 Mon Aug  4 12:03:29 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8255         * tests/Semaphore_Test: Redid to test timed waits in a more
8256           reasonably fashion.
8258 Sun Aug 03 23:47:13 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8260         * ACE version 4.2.29, released Sun Aug 03 23:47:13 1997.
8262 Sun Aug  3 22:18:33 1997  Douglas C. Schmidt  <schmidt@cumbia.cs.wustl.edu>
8264         * tests/Atomic_Op_Test.cpp: Added template specialization so that
8265           David won't have to ;-)
8267         * ace/ACE: Added a new, complete set of send/recv operations with
8268           timeouts.  These implement the following methods:
8270           read, readv, write, writev, recv, recvfrom, recvmsg, send, sendto, sendmsg.
8272           The implementation provides two flavors: MIT pthread support, an
8273           ACE portable support.  To use MIT pthread support, you must to
8274           define ACE_HAS_READ_TIMEDWAIT, ACE_HAS_READV_TIMEDWAIT,
8275           ACE_HAS_WRITE_TIMEDWAIT, ACE_HAS_RECV_TIMEDWAIT,
8276           ACE_HAS_RECVFROM_TIMEDWAIT, ACE_HAS_RECVMSG_TIMEDWAIT,
8277           ACE_HAS_SEND_TIMEDWAIT, ACE_HAS_SENDTO_TIMEDWAIT and
8278           ACE_HAS_SENDMSG_TIMEDWAIT respectively.  See the config.h file
8279           for SCO UNIX for an example.
8281           This new approach is not only more powerful (since it takes
8282           advantage of OS-level mechanisms when they exist), but it also
8283           greatly improves the modularity of the code and provides a
8284           wider range of supported functionality.  Thanks to Arturo
8285           Montes <mitosys@colomsat.net.co> for this new feature.
8287         * ace/ACE.cpp: Added comments to the ACE_Object_Manager_Destroyer
8288           class.
8290         * ace/OS.h: Redid all the function prototypes for class ACE_OS so
8291           that it's easier to read the arguments.
8293         * ace/config-sco-5.0.0-mit-pthread.h: Added the new macros that
8294           enable timed reads and writes.  Thanks to Arturo Montes
8295           <mitosys@colomsat.net.co> for this new feature.
8297         * ace: Added a corresponding #endif /* FOO */ for all #if defined
8298           (FOO) in ACE.
8300         * ace: Changed all uses of ACE_IOStream_T to ACE_IOStream to
8301           be more consistent with other uses of templates in ACE.
8302           Thanks to Thilo for reporting this (and thanks to David
8303           for not being offended ;-)).
8305         * ace/OS.i (operator/): Removed "const" from both the OS.h and
8306           OS.i files for ACE_U_LongLong::operator/.  It is redundant,
8307           potentially confusing, and gives warnings on some compilers!
8309 Sun Aug 03 21:20:12 1997    <irfan@TWOSTEP>
8311         * tests/Atomic_Op_Test.cpp: Added new test to test the Atomic
8312           Operations Class in ACE.  On platforms like Win32, ACE uses
8313           template specialization to use native implementations provided
8314           by the OS to accelarate these operations.
8316         * ace/config-win32-common.h (ACE_HAS_INTERLOCKED_EXCHANGEADD):
8317           Added macro to config file. This macro is automatically set true
8318           for NT4.0 systems or greater.
8320         * ace/Atomic_Op.i: On Win32 platforms, this code will be included
8321           as template source code and will not be inlined. Therefore, we
8322           first turn off ACE_INLINE, set it to be nothing, include this
8323           code, and then turn ACE_INLINE back to its original setting. All
8324           this nonsense is necessary since the generic template code that
8325           needs to be specialized cannot be inlined, else the compiler
8326           will ignore the specialization code. Also, the specialization
8327           code *must* be inlined or the compiler will ignore the
8328           specializations.
8330           The creation of this new file is necessary for non-Win32
8331           platforms to continue to inline the code as before.
8333         * ace/Synch_T.cpp: This file must include Atomic_Op.i if
8334           ACE_INLINE has not be turned on.  If it is, this file must be
8335           included by Synch_T.h.
8337         * ace/Synch.cpp: Moved the specialization code from Synch.cpp to
8338           Atomic_Op.i.  This is necessary, otherwise the compiler will
8339           ignore the specialization.
8341 Sun Aug 03 10:51:34 1997  David L. Levine  <levine@cs.wustl.edu>
8343         * ace/config-osf1-4.0*.h: added #define ACE_HAS_LONGLONG_T.
8344           Thanks to Thilo for reporting that OSF1-4.0 does.
8346 Sat Aug 02 23:51:19 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8348         * ACE version 4.2.28, released Sat Aug 02 23:51:19 1997.
8350         * ace/TTY_IO.cpp (control): Fixed a bug when using 8 bits for
8351            character due to ISTRIP flag setting for device.  Thanks to
8352            Arturo Montes <mitosys@colomsat.net.co> for reporting this bug.
8354         * ACE-categories: Updated the list of ACE classes to reflect
8355           recent changes.
8357         * ASNMP: Added the new ACE+SNMP release courtesy of Mike
8358           MacFaden <mrm@cisco.com>.  This builds cleanly on Solaris,
8359           but it looks like there are a bunch of non-portable features
8360           that won't compile cleanly on all the other platforms.
8361           Therefore, until Mike or others get this stuff fully portable,
8362           it won't be build by default in the top-level ACE Makefile.
8364         * ace/OS.h (class ACE_U_LongLong): Reformatted this a bit.
8366         * ace/SV_Semaphore_Simple.i: Removed the #include of
8367           SV_Semaphore_Simple.h since it seems unnecessary and is causing
8368           problems for TAO.
8370         * ace/IOStream_T.h (ACE_IOStream_T): Removed the unneeded ';' at
8371           the end of the ACE_UNIMPLEMENTED_FUNC macros since this was
8372           causing compiler errors.
8374 Sat Aug 02 13:11:22 1997  David L. Levine  <levine@cs.wustl.edu>
8376         * ace/Synch.cpp (ACE_Static_Object_Lock::instance): commented
8377           out call to ::atexit () because it causes shutdown problems
8378           on DEC CXX, HP/UX, and AIX.  Many thanks to James Johnson
8379           for tenaciously tracking this one down, to Thilo and Steve
8380           for assisting, and to all who reported the problem.
8382         * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::open,close): neutered
8383           on VxWorks, only, so that it will compile.
8385 Fri Aug  1 21:33:18 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8387         * netsvcs/lib/netsvcs.mak: Added post compilation command that
8388           copies DLL to ace/ directory because netsvcs/main.exe must have
8389           this file in search path.
8391         * ace/Read_Buffer.cpp (ACE_Read_Buffer): Used ACE_OS::fdopen
8392           instead of ::fdopen because it caused compilation error on NT.
8394 Fri Aug  1 17:25:04 1997  Chris Cleeland  <cleeland@swarm.cs.wustl.edu>
8396         * include/makeinclude/platform_irix6.4_sgic++.GNU (CCFLAGS): Used
8397           -ptnone and -no_prelink in order to get SGI to compile properly.
8399         * ace/config-irix6.4-sgic++.h (ACE_HAS_EXCEPTIONS): Added
8400           ACE_HAS_EXCEPTIONS to this config.
8402         * ace/IOStream_T.h (ACE_IOStream_T): Wrapped send, recv, send_n,
8403           and recv_n with the ACE_UNIMPLEMENTED_FUNC macro.
8405 Fri Aug  1 17:08:32 1997  Nanbor Wang  <nw1@waltz.cs.wustl.edu>
8407         * ace/ace.mak:  Put OS.cpp back into the makefile.
8409         * ace/config-win32-common.h: Commented out checking of
8410           ACE_HAS_WINSOCK2 when we are using NT 4.0 and above.  The
8411           original check prevented us from using winsock2.
8413         * ace/Thread_Manager.cpp:
8414         * ace/Service_Repository.cpp:
8415         * ace/ReactorEx.cpp:
8416         * ace/Reactor.cpp:
8417         * ace/Proactor.cpp:
8418         * ace/Malloc.cpp:
8419         * ace/Synch.{h,cpp}:  Changed the lock held by
8420           ACE_Static_Object_Lock from ACE_Thread_Mutex to
8421           ACE_Recurssive_Thread_Mutex.
8423         * ace/Timer_Heap_T.cpp (ACE_Timer_Heap_T): Something was missing
8424           here.....
8426 Fri Aug  1 13:39:13 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8428         * ace/TTY_IO.cpp (control): Removed the special M_UNIX code for
8429           SCO_OpenServer.  Thanks to Arturo Montes
8430           <mitosys@colomsat.net.co> for reporting this.
8432         * ace/Read_Buffer.cpp (ACE_Read_Buffer): Mistakenly used int
8433           rather than ACE_HANDLE for one of the constructors in
8434           ACE_Read_Buffer.
8436         * ace/OS.cpp (readv): Fixed a braino that manifests itself on
8437           Chorus because I put the ACE_READV_TYPE in the wrong place.
8438           Thanks to Wei Chiang for reporting this.
8440 Fri Aug  1 14:31:22 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8442         * tests/Timer_Queue_Test.cpp:  removed casts from pointers to ints
8443           (when a act was compared with a number) and instead used a cast
8444           on the integer values.  This gets rid of warnings on platforms
8445           where the sizeof a pointer is larger than the sizeof an int.
8447 Fri Aug 01 12:10:28 1997    <irfan@TWOSTEP>
8449         * ace/Synch_T: Changed parameter passing for ACE_Atomic_Op from
8450           const TYPE to const TYPE &.
8452         * ace/Synch.cpp: These specializations have been added to
8453           ACE_Atomic_Op to make the implementation faster on Win32 that
8454           has OS support for doing this quickly through methods like
8455           InterlockedIncrement and InterlockedDecrement.
8457         * ace/SV_Semaphore_Complex.cpp (open): Fixed more compiler
8458           warnings:
8460           IOStream.cpp Naming_Context.cpp Read_Buffer.cpp
8461           SV_Semaphore_Complex.cpp SV_Semaphore_Complex.i
8463 Fri Aug  1 11:57:45 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
8465         * ace/Containers.h (ACE_Fixed_Set): Eliminated declaration for
8466           unnecessary ACE_Fixed_Set(size_t) CTOR.
8468         * ace/OS.h: Simplified the typedef of ACE_hrtime_t so that it's an
8469           unsigned long long whenever ACE_HAS_LONG_LONG_T is defined.
8471 Fri Aug 01 10:12:26 1997  David L. Levine  <levine@cs.wustl.edu>
8473         * ace/config-osf1-4.0.h: added ACE_HAS_TEMPLATE_SPECIALIZATION.
8474           Thanks to Thilo for verifying that this is supported with DEC CXX.
8476         * ace/config-irix6.4-sgic++*.h: added ACE_TEMPLATES_REQUIRE_SOURCE
8477           and ACE_REQUIRES_FUNC_DEFINITIONS.
8479         * ace/OS.h,README: added ACE_REQUIRES_FUNC_DEFINITIONS support.
8481         * ace/{Free_List.h,Remote_Tokens.h,Synch_T.h,Timer_*_T.h}:
8482           wrapped unimplemented template class copy constructors and
8483           assignment operators with ACE_UNIMPLEMENTED_FUNC.
8485         * tests/Service_Config_Test.cpp: removed templates to avoid
8486           problems with finicky compilers, and added check of destruction
8487           ordering.
8489         * include/makeinclude/platform_vxworks5.x_ghs.GNU: added
8490           -no_prelink to LDFLAGS.
8492 Fri Aug 01 00:14:46 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8494         * ACE version 4.2.27, released Fri Aug 01 00:14:46 1997.
8496 Thu Jul 31 21:51:01 1997  David L. Levine  <levine@cs.wustl.edu>
8498         * ace/Log_Msg.cpp (open): fixed memory leak.
8500 Thu Jul 31 21:41:10 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
8502         * tests/Service_Config_Test.cpp (run_test): You won't shout as I...
8504         * ace/Object_Manager.cpp (instance): ... fiddle about ;-)
8506 Thu Jul 31 17:39:56 1997    <irfan@TWOSTEP>
8508         * ace: The following files were modified to avoid the
8509           "unreferenced formal parameter" and other warnings from the
8510           compiler:
8512           ACE.cpp Asynch_IO.cpp Asynch_IO.h INET_Addr.cpp OS.cpp OS.h OS.i
8513           Proactor.cpp Reactor.cpp ReactorEx.cpp ReactorEx.i
8514           SOCK_Dgram_Bcast.cpp Service_Config.cpp
8516 Thu Jul 31 16:46:44 1997  David L. Levine  <levine@cs.wustl.edu>
8518         * ace/config*.h: replaced "ACE_REQUIRES_TEMPLATE_SPECIALIZATION"
8519           with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION".
8521         * ace/config-vxworks-ghs-1.8.h,config-irix6.4-sgic++*.h: added
8522           ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.
8524         * all .cpp files that had "ACE_REQUIRES_TEMPLATE_SPECIALIZATION":
8525           replaced with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION" and
8526           added #pragma instantiate for Edision Design Group compilers,
8527           e.g., SGI and Green Hills.
8529 Thu Jul 31 16:25:33 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8531         * ace/Synch.i (acquire): Added the timed acquire() interface to
8532           ACE_Semaphore.
8534 Thu Jul 31 11:10:17 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8536         * tests/run_tests.bat: Redid this file completely making it
8537           much smarter about running tests.  Instead of just blindly
8538           executing the tests, it checks the return values to see if
8539           an error occured and also outputs relevant errors from the
8540           log file if the test was unsuccessful.
8542           It's a remarkable example of batch programming wizardry.
8544 Thu Jul 31 10:39:04 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8546         * ace/INET_Addr.cpp: initialized error variable in
8547           gethostname to stop warnings when inlining is on.
8549 Thu Jul 31 09:46:50 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8551         * ace/Timer_Heap_T.cpp: changed cancel(id) to check the timer
8552           id to make sure it is in range (not negative and not larger
8553           than the current size of the heap)
8555 Thu Jul 31 07:32:26 1997  David L. Levine  <levine@cs.wustl.edu>
8557         * Malloc_T.{i,cpp},Timer_Queue_T.i: replaced LOCK with ACE_LOCK.
8558           Thanks to Thilo for supplying patches.
8560         * ace/config-sunos5.5-g++.h: #define ACE_MALLOC_ALIGN to be 8.
8562         * ace/Object_Manager.*: renamed cleanup () to at_exit ().
8564         * Log_Msg.{h,cpp},Object_Manager.cpp: let ACE_Object_Manager
8565           clean up the global ACE_Log_Msg_Manager.
8567         * Service_Config_Test.cpp: added test of
8568           ACE_Object_Manager::at_exit ().
8570 Wed Jul 30 20:30:25 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
8572         * ace/SOCK_Dgram.h: Added an = 0 to the flags parameter to recv().
8573           Thanks to Michael MacFaden for pointing out the inconsistency.
8575         * ace/OS.cpp (thr_create): Added support for the SCHED_IO policy,
8576           which is supported by MIT Pthreads.  Thanks to Arturo Montes
8577           <mitosys@colomsat.net.co> for this fix.
8579         * ace/SOCK_Dgram.h: Added a comment to clarify how to delete the
8580           elements of the iovec array.  Thanks to Mike MacFaden for
8581           clarifying this.
8583         * ace/Reactor.h: Changed the comment for schedule_timer() to use
8584           delta_timer rather than delay.
8586         * ace/Connector: Updated the timer cancellation id to be long
8587           rather than int.
8589         * examples/Reactor/Misc/notification.cpp: Timers are now working
8590           happily on Chorus, so we can revert the Chorus-specific patches.
8591           Thanks to Wei Chiang for reporting this.
8593         * ace/SOCK_Dgram.cpp (recv): The timed recv() method must return
8594           -1 on a timeout to meet its documented specification.  Thanks to
8595           Joseph Cross <joseph.k.cross@lmco.com> for reporting this
8596           problem.
8598         * ace/OS.i (readv): Added a fix for Chorus, which has a different
8599           readv() prototype than normal operating systems.  Thanks to Wei
8600           Chiang for reporting this.
8602 Wed Jul 30 20:02:21 1997  James C Hu  <jxh@lambada.cs.wustl.edu>
8604         * ace/Hash_Map_Manager.{h,cpp}: changed the *_i methods to use
8605           shared_find() method to ease template specialization efforts.
8606           Also, added a new shared_find() method.  Added a parameter to
8607           each to allow the passing in of the calculated hash value.
8609 Wed Jul 30 16:43:34 1997    <irfan@TWOSTEP>
8611         * ace/config-win32-common.h: If _DEBUG is not set (that is, we are
8612           building the Release version), we will turn on __ACE_INLINE__.
8613           Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
8614           suggesting this.
8616 Wed Jul 30 06:53:30 1997  Matthias Kerkhoff <make@cs.tu-berlin.de>
8618         * The use of the following configuration #defines in the entire
8619           ACE distribution has been changed:
8621           - ACE_HAS_WINNT4
8622           - ACE_HAS_MFC
8623           - ACE_HAS_STRICT
8624           - ACE_MT_SAFE
8625           - ACE_HAS_DLL
8626           - ACE_HAS_SVC_DLL
8627           - ACE_HAS_WINSOCK2
8628           - ACE_HAS_ORBIX
8629           - ACE_HAS_MT_ORBIX
8631           In previous ACE-versions, code blocks depending on one of these
8632           defines have been guarded by an #if defined(ACE_XXX_OPTION).
8633           Therefore it has been necessary to define the default
8634           configuration unconditionally in config-win32.h.
8636           The #if statements in the source files have been changed to
8638           #if defined(ACE_XXX_OPTION) && (ACE_XXX_OPTION != 0)
8640           while the default configuration in config-win32.h will only be used,
8641           if it has not been overridden from the compilers command line (i.e.) :
8643           #if !defined(ACE_XXX_OPTION)
8644              #define ACE_XXX_OPTION  1
8645           #endif
8647 Wed Jul 30 14:46:33 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8649         * ace/Malloc.cpp:
8650         * ace/Proactor.cpp:
8651         * ace/ReactorEx.cpp:
8652         * ace/Reactor.cpp:
8653         * ace/Service_Repository.cpp:
8654         * ace/Thread_Manager.cpp:
8655         * ace/Synch.{h,cpp}: Changed ACE_Static_Object_Lock::get_lock ()
8656           to instance () to emphasize that it's a singleton.
8658         * ace/Containers.cpp:  Fixed the problem caused by
8659           ACE_Unbounded_Stacknotkeeping its size currectly. Thanks for
8660           Matthias Kerkhoff <make@cs.tu-berlin.de> for sending us the
8661           patch.
8663         * ace/OS.cpp (exit): Corrected a bug in ACE_TSS_Cleanup::exit ().
8664           It innocently uses default ctor to copy info_arr.  And things
8665           get out of hand when info_arr[] gets destructed.  Thanks very
8666           much for Matthias Kerkhoff <make@cs.tu-berlin.de> for digging
8667           this out and sending us the patch.
8669 Wed Jul 30 13:36:55 1997  David L. Levine  <levine@cs.wustl.edu>
8671         * ace/config-vxworks-ghs-1.8.h: added #ifdef ppc wrapper around
8672           #define of ACE_HAS_POWERPC, because GreenHills #defines that.
8674         * include/makeinclude/platform_vxworks5.x_ghs.GNU: replaced
8675           indlib.o LIBS with newer ghsbltin.o and ghsmath.o.
8677         * ace/OS.h: use the same ACE_UNUSED_ARG definition with ghs as
8678           with other compilers.
8680         * ace/Object_Manager.*: revised interface, but still in flux.
8681           cleanup () should work for process-wide registration, but is
8682           untested.
8684 Wed Jul 30 11:13:57 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
8686         * ace/config-linux*.h (ACE_HAS_LONGLONG_T): These configs
8687           file incorrectly had ACE_HAS_LONGLONG rather than
8688           ACE_HAS_LONGLONG_T.
8690         * ace/OS.cpp (gethrtime): Added 'volatile' keyword to insure that
8691           the automatic variables 'most' and 'least' don't get put into
8692           registers.  Putting this in stopped the SIGSEGV that was occurring
8693           in Linux.
8695 Wed Jul 30 06:53:30 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8697         * ACE version 4.2.26, released Wed Jul 30 06:53:30 1997.
8699 Wed Jul 30 04:36:39 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8701         * ace/Containers.{h,cpp}: Added back new parameterized allocation
8702           strategy version.  Finally.
8704         * ace/Synch.cpp (atexit): Moved ACE_Allocator here because only
8705           here, we can be sure that no other user defined memory
8706           activities are going on.  This is becoming even more
8707           interesting now....  Perhaps we should move all
8708           close_singleton's here?
8710         * ace/Service_Config.cpp (close_singletons): Removed
8711           ACE_Allocator::close_singleton () from this function because we
8712           still need ACE_Allocator to "free" static objects' memory.
8714         * ace/Synch.{h,cpp}: Added a new class ACE_Static_Object_Lock
8715           which provides a lock when instantiating static objects.
8717         * ace/Thread_Manager.cpp: Removed ace_thread_manager_lock_,
8718         * ace/Service_Repository.cpp: Removed ace_service_repository_lock_,
8719         * ace/ReactorEx.cpp: Removed ace_reactorex_lock_,
8720         * ace/Reactor.cpp: Removed ace_reactor_lock_,
8721         * ace/Proactor.cpp: Removed ace_proactor_lock_,
8722         * ace/Malloc.cpp: Removed ace_malloc_lock_,
8723           and replace them with a global single lock
8724           ACE_Static_Object_Lock::get_lock ().
8726 Tue Jul 29 16:25:48 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
8728         * ace/OS.cpp (thr_create): Explicitly flagged 'stack' and 'size'
8729           as unused arguments.
8731         * ace/Memory_Pool.cpp (handle_signal): Explicitly flagged siginfo
8732           as an unused argument, and moved the decl of offset into the
8733           conditional block in which it's used.
8735         * ace/OS.i (dlerror): Added explicit cast of the return value to
8736           (char*) because on Linux dlerror() returns const char*, while on
8737           Solaris it's char*.
8739         * ace/config-linux-lxpthreads.h: Created new flag
8740           ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS that can be used when only
8741           certain functions are missing POSIX prototypes.  This eliminates
8742           more warnings with -Wall
8744         * ace/ACE.cpp (max_handles): Added return statement for the
8745           RLIMIT_NOFILE case.
8746           (count_interfaces): Removed unused variables.
8748 Tue Jul 29 15:10:35 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8750         * ace/OS.i: Changed sema_wait to take in a const ACE_Time_Value
8752 Tue Jul 29 12:41:27 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
8754         * ace/config-sco-5.0.0-mit-pthread.h: Added the
8755           ACE_LACKS_PWD_FUNCTIONS macro.  Thanks to Arturo Montes
8756           <mitosys@colomsat.net.co> for reporting this.
8758 Tue Jul 29 13:10:00 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8760         * ace/Signal.h: Moved inclusion of "Containers.h" to the bottom of
8761           this file so everything is defined properly before use.
8763 Tue Jul 29 12:36:24 1997    <irfan@TWOSTEP>
8765         * tests/Message_Queue_Test.cpp (main): Removed dynamic allocation
8766           of the string array.
8768 Tue Jul 29 12:15:49 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
8770         * ace/Proactor.cpp
8771         * ace/Reactor.cpp:
8772         * ace/ReactorEx.cpp: Changed the default Timer Queue to
8773           Timer Heap instead of Timer List.
8775 Tue Jul 29 07:59:04 1997  David L. Levine  <levine@cs.wustl.edu>
8777         * Makefile,TAO/Makefile: change mode of updated ChangeLog-*
8778           file to 644 after updating it, when building a release
8779           with TIMESTAMP enabled.
8781         * ace/OS.cpp (sched_params): added some more initializations
8782           to 0 to avoid Purify warnings about unitialized memory reads.
8784         * ace/Object_Manager.cpp (~ACE_Object_Manager): removed unused
8785           variable "i".  Thanks to Amos Shapira <amos@gezernet.co.il>
8786           for reporting this.
8788         * ace/Service_Record.{h,i} Parse_Node.{h,cpp} (handle,open_handle):
8789           removed "const" from ACE_SHLIB_HANDLE return value.  Thanks
8790           to the several people who noted compiler warnings from this.
8792         * ace/Naming_Context.cpp: added delete of this->name_options_;
8793           (dtor,fini): call this->close ().
8795         * tests/IOStream_Test.cpp (client,server): use ACE_NEW_RETURN
8796           instead of new.
8798 Tue Jul 29 01:53:18 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8800         * ace/OS.h: Added two new macros ACE_NEW_MALLOC_RETURN and
8801           ACE_NEW_MALLOC.  Theses are similiar to ACE_ALLOCATOR_RETURN and
8802           ACE_ALLOCATOR that allow memory allocation using user defined
8803           functions.  However, these two macros will call specified
8804           constructor after memory is being allocated.
8806         * ace/Containers.{h,cpp}: Decoupled memory allocation strategy for
8807           ACE_Unbounded_Stack, ACE_Unbounded_Set, ACE_Unbounded_Queue.
8808           Users can now specified their own memory allocation strategies
8809           if needed.  If not specified, the default ACE_Allocator will be
8810           used.
8812 Tue Jul 29 00:56:54 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8814         * ACE version 4.2.25, released Tue Jul 29 00:56:54 1997.
8816 Mon Jul 28 16:23:26 1997  David L. Levine  <levine@cs.wustl.edu>
8818         * include/makeinclude/rules.nested.GNU: added missing
8819           semicolon at end of last statement.  Thanks to Amos
8820           Shapira <amos@gezernet.co.il> for providing this fix.
8822         * ace/OS.h (VxWorks only): only #include <stdarg.h> before
8823           <vxWorks.h> for GreenHills.  Thanks to Dave Moore
8824           <dave.moore@gecm.com> for reporting a problem without this
8825           fix with g++/VxWorks 5.3.1 for PowerPC target.
8826           Also, commented out g++ string.h hack.  It no longer appears
8827           to be necessary.
8829         * tests/README: added VxWorks 5.3.1 test status.
8831         * tests/SPIPE_Test.cpp (main): fixed #ifdefs so that it compiles.
8833         * ace/OS.i: (strtok_r): replaced NULL with 0.  NULL is #defined
8834           as (void *) 0 on VxWorks, so it causes compile warnings.
8835           Thanks to Dave Mayerhoefer <davem@lynx.com> for reporting
8836           this problem.
8838         * ace/Object_Manager.{h,cpp},Makefile: added this class to
8839           shutdown ACE library services, and reclaim their storage,
8840           at program termination.
8842         * ace/ACE.cpp: added hook to call ACE_Object_Manager destructor
8843           in this file.  It's in this file so that it's sure to be
8844           linked in to executables that statically link libACE.a.
8846         * ace/Service_Config.{h,cpp}: (close): delete ACE_STATIC_SVCS
8847           instance, which is now saved in static_svcs_.  Also, removed
8848           LM_SHUTDOWN call, because the logger apparently gets shutdown
8849           now with everything else (with ACE_Object_Manager).
8851         * ace/Object_Manager.* (delete_at_exit,delete_array_at_exit):
8852           made these (inline) static functions, with return values.
8854         * tests/IOStream_Test.cpp (client,server): explicitly destroy
8855           (and create) ACE_SOCK_IOStream instances, because they don't
8856           get destroyed on Solaris.  They're on the stack of separate
8857           threads, so maybe the problem is related to not cleaning up
8858           TSS on Solaris.  Thanks to James CE Johnson <jcej@lads.com>
8859           for some efficient debugging work, and for verifying that the
8860           original code works properly on Linux.
8862 Mon Jul 28 21:59:09 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8864         * ace/ace.mak: Added file Object_Manager.cpp.
8866         * ace/OS.h: Added #define RTLD_LAZY when
8867           ACE_HAS_SVR4_DYNAMIC_LINKING and RTLD_LAZY is not defined.
8868           FreeBSD 2.2.1 "forgot" to put in this definition.  Thanks to
8869           Satoshi Ueno for reporting this.
8871 Mon Jul 28 13:27:21 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
8873         * ace/Object_Manager: Made a few minor stylistic updates.
8875         * netsvcs/servers/main.cpp (main): Updated this test program to
8876           utilize the new ACE_Service_Object_Ptr class.
8878         * ace/Service_Object.h: Added a new smart pointer call
8879           ACE_Service_Object_Ptr, which generalizes functionality that was
8880           previously in the ./netsvcs/server/main.cpp file.  Thanks to Wei
8881           Chiang for this suggestion.
8883         * examples/Threads/process_manager.cpp (parse_args): Removed the
8884           unused n_processes global variable.  Thanks to Amos Shapira for
8885           reporting this.
8887         * tests/SPIPE_Test.cpp (main): Cleaned up the #ifdef structure
8888           to remove compiler warnings.  Thanks to Amos Shapira for
8889           this.
8891         * tests/Handle_Set_Test.cpp (test_performance): Removed an unused
8892           ACE_HANDLE handle definition.  Thanks to Amos Shapira for
8893           reporting this.
8895         * ace/OS.i (sema_init): Swapped else and #endif to avoid
8896           a compile error when ACE_LACKS_NAMED_POSIX_SEM is false.
8897           Thanks to Wei Chiang for reporting this.
8899         * ace/OS.cpp (rwlock_init): Added a cast to (const void *) to keep
8900           certain compilers from complaining.  Thanks to Thilo and
8901           Amos Shapira for reporting this.
8903         * ace/OS.i (sema_wait): *tv should have been &tv.  Thanks to Thilo
8904           for reporting this.
8906 Mon Jul 28 13:57:21 1997  James C Hu <jxh@swarm.cs.wustl.edu>
8908         * ace/config-irix6.4-sgic++.h: Added template specialization #def.
8910 Sun Jul 27 20:47:01 1997  David L. Levine  <levine@cs.wustl.edu>
8912         * tests/Handle_Set_Test.cpp: Instantiate templates with
8913           ACE_HANDLE instead of int.
8915         * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main): use
8916           ACE_OS::fprintf () instead of cerr.
8918 Sun Jul 27 20:10:26 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8920         * ACE version 4.2.24, released Sun Jul 27 20:10:26 1997.
8922 Sun Jul 27 16:03:30 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8924         * tests/Handle_Set_Test.cpp (test_boundaries): Changed class of
8925           queue from ACE_Unbounded_Queue<int> to
8926           ACE_Unbounded_Queue<ACE_HANDLE> so it declares the right data
8927           type.
8929         * ace/Synch.cpp (ACE_Process_Mutex):
8930         * ace/OS.cpp (rwlock_init):
8931         * ace/ACE.cpp (unique_name): Memories for placing unique_name are
8932           now declared using ACE_UNIQUE_NAME_LEN.  When calling
8933           ACE::unique_name, the length is also specified using
8934           ACE_UNIQUE_NAME_LEN because using "sizeof (buffer)" also caused
8935           problem if we are using UNICODE.
8937         * ace/OS.h: Added a new directive ACE_UNIQUE_NAME_LEN to specified
8938           the maximum length of an "unique name."
8940 Sun Jul 27 15:32:08 1997  David L. Levine  <levine@cs.wustl.edu>
8942         * tests/Handle_Set_Test.cpp (main): uncommented
8943           test_duplicates () and test_performance () calls, and added
8944           ACE_Unbounded_Queue_Iterator<int> specialization.
8946 Sun Jul 27 14:25:33 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
8948         * tests/Handle_Set_Test.cpp (test_boundaries): Added a better test
8949           to ensure that the ACE_Handle_Set_Iterators are working
8950           correctly.  This works by inserting the handles in a queue and
8951           then making sure that they are the same values we receive from
8952           the iterator.
8954         * ace/Handle_Set.i (operator): Fixed a subtle bug in the
8955           ACE_Handle_Set_Iterator implementation.  We need to make
8956           sure that we increment the handle_index_ to the beginning
8957           of the next word whenever we've examined all the bits in
8958           the current word.  Thanks to David Levine for noticing this
8959           problem.
8961 Sun Jul 27 09:06:29 1997  David L. Levine  <levine@cs.wustl.edu>
8963         * include/makeinclude/rules.lib.GNU: replaced hard-coded ".so"
8964           with "$(SOEXT)".
8966         * include/makeinclude/rules.local.GNU: added/completed support
8967           for "$(SOEXT)", and "$(VSHDIR)" instead of always hard-coding
8968           them as ".so" and ".shobj/".
8970         * include/makeinclude/wrapper_macros.GNU: added support for
8971           override of "$(VSHDIR)" in platform_macros.GNU.
8973         * apps/JAWS/clients/{Blobby,Caching}/Makefile,
8974           apps/JAWS/stress_testing/Makefile,
8975           apps/Orbix-Examples/Event_Comm/{Consumer,Supplier}/Makefile,
8976           examples/ASX/Event_Server/Event_Server/Makefile,
8977           examples/ASX/UPIPE_Event_Server/Makefile,
8978           examples/Logger/simple-server/Makefile,
8979           examples/Mem_Map/IO-tests/Makefile,
8980           examples/Naming/Makefile,
8981           examples/Reactor/Multicast/Makefile,
8982           examples/Service_Configurator/Misc/Makefile,
8983           examples/Shared_Malloc/Makefile:
8984           replaced hard-coded ".shobj" with "$(VSHDIR)" in LDLIBS definitions.
8986         * include/makeinclude/platform_vxworks5.x_{g++,ghs}.GNU:
8987           added overrides of .so build rules to change them .o builds.
8989         The above changes allow builds of modules that specify .shobj/*.so
8990         on VxWorks, by mapping those objects to .obj/*.o.
8992 Sun Jul 27 03:07:35 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
8994         * ace/ACE.cpp (unique_name): Added __TEXT macro to the format
8995           string in sprintf to avoid a nasty problem when using UNICODE on
8996           NT.
8998 Sat Jul 26 21:12:07 1997  David L. Levine  <levine@cs.wustl.edu>
9000         * ace/ReactorEx.cpp: added a couple of ACE_UNUSED_ARG's.
9002         * examples/Logger/simple-server/Logging_Handler.cpp (handle_input):
9003           replace use of cerr with stderr (by using default arg of
9004           ACE_Log_Record::print ()).
9006         * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): use
9007           ACE_OS::printf () instead of cout.
9009         * examples/Shared_Malloc/test_persistence.cpp: added #include
9010           of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
9012 Sat Jul 26 15:55:43 1997    <irfan@TWOSTEP>
9014         * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed (T *) to
9015           (T*). VC++ did not like the former.
9017         * The entire ACE distribution was updated to use the new singleton
9018           methods.  The old singleton methods in Service_Config have been
9019           deprecated and users are encouraged not to use these methods
9020           anymore.  It may not be supported in future releases.  The
9021           replacement is the instance() methods in the individual classes.
9022           For example, ACE_Service_Config::reactor() is replaced by
9023           ACE_Reactor::instance().  A perl script has been added
9024           (ACE_wrappers/bin/Service_Config.perl) to allow users to change
9025           their code over to the new methods.
9027           These changes will hopefully help in reducing the compile-time
9028           dependencies in ACE source files and allow smaller custom ACE
9029           libraries to be compiled.
9031           Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for making
9032           these changes.
9034 Sat Jul 26 15:44:45 1997  Douglas C. Schmidt  <schmidt@mambo.cs.wustl.edu>
9036         * ace/Malloc_T.cpp (ACE_Cached_Allocator): I think we want to
9037           say "sizeof (T)" rather than "sizeof (T *)".
9039         * ace/FILE_IO.i (recv_n): There is a minor bug fix to be made in
9040           FILE_IO.i.  The method ACE_FILE_IO::recv_n() should call
9041           ACE::read_n(), not ACE::recv_n().  Similarly, the method
9042           ACE_FILE_IO::send_n() should call ACE::write_n(), not
9043           ACE::send_n().  The functions ::recv() and ::send() are intended
9044           only for *socket* I/O, and return failure conditions when
9045           applied to *file* I/O.  Thanks to David Brackman
9046           <dbrackman@OhioEE.com> for reporting this.
9048         * ace: Changed all LOCK names to ACE_LOCK to avoid clashes
9049           with macros in the KAI C++ compiler.  Thanks to Jeff
9050           R. Hayes <Jeff.Hayes@osi.com> for pointing this out.
9052         * ace/Malloc_T.i: Added ACE_INLINE to some methods that weren't
9053           getting inlined.
9055         * ace/OS.i: Added an implementation of timed semaphores for the
9056           POSIX threading APIs.  Also cleaned up the return values from
9057           sema_wait() so that it always returns -1 if an error occurs
9058           (originally, it was returning -2, which is confusing).  Also
9059           cleaned up the rd_lock() and wr_lock() methods in the same way.
9061 Sat Jul 26 16:00:05 1997  David L. Levine  <levine@cs.wustl.edu>
9063         * Malloc_T.cpp (ACE_Cached_Allocator): fixed typo, sizeof (T*)
9064           instead of sizeof (*T).
9066         * Proactor.cpp (instance): fixed signature in non-WIN32
9067           version.  (run_event_loop): added ACE_UNUSED_ARG (tv).
9069 Fri Jul 25 12:08:47 1997  David L. Levine  <levine@cs.wustl.edu>
9071         * ace/OS.[hi]: finished VxWorks (non-POSIX) semaphore implementation.
9073         * ace/Process.cpp (spawn): with GreenHills compiler only (for
9074           VxWorks), call ACE_NOTSUP_RETURN instead of spawning via execve.
9075           GreenHills 1.8.8 loses its lunch on the ACE_OS::execve () call.
9076           Thanks to Dave Mayerhoefer <davem@lynx.com> for reporting
9077           this problem.
9079         * tests/Mem_Map_Test.cpp (create_test_file): delete array "mybuf"
9080           to prevent memory leak.
9082         * tests/Message_Queue_Test.cpp (main): delete "buffer"
9083           elements at end of test to prevent memory leaks.
9085         * performance-tests/Misc/context_switch_time.cpp: use
9086           ACE_Sched_Params for platform-independent thread priority
9087           assignment.  Also, modified Yield_Test so that only one thread
9088           writes the test's timer.
9090         * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc):
9091           replaced an iostream printout with an ACE_DEBUG call.
9093         * examples/ASX/UPIPE_Event_Server/event_server.cpp: added
9094           #include of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
9096         * examples/IPC_SAP/FILE_SAP/client.cpp: require 2 args instead
9097           of 1; mask file mode with 0777 (octal); and use
9098           ACE_OS::printf () instead of cout.
9100 Fri Jul 25 00:46:22 1997    <irfan@TWOSTEP>
9102         * ace/Synch: Added documentation for Condition variables.  Thanks
9103           to Jeff <jmg@trivida.com> for pointing out the lack of
9104           documentation.
9106 Thu Jul 24 11:48:05 1997  David L. Levine  <levine@cs.wustl.edu>
9108         * Makefile,TAO/Makefile: added a filter to exclude backup and
9109           [.]#* files from releases.  Thanks to Carlos O'Ryan
9110           <coryan@mat.puc.cl> for reporting this problem.
9112         * include/makeinclude/platform_*.GNU: inserted CVS/RCS
9113           keyword string.
9115         * performance-tests/Misc/basic_perf.cpp (per_iteration):
9116           added support for ACE_U_LongLong.
9118         * performance-tests/Misc/childbirth_time.cpp:
9119           (prof_fork,prof_native_thread): added ACE_UNUSED_ARGs
9120           for unsupported platforms.  (prof_ace_os_thread): added
9121           (ACE_THR_FUNC) cast of first arg to ACE_OS::thr_create () call.
9123         * performance-tests/Misc/test_naming.cpp (find): replaced cerr
9124           statement with an ACE_DEBUG.
9126         * examples/Misc/test_read_buffer.cpp: replaced bare OS calls
9127           with ACE_OS calls.
9129 Thu Jul 24 11:35:37 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
9131         * ace/Timer_Heap_T.cpp:  Fixed a problem with reschedule()
9132           corrupting the free list in Timer Heap.  Thanks to
9133           James Crawford <jamesc@in.ot.com.au>, Silvano Peruzzi
9134           <silvanop@in.ot.com.au>, and Stuart Powell <stuartp@in.ot.com.au>
9135           for the fix.
9137 Wed Jul 23 23:29:15 1997    <irfan@TWOSTEP>
9139         * ace/Message_Block.cpp (size): Changed the comparison from
9140           (length < this->max_size_) to (length <= this->max_size_).
9141           Thanks to Paul <proman@npac.syr.edu> for suggesting this change.
9143 Wed Jul 23 21:54:23 1997  David L. Levine  <levine@cs.wustl.edu>
9145         * examples/Shared_Malloc/test_malloc.cpp (spawn): cast argv
9146           argument to (char *const *) for call to ACE_OS::execv ().
9148 Wed Jul 23 16:40:39 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
9150         * ace/ACE.cpp (get_ip_interfaces): ACE'ified codes for NT.  UNIX
9151           part will come later.
9153         * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed to use raw
9154           memory allocation method for memory pool.
9156         * ace/OS.h (ACE_TEXT_STRING): Added this #define macro to switch
9157           between ACE_WString and ACE_CString according to the usage of
9158           UNICODE.
9160 Wed Jul 23 14:43:11 1997  David L. Levine  <levine@cs.wustl.edu>
9162         * tests/Timer_Queue_Test.cpp(main): delete timer_id array at
9163           the end of the test to avoid a memory leak.
9165 Wed Jul 23 13:40:39 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
9167         * ace/Process.cpp (ACE_Tokenizer::next): Moved checking of string
9168           termination after checking delimiter and preserve_designator so
9169           that we can use this class to tokenize multiple null terminated
9170           strings cascaded together (using \0 as delimitor.)  Notice tne
9171           combined strings must be terminated with two null chars.  I need
9172           to use this class in ACE::get_ip_interfaces.
9174         * ace/Malloc_T.{h,i}:  Changed the implementation of
9175           ACE_Cached_Mem_Pool_Node from using union to a plain pointer.
9176           This is because some C++ compilers don't allow union member to
9177           have copy constructor.  Thanks to Tim to dig this out.
9179 Wed Jul 23 12:58:04 1997  Steve Huston  <shuston@riverace.com>
9181         * ace/CORBA_Ref.cpp: Added #include "ace/Log_Msg.h" to catch the
9182           ACE_DEBUG macro.