summaryrefslogtreecommitdiff
path: root/ACE/ChangeLogs/ChangeLog-97a
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ChangeLogs/ChangeLog-97a')
-rw-r--r--ACE/ChangeLogs/ChangeLog-97a9203
1 files changed, 9203 insertions, 0 deletions
diff --git a/ACE/ChangeLogs/ChangeLog-97a b/ACE/ChangeLogs/ChangeLog-97a
new file mode 100644
index 00000000000..161d4746d2d
--- /dev/null
+++ b/ACE/ChangeLogs/ChangeLog-97a
@@ -0,0 +1,9203 @@
+Thu Jul 3 20:36:19 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
+
+ * performance-tests/Misc/childbirth_time.cpp: Changed the
+ parameter type of "Profiler" from int to size_t to make g++
+ happy.
+
+Thu Jul 03 20:03:18 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Reactor.cpp (remove_handler): added ACE_UNUSED_ARG
+ when NSIG != 0.
+
+Wed Jul 2 23:41:43 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
+
+ * performance-tests/Misc/childbirth_time.cpp: Fixed some typos.
+
+Wed Jul 2 23:13:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * performance-tests/Misc/childbirth_time.cpp: Revised the
+ code to use ACE programming style.
+
+Wed Jul 02 23:02:24 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.15, released Wed Jul 02 23:02:24 1997.
+
+Wed Jul 2 22:23:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Service_Config.cpp: Used the new ACE_LACKS_UNIX_SIGNALS
+ macro to reduce the #ifdef complexity somewhat.
+
+ * ace/config-{chorus,win32-common}.h: Added #define for
+ ACE_LACKS_UNIX_SIGNALS.
+
+ * ace/OS.h: If a platform (e.g., Chorus) doesn't support signals
+ then #define NSIG 0.
+
+ * ace/Reactor.cpp: Chorus does not support signals. Make the call
+ to register/remove_handler(sig_set, evnet_handler) return
+ succesfully so that some of the examples and test programs do
+ not need to be changed. Thanks to Wei Chiang for this.
+
+ * ace/config-chorus.h: Added a new macro for
+ ACE_LACKS_NAMED_POSIX_SEM to handle Chorus. Thanks to Wei
+ Chiang for this.
+
+ * ace/OS.i: Define macros ACE_PTHREAD_CLEANUP_* so that the
+ related code does not need to be surrounded with #ifdefs.
+ Thanks to Wei Chiang for this.
+
+ * ace/OS.i: Chorus does not support named semaphores. The code
+ that to do with names in sema_init() and sema_destory() is
+ therefore disabled. Thanks to Wei Chiang for this.
+
+ * ace/config-chorus.h: Added support for ACE_LACKS_PTHREAD_CLEANUP
+ and ACE_HAS_POSIX_SEM to the Chorus port. Thanks to Wei Chiang
+ for this.
+
+Wed Jul 2 17:37:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Hash_Map_Manager.cpp: Clarified the behavior of close_i() a
+ bit more.
+
+Wed Jul 2 09:54:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Hash_Map_Manager.cpp: Fixed a couple more size_t->u_long
+ conversions for ACE_Hash_Map_Manager::hash(). This didn't harm
+ anything but it's good to be consistent.
+
+Wed Jul 2 16:46:59 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
+
+ * performance-tests/Misc/childbirth_time.cpp: Added this program
+ to measure child process/thread creation mechanisms on various
+ platforms. Native thread creation test only supports Solaris
+ and NT threads so far. But you can still use ACE_OS::thr_create
+ method on your platform if not supported.
+
+Wed Jul 2 15:59:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/High_Res_Timer.cpp: Created a function get_registry_scale_factor
+ that finds out the speed of the processor using the NT registry (in
+ megahertz). This means that ACE_High_Res_Timers should automatically
+ get the correct scale factor.
+
+ * tests/Timer_Queue_Test.cpp: Removed the call to
+ get_env_global_scale_factor().
+
+Wed Jul 2 15:39:33 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
+
+ * ace/Process.cpp: Modified spawn to check for the NO_EXEC
+ flag after forking on UNIX. If it's set, spawn returns the
+ child pid without exec'ing. Updated the NT version to
+ always return the child pid on success.
+
+Wed Jul 02 10:55:23 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/SPIPE_Test.cpp,UPIPE_SAP_Test.cpp: tweaked the static
+ functions a bit to avoid warnings about unused statics on VxWorks.
+
+Wed Jul 02 00:16:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.14, released Wed Jul 02 00:16:07 1997.
+
+Tue Jul 1 22:49:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Strategies_T.h: Changed the return value of all the hash()
+ methods to be u_long.
+
+ * tests/Map_Manager_Test.cpp (hash): Changed the return value of
+ all the hash() methods to be u_long.
+
+ * ace/SString.cpp: Changed the return value of all the hash()
+ methods to be u_long.
+
+ * ace/Hash_Map_Manager: Changed the return value of hash()
+ to return a u_long in order to (1) be consistent with
+ the return value of hash_pjw() and (2) give the maximal
+ range for the hash function. Thanks to Marina Spivak
+ <marina@cs.wustl.edu> for reporting this.
+
+Tue Jul 01 14:47:22 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/High_Res_Timer.{h,i} (gettime): use gettime () static function
+ to wrap all calls to ACE_OS::gethrtime (). On ACE_WIN32, if the
+ global scale factor has not been set, then gettime () uses
+ ACE_OS::gettimeofday () instead of ACE_OS::gethrtime (), because
+ gettimeofday doesn't need the scale factor.
+
+Mon Jun 30 17:28:53 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * Makefile (RELEASE_FILES): Removed the rpc++ directory from the
+ main release since this doesn't seem to be widely used and the
+ GPL copyleft confuses people.
+
+Mon Jun 30 15:08:04 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/platform_vxworks5.x_g++.GNU: added -lgcc
+ to LDFLAGS.
+
+Mon Jun 30 12:00:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.13, released Mon Jun 30 12:00:02 1997.
+
+Sat Jun 28 08:27:27 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: added definitions of ACE_SHLIB_HANDLE and
+ ACE_DEFAULT_SHLIB_MODE on platforms other than
+ ACE_HAS_SVR4_DYNAMIC_LINKING and hpux.
+
+ * ace/OS.i: split definitions of ACE_OS::cond_* member
+ functions into two: for ACE_WIN32/VXWORKS and all others.
+ That allows us to break the circular dependencies between
+ those functions and the ACE_OS::sema_* member functions.
+
+ * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
+ assignments in "if" conditionals with parenthesis to avoid
+ g++ warnings.
+
+ * ace/{ACE,INET_Addr,OS}.cpp (VxWorks only): added ACE_UNUSED_ARG
+ calls.
+
+ * ace/Parse_Node.cpp (ACE_Stream_Node,ACE_Dynamic_Node,ACE_Dummy_Node
+ constructors): reordered initializers to match declaration order.
+
+ * ace/Profile_Timer.h (elapsed_time): commented out unused arg "et".
+
+ * ace/Read_Buffer.cpp (rec_read): initialized local variable "c" to
+ make sure that it is always defined before use.
+
+ * ace/SPIPE_Acceptor.cpp (remove): don't declare local variable
+ "result" if ! ACE_HAS_STREAM_PIPES, because it's not used in
+ that case.
+
+ * ace/config-vxworks5.x-g++.h: added ACE_LACKS_IOSTREAM_FX,
+ ACE_LACKS_LINEBUFFERED_STREAMBUF, and ACE_LACKS_SIGNED_CHAR.
+
+ * ace/IOStream_T.h (ipfx): comment out unused variable "need".
+
+ * platform_vxworks5.2_g++.GNU: added -Wall now that the ACE library
+ builds cleanly with it.
+
+ * platform_vxworks5.x_g{++,hs}.GNU: renamed 5.x instead of 5.2.
+
+ * netsvcs/lib/Token_Handler.cpp: reordered initializers to match
+ declaration order.
+
+ * tests/SV_Shared_Memory_Test.cpp: moved template specializations
+ so that they're not done on platforms that don't support SV IPC.
+
+ * examples/IOStream/client/iostream_client.cpp,
+ examples/IOStream/server/iostream_server.cpp:
+ use ACE_HAS_STRING_CLASS rather than __GNUC__ to determine whether
+ the platform has a String class.
+
+Fri Jun 27 13:10:46 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
+
+ * ace: Changed the name of config-vxworks5.2-g++.h to
+ config-vxworks5.x-g++.h since it works with 5.2 and 5.3.
+
+ * examples/Mem_Map/IO-tests/IO_Test.cpp: Fixed some bugs that were
+ preventing this from running correctly.
+
+Fri Jun 27 13:37:37 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/Svc_Conf.y: Finished the sanity checks started below.
+
+Fri Jun 27 11:55:13 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Timer_Queue_T.cpp: added a check for an empty queue in expire
+
+Fri Jun 27 07:53:58 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Message_Queue_Notifications_Test.cpp (handle_output,
+ handle_exception,main): added ACE_UNUSED_ARG (fd) to avoid
+ compilation warnings about unused arguments.
+
+Fri Jun 27 01:08:54 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Connector.cpp (create_AST): Replaced the gratuitous #ifdef
+ for ACE_WIN32 and EXCEPT_MASK with the new CONNECT_MASK. This
+ is much cleaner!
+
+ * ace/Event_Handler.h: Added a new CONNECT_MASK that defaults to
+ READ_MASK | WRITE_MASK (with | EXCEPT_MASK thrown in for Win32).
+ Thanks to Irfan for this suggestion.
+
+Thu Jun 26 19:53:11 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/OS.i (strtok_r): Added check on a null string so we won't go
+ past the end of a string.
+
+ * performance-tests/Misc/context_switch_time.cpp (main): Added
+ get_env_gloval_scale_factor() at the very beginning so that high
+ resolution timer can return correct time in millisecond.
+
+Thu Jun 26 15:29:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * tests/Timer_Queue_Test.cpp: Changed the random scheduling to use
+ past times instead of future time. This should fix some unusual
+ behavior of this test. Thanks to Gonzalo A. Diethelm
+ <gonzo@ing.puc.cl> for reporting this.
+
+Thu Jun 26 12:38:16 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.12, released Thu Jun 26 12:38:16 1997.
+
+Thu Jun 26 01:11:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Svc_Conf.y: Added some sanity checks to make sure we don't
+ segfault when things go wrong during the svc.conf file parsing.
+ Thanks to Steve Huston for this suggestion.
+
+Thu Jun 26 08:36:37 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile: fix UPTODATE check (for release target) by not
+ running it in a sub-shell. Also, added ACE-lessons.html
+ to RELEASE_FILES.
+
+ * performance-tests/Misc/context_switch_time.cpp: use same priority
+ values on Win32 platforms as on Solaris, because thread priority
+ increases with increasing priority values on both of those platforms.
+
+Thu Jun 26 01:34:46 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * performance-tests/Misc/misc.{mak,mdp}: Added makefile for NT.
+
+ * ace/{FILE,DEV}.{h,i}: Added the disable(int signum) function to
+ prevent NT from disabling a FILE/DEV using socket calls.
+
+Wed Jun 25 12:59:00 1997 <irfan@TWOSTEP>
+
+ * ace/Synch_T.h (ACE_SYNCH_PROCESS_MUTEX and
+ ACE_SYNCH_NULL_MUTEX): Added new template typedef to the list.
+
+ * tests/Message_Queue_Notifications_Test.cpp: New test for
+ demonstrating notification qualities of Message_Queue.
+
+ * ace/Strategies.h: Added accessors to these classes to make them
+ more usable.
+
+Wed Jun 25 10:47:34 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/Parse_Node.cpp: Insure that ACE_Object_Node::symbol(void)
+ returns 0 if the underlying shared library can't be loaded.
+
+ * ace/OS.h: Added a new type, ACE_SHLIB_HANDLE to allow dynamic
+ linking using correct types on all platforms that support it.
+ Also added a const ACE_SHLIB_DEFAULT_MODE for the 'mode' argument
+ when doing a dlopen-like operation.
+ Moved the ACE_OSCALL_* macros to this file from OS.i
+
+ * ace/OS.i: Moved ACE_OSCALL_* macros out of here and into OS.h.
+ Added support for dlopen/close/sym/error on HP-UX. Note - the
+ Service_Configurator tests do not run yet on HP - I'm working on
+ that.
+
+ * ace/Service_Record.{h, i, cpp}: Use new ACE_SHLIB_HANDLE type for
+ dynamic loading operations.
+
+ * ace/Parse_Node.{h, cpp}: Use new ACE_SHLIB_HANDLE where appropriate.
+
+ * ace/Strategies_T.cpp: Use new ACE_SHLIB_HANDLE type.
+
+Wed Jun 25 02:36:05 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/OS.i (gmtime_r): Modified the implementation of gmtime_r
+ when OS doesn't provide one. Notice that the implementation
+ only simulate the semantic and is not thread-safe.
+
+ * ace/OS.h: Moved definition of ACE_SHLIB_HANDLE typedef and
+ ACE_DEFAULT_SHLIB_MODE global variable for Win32 to where it
+ belongs.
+
+ * ace/OS.i: Changed the return type of dlopen() when ACE_HAS_UNICODE to
+ ACE_SHLIB_HANDLE.
+
+ * ace/OS.{h,i}: Moved ACE_OSCALL and ACE_OSCALL_RETURN for WIN32
+ from OS.i to OS.h.
+
+Wed Jun 25 01:23:58 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ace/OS.i (strtok_r): Modified the implementation when OS does
+ not provide reentrant strtok_r so that our imp. comforms with
+ the semantic of strtok_r ().
+
+Wed Jun 25 00:37:56 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.11, released Wed Jun 25 00:37:56 1997.
+
+Tue Jun 24 21:30:53 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
+ assignments in "if" conditionals with parenthesis to avoid
+ g++ warnings.
+
+Tue Jun 24 18:15:46 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ace/Reactor.cpp (wait_for_multiple_events): Modified the way to
+ manipulate timeout value so that we can differentiate when there
+ are timeout events to be handle from no timer and we want to
+ wait indefinitely.
+
+Tue Jun 24 16:52:22 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: reverted ACE_hrtime_t to unsigned __int64 with VC++.
+ This might break something, but we need to know what.
+
+Tue Jun 24 16:38:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * Added Visual C++ 5.0 specific workspace (.dsw) and project (.dsp)
+ files to both the ace and tests subdirectory. ACE.DSW in the root
+ directory contains all the project files, so a batch build should
+ be able to build all the project files.
+
+Tue Jun 24 14:27:47 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Timer_{Hash,Heap,List,Wheel}_T.cpp: Changed cancel (type..)
+ to call cancellation() even if there are no timers to cancel.
+ This causes the correct behavior of calling handle_close ()
+ during expire when handle_timeout() returns -1. Thanks to
+ Hamutal Yanay <hamutal_yanay_at_quantum@mail.icomverse.com> for
+ pointing this out.
+
+ * tests/Timer_Queue_Test.cpp: Updated to correctly test this.
+
+Tue Jun 24 13:02:51 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/SString.h (ACE_SString ctor): changed "allocator" to "alloc".
+ Thanks to Brian Mendel <bmendel@mdc.com> for reporting this.
+
+Tue Jun 24 12:58:28 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * include/makeinclude/platform_irix6.4*: Shuts up useless warnings
+ about multiply defined template instances.
+
+Tue Jun 24 12:50:52 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * ACE version 4.2.10, released Tue Jun 24 12:50:52 1997.
+
+Tue Jun 24 00:44:30 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/SPIPE.{h,i}: Added the disable(int signum) function to
+ prevent NT from disabling an SPIPE using socket calls.
+
+Mon Jun 23 22:14:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Svc_Conf*: Changed the name of the YYSTYPE field
+ ACE_Static_Node_ to static_node_ to be consistent with the other
+ fields.
+
+Mon Jun 23 18:28:55 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/ACE.cpp: added auto_basic_array_ptr specialization.
+
+ * ace/Service_Config.cpp, tests/Future_Test.cpp,
+ examples/Threads/future[12].cpp: added auto_basic_ptr
+ specializations.
+
+ * include/makeinclude/platform_vxworks5.2_g++.GNU:
+ reworked to supported different targets, instead of only PowerPC.
+
+Mon Jun 23 16:06:35 1997 James C. Hu <jxh@swarm.cs.wustl.edu>
+
+ * ace/OS.i: Moved definition of sema_* methods to follow cond_*
+ methods to remove compiler warnings on SGI.
+
+Mon Jun 23 09:42:08 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * tests/Timer_Queue_Test.cpp: added testing for cancellation
+ during expire (when of handle_timeout() in an event handler
+ returning -1).
+
+Mon Jun 23 09:18:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile: added up-to-date check for "make release" from
+ /project/adaptive/ACE_wrappers. Also, "make release" now
+ adds release entry to latest ChangeLog.
+
+ * ace/Makefile: build shared library before static library.
+ This appears to fix a problem with Sun C++ 4.{1,2} possibly
+ related to its template instantiation scheme. If the
+ static library is built first, then .shobj/Reactor.so
+ and .shobj/Timer_Hash.so (and possibly others) fail to
+ build due to ACE_TimeValue::normalize () "relocations remain
+ against allocatable but non-writable sections".
+ Thanks to Steve Huston <shuston@riverace.com> and
+ Satoshi Ueno <satoshi.ueno@gs.com> for reporting this, and
+ to Satoshi for verifying the fix.
+
+ * ace/ACE.cpp (terminate_process): removed used of
+ ACE_OSCALL_RETURN macro because its defined in OS.i, and so
+ not available if inlining is disabled.
+
+ * ace/Auto_Ptr.{h,i}: made "p_" protected instead of private
+ so that it can be accessed with the new class arrangement.
+ Also, made the auto_array_ptr operator-> const.
+
+ * ace/Sched_Params.cpp (previous_priority, VxWorks only):
+ removed ACE_UNUSED_ARG (policy) because policy is used in
+ this function.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): wrapped TCHAR
+ argument to sizeof in parenthesis.
+
+Mon Jun 23 09:12:04 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/Auto_Ptr.i (auto_array_ptr): Fixed a typo.
+
+Mon Jun 23 08:03:46 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Auto_Ptr.h: changed inheritance of auto_basic_array_ptr in
+ auto_array_ptr to include the template parameter X.
+
+ * ace/IOStream_T.i: removed default parameter in the definition
+ of ACE_Streambut_T::recv_n() and ACE_SOCK_Dgram_SC::recv_n()
+
+Mon Jun 23 01:13:15 1997 <irfan@TWOSTEP>
+
+ * ace/OS.cpp (fork_exec): Fixed the usage of ACE_WIDE_STRING.
+
+ * test_registry_iterator.cpp (main): Fixed the usage of
+ ACE_WIDE_STRING.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): Fixed the usage
+ of ACE_WIDE_STRING.
+
+ * ace/Auto_Ptr.h: Added support for basic types by seperating the
+ auto_ptr classes into two. One that requires the -> operator
+ support and the other that does not. The former inherits from
+ the latter.
+
+ * ace/{FILE,DEV,SPIPE}_Addr.h: Added support for multibyte and
+ wide character addr_to_string and string_to_addr functionality.
+
+ * ace/Connector.cpp && ace/Acceptor.cpp (info): Fixed sizeof bug.
+
+ * examples/Connection/blocking/SPIPE: Added UNICODE support for
+ this example.
+
+ * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING.
+
+ * ace/ACE.cpp (terminate_process): Fixed unused args errors.
+
+Sun Jun 22 09:58:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * Released version 4.2.9 for testing.
+
+ * ace/Log_Msg.cpp (open): Changed the use of ACE_LOG_MSG-> within
+ the open() method to use this-> in order to avoid deadlocks.
+ Thanks to Per Andersson for reporting this.
+
+ * ace/ACE.cpp: Changed the use of __SVR4 and __unix to sparc and
+ unix to work better with various UNIX environments. Thanks to
+ Michael R. MacFaden <mrm@cisco.com> for these changes.
+
+ * ace/Handle_Set.cpp (count_bits): Added special code to handle
+ the case where fdmask is typedef'd as a long rather than an int.
+ Thanks to Eric Newton <ecn@smart.net> and James Johnson for
+ reporting this.
+
+ * ace/IOStream.h: Changed the name of QuotedString to
+ ACE_Quoted_String to be consistent with the ACE naming scheme.
+ Thanks to James Johnson for suggesting this.
+
+ * ace/IOStream_T.i: Added this new file to split off the inlined
+ code from the header file.
+
+ * ace/ACE.cpp (terminate_process): Remove the
+ ACE_UNUSED_ARG(signum) from terminate_process(). Thanks to Wei
+ Chiang for reporting this.
+
+Sun Jun 22 17:19:18 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/Threads/process_manager.cpp (main): replaced call to
+ kill with terminate.
+
+Sat Jun 21 10:48:34 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/Reactor/FIFO: Added a new example that illustrates
+ how the Reactor and the FIFO wrappers work together. Thanks
+ to Johannes Gutleber <Johannes.Gutleber@cern.ch> for sending
+ this.
+
+ * tests/Time_Service_Test.cpp (main): Replaced the kill() call
+ with the terminate() call since kill() isn't portable across
+ platforms.
+
+ * ace/Process: The kill() method on this class was being used
+ incorrectly. I've created a new method called terminate() that
+ terminates the process.
+
+ * ace/Process_Manager: Renamed the kill() method to terminate()
+ and updated the implementation to use the new
+ ACE::terminate_process() call.
+
+ * ace/ACE: Moved the incorrect Win32 and Chorus implementations of
+ ACE_OS::kill() and put them in a new static method called
+ ACE::terminate_process().
+
+ * ace/ACE: Changed the name of the is_process_active() to the
+ more concise process_active().
+
+ * ace/OS.i: Added an implementation of ACE_OS::kill() for Chorus.
+ Note that this doesn't behave as UNIX does -- it kills the
+ process id rather than sending a signal! Thanks to Wei Chiang
+ <chiang@tele.nokia.fi> for these fixes.
+
+ * examples/Reactor/Misc/notification.cpp: Added patches to run
+ this example under Chorus. Thanks to Wei Chiang
+ <chiang@tele.nokia.fi> for these fixes.
+
+ * ace/Connector.cpp (create_AST): Changed the order of some
+ instructions in Connector::create_AST method to make it more
+ safer to use in multi-thread environment. Thank to Paul Han
+ <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
+
+ * ace/Connector.cpp (create_AST): Make sure to pass in the "mask"
+ when calling remove_handler() so that we get the right set of
+ bits removed from the Reactor.
+
+ * tests/Reactor_Timer_Test.cpp (class Time_Handler): Changed int
+ to long to avoid type conversion problems on 64 bit SGI. Thanks
+ to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
+
+ * examples/Reactor/FIFO: Added a test program to illustrate the
+ interaction of the ACE Reactor with the FIFO IPC mechanism.
+ Thanks to Johannes Gutleber <Johannes.Gutleber@cern.ch> for this
+ test.
+
+ * examples/Reactor/Misc/pingpong.cpp: Added support for Chorus.
+ Thanks to Wei Chiang <chiang@tele.nokia.fi> for this.
+
+ * ace: Added a number of minor changes to signal assignment
+ code so that ACE will compile with Tandem NonStop. Thanks
+ to Jan Perman <uabjjpp@osd.ericsson.se> for these fixes.
+
+ * ace/config-tandem.h: Added a new config file for the
+ Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman
+ <uabjjpp@osd.ericsson.se> for contributing this.
+
+ * include/makeinclude/platform_tandem.GNU: Added a new platform
+ file for the Tandem NonStop-UX 4.2MP platform. Thanks to
+ Jan Perman <uabjjpp@osd.ericsson.se> for contributing this.
+
+ * ace/config-unixware-2.1.2-g++.h: Added a new config file for
+ UNIXWARE 2.1.2. Thanks to Ganesh Pai (gpai@voicetek.com) for
+ contributing this.
+
+ * include/makeinclude/platform_unixware_g++.GNU: Updated the
+ UNIXWARE platform config file to work for version 2.1.2. Thanks
+ to Ganesh Pai (gpai@voicetek.com) for contributing this.
+
+ * ace/Handle_Set.cpp (count_bits): Added another 0xff mask to
+ prevent problems with sign extension on machines with 32 bit
+ ints and 64 bit longs. Thanks to James Johnson for reporting
+ this.
+
+ * ace/OS.h: Updated all of the ACE_DEFAULT* macros in OS.h so that
+ they can be overridden by #defines in the config.h file. Thanks
+ to Chuck Gehr for suggesting this.
+
+Thu Jun 19 22:20:20 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h (VxWorks/g++ only): added horrible hack to work around
+ mismatch of memcmp, etc., prototypes in <string.h>.
+
+ * ace/OS.i: reordered many function definitions to avoid use
+ before definition. Building with g++ 2.7.2 on VxWorks 5.3.1
+ revealed them.
+
+ * ace/config-vxworks5.2-g++.h: removed ACE_HAS_STRING_CLASS and
+ ACE_HAS_GNU_CSTRING_H, because those aren't distributed with
+ Tornado 1.0.1.
+
+Thu Jun 19 15:31:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Timer_Wheel_T.cpp: Fixed problem with expire () not
+ expiring timers with a timeout of the current time. This was
+ causing problems with Timer_Queue_Test when high profile
+ timers were disabled (such as Windows NT when the
+ environment variable ACE_SCALE_FACTOR was undefined)
+
+Wed Jun 18 19:43:35 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Signal.cpp: 'removed "const" from #define of
+ ACE_MAX_SIGNAL_HANDLERS because it broke Irix 6.2 build. Thanks
+ to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
+
+ * examples/Threads/task_four.cpp (Invoker_Task::svc): fixed typo,
+ n_tasks instead of ntasks.
+
+Wed Jun 18 11:25:14 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * examples/Threads/{task_four,token}.cpp: Changed the use of
+ cerr/cout to ACE_DEBUG macro. Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for pointing these out.
+
+Tue Jun 17 15:11:09 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos5.5-sunc++-4.x.h,
+ include/makeinclude/platform_sunos5_sunc++.GNU: support enabling of
+ exception handling via "exceptions=1" make flag. Exception handling
+ does seem to work with Sun C++ 4.2, even on MP machines, if patch
+ 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
+ is applied. Please beware that enabling of exception handling can
+ adversely affect peformance, even if the program doesn't use it.
+ So, we haven't enabled it by default. Thanks to Chris Cleeland
+ for suggesting not to enable it by default.
+
+ * ace/IOStream.h: added #include of "ace/config.h" so that
+ ACE_LACKS_ACE_IOSTREAM can be checked. Thanks to Ganesh Pai
+ <gpai@voicetek.com> for reporting this problem.
+
+ * ace/ACE.cpp (get_handle): use /dev/udp instead of /dev/ip on
+ SVR4 machines because it has other read permission by default
+ (on Solaris 2.x).
+
+ * ace/ACE.cpp (get_ip_interfaces): use auto_array_ptr instead of
+ auto_ptr so that the array gets deleted properly, and zero it
+ out to avoid unitialized memory read reports from Purify.
+
+ * ace/Timer_Hash_T.cpp (cancel): added "[]" to delete of timer_ids
+ array. Purify rules.
+
+ * Timer_Queue_Test.cppc (test_performance): added "[]" to delete of
+ times array. Purify rules.
+
+Tue Jun 17 15:31:01 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp: Fixed get_ip_interfaces (and count_interfaces) to
+ work properly on HP-UX (and probably other similar UNIXes). Needed
+ to work with non-IP interfaces present, and fixed to copy the
+ IP address without the fudge factor being applied.
+
+Tue Jun 17 14:02:01 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/{Free_List.h,Free_List.cpp,Timer_Queue_T.h}: Added #include
+ "ace/Synch_T.h" to Free_List.h and removed related inclusion
+ from Free_List.cpp and Timer_Queue_T.h. Thanks to
+ Jack Erickson <jack@cibc.com> for reporting this problem.
+
+Tue Jun 17 09:41:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Enum_Interfaces_Test.cpp: changed name of log file to match
+ the program name, so that the one-button test can easily find it.
+
+Tue Jun 17 04:58:38 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
+
+ * ace/Timer_Queue_T.h: Added include file "ace/Synch_T.h" to avoid
+ compilation errors in SC 4.1. We didn't notice this because
+ most of us have moved to SC 4.2. Don't know why this didn't
+ cause any problem in SC 4.2. Thanks to Jack Erickson
+ <jack@cibc.com> for reporting this bug.
+
+Mon Jun 16 22:25:18 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp: Fixed conditional compiles to compile the
+ interface counting code for HP - it reports 0 interfaces,
+ so it needs more debugging still.
+
+ * include/makeinclude/platform_hpux_aCC.GNU: added -g to link
+ command for building shared library.
+
+ * tests/Buffer_Stream_Test.cpp: fixes to execute correctly and only
+ fail assertions on real failures.
+
+Mon Jun 16 19:05:13 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/Free_List.cpp: added #include ace/Synch.h, needed by
+ Free_List.i. Fixes compile errors on HP-UX.
+
+Mon Jun 16 10:59:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Timer_Wheel_T.cpp: Changed expire () so it doesn't
+ access past the end of an array when it finds nothing to
+ expire. Thanks to Norbert Rapp
+ <norbert.rapp@nexus-informatics.de> for catching this.
+
+Sun Jun 15 03:44:21 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * examples/Threads/thread_specific.cpp (worker): Changed the
+ output of diagnostics from using cout to using printf. Also
+ corrected several portability problems. Thanks for Chuck Gehr
+ <gehr@sweng.stortek.com> for pointing these out.
+
+ * ace/OS.i (thread_mutex_trylock): Corrected the code for NT. Now
+ this function returns 0 if lock is obtained and -1 otherwise.
+ Thanks to Robert V. Head <rhead@virtc.com> for noticing this.
+
+ * performance-tests/Synch-Benchmarks/Synch_Tests.{mdp.mak}:
+ Added project workspace and makefile for NT to this directory.
+
+ * performance-tests/Synch-Benchmarks/svc.conf:
+ * performance-tests/Synch-Benchmarks/{Options,Benchmark}.h:
+ * performance-tests/Synch-Benchmarks/*.cpp: Reworked these
+ files to have them compiled on NT.
+
+Sat Jun 14 03:53:13 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp (class
+ Pipe_Proc_Test): Changed the type of pipe_handles[] from int to
+ ACE_HANDLE.
+
+ * performance-tests/Synch-Benchmarks/sysvsema_test.cpp: When
+ creating the semaphore, explicitly cast the key value to (key_t)
+ since NT couldn't handle the conversion.
+
+Fri Jun 13 19:32:03 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp: Fixed count_interfaces to compile on non-SVR4
+ systems such as HP-UX. Not tested yet.
+
+ * ace/OS.i: Fixed mis-arranged conditional compile for HP-UX in
+ asctime_r.
+
+Fri Jun 13 03:13:51 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ace/config-win32-common.h: Added a "pragma comment" directive to
+ direct MSVC to link in mswsock.lib automatically. Thanks to
+ Bill Tang <btang@magellan.com> for reminding this.
+
+ * ace/ace.{mak,mdp}: Removed explicit inclusion of mswsock.lib.
+ Thanks to Bill Tang <btang@magellan.com> for reminding this.
+
+ * examples/OS/Process/Process.{mdp,mak}: For some reasons, I got
+ an "unknown link error, please refer to documentation for
+ appropriate technical supports" when building this example on NT
+ (didn't help much, did it?) Reassigning the linked library
+ solved the problem.
+
+ * examples/OS/Process/process.cpp: Updated class name
+ ACE_ProcessEX to ACE_Process because ACE_ProcessEX no longer
+ exists. Also, all exec'ed programs' absolute names have been
+ changed and let the environment variable "path" to decide which
+ program(s) to exec.
+
+Thu Jun 12 15:48:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/ACE.cpp (get_ip_interfaces): Corrected code in the BSDish
+ section so that it at least compiles on Linux. I haven't tested
+ this AT ALL.
+
+ * ace/Timer_Queue_T.cpp (calculate_timeout): When this was called
+ with the default argument from handle_events(), max_timeout was
+ passed as zero, which would cause a SEGV when attempts were made
+ to deref it. Added protection to simply return a zero ptr in that
+ case.
+
+Thu Jun 12 13:18:03 1997 Steve Huston <shuston@riverace.com>
+
+ * ace/OS.{h,i,cpp}: Changes for HP-UX 10 primarily. Threads
+ support for DCE Draft 4 threads (bundled with HP-UX 10).
+ Correct usage of reentrant C library functions for HP-UX.
+
+ * ace/OS.i: Changed timeout argument to 2nd select function to
+ allow the compiler to pick a conversion operator. As it was,
+ HP compiler would not compile it.
+
+ * ace/Service_Object.cpp: When deleting the service memory pointed
+ to by a void *, use "operator delete" rather than deleting a void,
+ which is prohibited by the current ANSI C++ draft.
+
+ * ace/config-hpux-10.x.h: This is now a compiler-independent header
+ file, and is included by config-hpux-10.x-hpc++.h. This file
+ contains all correct settings for HP-UX 10.x, and compiler-specific
+ config files should use this - see config-hpux-10.x-hpc++.h.
+
+ * ace/config-hpux-10.x-hpc++.h: New config file for either of the HP
+ compilers (HP C++ or HP aC++). It figures it out internally, and
+ uses config-hpux-10.x.h for OS details.
+
+ * include/makeinclude/rules.lib.GNU: Allow for doing a PRELIB step
+ when building a shared library, and not using .shobj/*.so files.
+ This allows HP aC++ to close all template instantiations for the
+ entire library at once, rather than separately, reducing the
+ size of the resultant library significantly.
+
+ * include/makeinclude/platform_hpux-aCC.GNU: build libraries with
+ templates instantiated all at once. Compile with flags for using
+ the reentrant versions of C library functions.
+
+Wed Jun 11 15:20:15 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
+
+ * ace/Timer_Queue_T.{h,cpp} (calculate_timeout): Changed the
+ second parameter the_timeout from a ref. to a ptr. to a ptr in
+ order to avoid compilation warning. Since the pointer itself is
+ not modified within the function, it's ok to change this.
+
+ * ace/Reactor.cpp (wait_for_multiple_events): Added ACE_Time_Value
+ the_timeout as a place holder for timeout value when
+ max_wait_time is NULL. Otherwise,
+ Timer_Queue::calculate_timeout won't process the timer queue
+ even it's not empty.
+
+Wed Jun 11 11:14:29 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * include/makeinclude/platform_mvs.GNU (RANLIB): Requested change
+ from Check Gehr (gehr@sweng.stortek.com), RANLIB = echo
+
+Wed Jun 11 04:47:52 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ACE.cpp (count_interfaces): Two bugs were corrected here. Both
+ were typo.
+
+ * tests/Timer_Queue_Test.cpp: Added include file ace/Timer_Queue.h
+
+Tue Jun 10 16:02:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/SString.{h,cpp}: Changed the parameters in CString::substring()
+ and WString::substring(). Removed const and changed length to a
+ ssize_t because of signed/unsigned comparison warnings.
+
+ * ace/ACE.cpp: Changed a loop variable in get_ip_interfaces() to
+ a size_t because of a signed/unsigned comparison warning.
+
+Tue Jun 10 12:47:49 1997 <irfan@TWOSTEP>
+
+ * ace/SString.cpp (operator = and operator +=): There were two
+ bugs here. operator= forgot to tack on the NULL terminator
+ after the memcpy() and operator+= appended the second string
+ incorrectly. Thanks to Michael R. MacFaden <mrm@cisco.com> for
+ pointing these out.
+
+Tue Jun 10 12:16:04 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Makefile: Updated to reflect newly added files
+
+ * ace/Proactor.cpp: Removed template specializations.
+
+ * ace/Reactor.cpp: Removed some template specializations.
+
+ * ace/Timer_Hash.h: Added an include for Timer_Heap.
+
+ * ace/Timer_Hash_T.cpp: Changed a reference to ACE_Timer_Node
+ to ACE_Timer_Node_T<TYPE>
+
+ * ace/Timer_{Hash,Heap,List,Wheel}_T.h: Changed #include
+ "ace/Timer_{...}.h" to "ace/Timer_{...}_T.h".
+
+ * ace/Timer_Queue.cpp: Removed some template specializations.
+
+ * ace/Timer_Queue.h: Removed the including of Timer_Queue.cpp
+ since there are no templates to warrant it.
+
+ * ace/Timer_{Hash,Heap,List,Wheel}.cpp: Added these and put the
+ appropriate template specializations here.
+
+Tue Jun 10 02:08:25 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
+
+ * examples/Log_Msg/README: Revised.
+
+ * examples/Log_Msg/test_log_msg.cpp: Revised program output so
+ that it's clearer to explain.
+
+Mon Jun 09 15:46:41 1997 <irfan@TWOSTEP>
+
+ * OS.i (mutex_lock): When WaitForSingleObject returns
+ WAIT_ABANDONED, the lock is held by the calling thread.
+ Therefore we must return 0 from the method. I have added a new
+ mutex_lock() method that takes an extra "abandoned" parameter.
+ This is set wehen the mutex is abandoned. Thanks to Dieter
+ Quehl <dietrich.quehl@med.siemens.de> for pointing this out.
+
+Mon Jun 9 02:31:36 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
+
+ * tests/Sigset_Ops_Test.cpp (main): Comment out testing of invalid
+ sigset checking for most platforms don't seem to support it.
+ Perhaps the ACE's sigset* functions should remove this check for
+ compatibility.
+
+Sun Jun 8 11:39:06 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
+
+ * ace/OS.i (set): There was a typo here where
+
+ ((long) (d - (double) l)) * 1000000
+
+ should be
+
+ (long) ((d - (double) l) * 1000000)
+
+ since otherwise the values are always 0. Thanks to Jim Crossley
+ <jim@lads.com> for reporting this.
+
+ * tests/Enum_Interfaces_Test.cpp (main): Changed ACE_UINT32 to
+ size_t to be consistent with the class definition. Thanks to
+ Nanbor Wang for reporting this.
+
+ * ace/Token.h: Added some no-op method for ACE_Token so that it
+ will still compile even if ACE_HAS_THREADS isn't defined.
+
+Sun Jun 8 01:37:52 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
+
+ * examples/Log_Msg/README: Added a README file.
+
+ * tests/Sigset_Ops_Test.cpp (main): bug fixed.
+
+
+Sat Jun 7 16:40:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/SString.h (string.): Added a substring() member function to
+ ACE_*String classes. Thanks to Michael MacFaden <mrm@cisco.com>
+ for contributing this.
+
+ * ace/ACE: Added a new method called
+
+ int get_ip_interfaces(count, address_array)
+
+ which will query the OS kernel for the IP addresses for each network
+ interface found and return a count and array of ACE_INET_Addr objects.
+ The reason for adding this method is that most client apps
+ assume gethostbyname(uname|gethostname)) will work. If the
+ nameservices is misconfigured/broken or the machine is multi-homed,
+ the client apps have alot of coding to do to figure out if an inteface
+ represents a local address or not. On UNIX, this includes
+ the loopback addr. On NT, the loopback addr is not added
+ (but may change the impl if others think this useful).
+ Thanks to Michael MacFaden <mrm@cisco.com> for contributing
+ this.
+
+ * ace/Synch[_T]: Changed all the classes so that internal instance
+ variables are now protected rather than private. This allows
+ greater flexibility if there's a need to subclass
+ (which shouldn't occur very much...). Thanks to
+ Reza Roodsari <reza@sprynet.com> for suggesting this.
+
+Fri Jun 06 21:30:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Timer_{Hash,Wheel}_T.cpp: added #includes of
+ ace/High_Res_Timer.h. Also, in Timer_Wheel_T.cpp (cancel),
+ moved the declaration of "i" out of the loop because it's
+ used in two different loops.
+
+Fri Jun 06 17:11:13 1997 <irfan@TWOSTEP>
+
+ * OS.i (sleep): If ACE_POLL_IS_BROKEN is defined, use select() to
+ do micro second sleeps.
+
+ * ace/CORBA_Handler.h (ACE_CORBA_*): The new version of Orbix
+ (2.2C01) on NT finally supports namespaces. So now the macros
+ ACE_CORBA_n need to be defined using the "::" and not the "_"
+ for NT if the new Orbix is being used. Thanks to John Morey
+ (jmorey@tbi.com) for the changes.
+
+Fri Jun 06 02:16:08 1997 <nw1@COYOTE>
+
+ * Sigset_Ops_Test.cpp: Added to test correct implementation of
+ sigset manipulating functions.
+
+ * run_tests.{sh,bat}, Makefile: Added Sigset_Ops_Test.
+
+Thu Jun 05 20:32:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Timer_Queue_Test.cpp (randomize_array): removed static
+ qualifier now that it's a template function. It caused a warning
+ with Sun C++.
+
+Thu Jun 05 18:28:36 1997 <irfan@TWOSTEP>
+
+ * ace/Asynch_Acceptor.cpp (open): The Proactor was beening passed
+ implicitly. I have made this explicit by making this a parameter
+ to open. Thanks to MehulM@spa-marketing.com (Mehul Mahimtura)
+ for this.
+
+Thu Jun 5 12:06:45 1997 Chris Cleeland <cleeland@merengue.cs.wustl.edu>
+
+ * ace/Timer_Queue_T.h (ACE_Timer_Queue_T): Overloaded
+ calculate_timeout with a version that accepts a pointer to
+ storage for the ACE_Time_Value as an argument. This has a small
+ performance win over the other b/c it does not take a lock.
+ The change was made after examining Quantify output for TAO
+ and observing that this lock caused
+ Reactor::wait_for_multiple_events() to consume a substantial
+ percentage of processing time.
+
+ * ace/Reactor.cpp (wait_for_multiple_events): This now uses a
+ different version of calculate_timeout() that doesn't require
+ taking a lock.
+
+Thu Jun 05 08:48:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Reactor.cpp: added template specializations.
+
+ * ace/Timer_Queue_T.cpp (ACE_Timer_Queue_T ctor): rearranged
+ initializers to match declaration order.
+
+Thu Jun 5 06:08:06 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ace/OS.i (sigaddset, sigdelset, sigismember): NSIG itself is
+ invalid and must be excluded.
+
+Wed Jun 04 21:24:35 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos5.5-g++.h: fixed typo: #define instead of
+ #defined ACE_HAS_CLOCK_GETTIME.
+
+ * ace/config-sunos5.5-sunc++*.h: Combined
+ config-sunos5.5-sunc++-4.x.h and config-sunos5.5-sunc++-4.1.h,
+ and removed the latter. The Orbix config file now #includes
+ config-sunos5.5-sunc++-4.x.h and adds its differences.
+
+ * include/makeinclude/platform_sunos5_sunc++*.GNU: Combined
+ platform_sunos5_sunc++.GNU and platform_sunos5_sunc++-4.1.GNU,
+ and removed the latter. platform_sunos5_sunc++_orbix.GNU now
+ includes the non-orbix file and adds its differences. Also,
+ added optional CC -fast support. To enable, just add "fast=1"
+ to your "make" invocation.
+
+Wed Jun 04 12:21:41 1997 <irfan@TWOSTEP>
+
+ * tests: Made the following config files consistent:
+ UNIXclerk.conf UNIXtokens.conf Win32clerk.conf Win32server.conf
+ Win32tokens.conf
+
+ * ace/OS.h: Made sure that some #defines were guarded for
+ redefinition specially for the Bristol (that provides Win32 API
+ on AIX) headers. Thanks to Rich Christy (rchristy@cccis.com) for
+ suggesting these changes.
+
+ * ace/Handle_Set.h: Changed the type of handle_index from int to
+ u_int on Win32. Thanks to Jack Erickson (jack@cibc.com) for
+ suggesting this.
+
+ * ace/FILE.h (ACE_FILE_STREAM): Fixed this #define from
+ ACE_FILE_Stream to ACE_FILE_IO.
+
+Tue Jun 3 21:23:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Timer_{Queue,Hash}: Fixed some uses of template typedefs
+ since GCC is too lame to handle them correctly. Therefore, I
+ had to expand TIMER_QUEUE into the ugly fully expanded name.
+
+ * ace/Timer_Queue_T.cpp: Moved the implementation of
+ ACE_Event_Handler_Handle_Timeout_Upcall from Timer_Queue.* into
+ Timer_Queue_T.* since only template classes should go into *_T.*
+ files.
+
+Tue Jun 3 18:16:02 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/Timer_Queue.*:
+
+ Templatized ACE_Event_Handler_Handle_Timeout_Upcall with LOCK
+
+ Added deletion() to Upcall Functors. This gets called if there
+ are any nodes in a queue and the queue's destructor is called
+
+ * ace/Timer_Queue_T.*:
+
+ Changed iterator accessor to public
+
+ Removed two template parameters from ACE_Timer_Node_T so only
+ EVENT is left. Added accessors instead of using friendships,
+ and deleted the constructor (use set() instead)
+
+ Changed iterator into a general iterator (with first(), next(),
+ isdone() and item () methods)
+
+ Added remove_first () method that removes and returns the
+ earliest timer in the queue
+
+ Added ACE_Free_List support
+
+ * ace/Timer_Heap*:
+
+ Added upcall functor deletion() support
+
+ Added remove_first () method that removes and returns the
+ earliest timer in the queue
+
+ * ace/Timer_List*:
+
+ Changed to double-linked circular list and changed the timer_id
+ to be a pointer to the node (like it is in Timer Wheel and Timer
+ Hash)
+
+ Added upcall functor deletion() support
+
+ Added remove_first () method that removes and returns the
+ earliest timer in the queue
+
+ Added check for timer_id of -1 so we don't try to delete the
+ error code if it is passed into cancel
+
+ Changed Timer_List_Iterator_T constructor parameter from list to
+ listParm to resolve a conflict with STL. Thanks to Todd
+ Barkalow <barkate@louisville.stortek.com> for this fix
+
+ * ace/Timer_Wheel*:
+ Added HighRes timer support
+
+ Added upcall functor deletion() support
+
+ Added earliest_pos_ variable to keep track of the list with
+ the earliest node
+
+ Created an expire that is specialized for ACE_Timer_Wheel
+
+ Added remove_first () method that removes and returns the
+ earliest timer in the queue
+
+ Added check for timer_id of -1 so we don't try to delete the
+ error code if it is passed into cancel
+
+ * ace/Timer_Hash*:
+
+ Added Timer Hash Queue - This is a class that can take another
+ timer queue type (Timer List, Timer Heap...) as a template
+ parameter (BUCKET) and then do an intermediate hash of a timer
+ to determine which queue among a table of timer queues to put
+ the timer into. ACE_Timer_Hash is typedefed to the Timer List
+ version and ACE_Timer_Hash_Heap is typedefed to the Timer Heap
+ version
+
+ Added HighRes timer support
+
+ Added upcall functor deletion() support
+
+ Created an expire that is specialized for ACE_Timer_Hash
+
+ Added remove_first () method that removes and returns the
+ earliest timer in the queue
+
+ Added check for timer_id of -1 so we don't try to delete the
+ error code if it is passed into cancel
+
+ * ace/Free_List.*
+
+ Added ACE_Free_List<T> and ACE_Locked_Free_List<T, LOCK>. These
+ are used to maintain free lists of nodes. ACE_Free_List is a
+ abstract class where ACE_Locked_Free_List is a concrete one that
+ has a mutex parameter (LOCK).
+
+ * ace/OS.h:
+
+ Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant
+
+ Added ACE_DEFAULT_FREE_LIST_* constants
+
+ * ace/Proactor.*:
+
+ Added deletion() to Upcall Functors. This gets called if there
+ are any nodes in a queue and the queue's destructor is called.
+
+ * tests/Timer_Queue_Test.cpp:
+
+ Added HighRes timer support
+
+ Changed the array of timer queues into a list (to more easily
+ add/remove/comment out an entry)
+
+ Added some more performance tests with randomization
+
+Tue Jun 3 00:26:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Changed the access protection for ACE_cond_t,
+ ACE_sema_t, ACE_event_t, and ACE_rwlock_t so that it is
+ protected rather than private. In addition, added ACE_Export to
+ all of these classes so that they are visible outside of a DLL.
+ Thanks to Ivan Murphy for these suggestions.
+
+ * ace/OS.h: Changed the value of ACE_MAX_DEFAULT_PORT on Win32 to
+ 0 in order to work around a nasty NTism... Thanks to Jon Biggar
+ <jon@sems.com> for reporting this.
+
+Mon Jun 2 16:29:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * ace/Process.*:
+ - Fixed ACE_Process::spawn to close descriptors after having
+ been duped.
+ - Fixed ACE_Process::spawn to exit () after an error is
+ encountered in the child process, rather than returning.
+ - Fixed ACE_Process_Options::set_handles to duplicate handles
+ that are passed in, and then to close them in the destructor.
+
+Sun Jun 01 22:21:28 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/Threads/tss1.cpp: made some globals non-static or
+ const so that tss1 will link with Sun C++ 4.2 -O3. I don't
+ know what the problem is; it only shows up with optimization
+ enabled. These fixes work around it.
+
+Sun Jun 01 20:29:20 1997 James CE Johnson <jcej@lads.com>
+
+ * ace/IOStream*:
+ - removed the old 4/5/97 comments
+ - made operator>>, << on QuotedString a template
+
+ This last makes QuotedString much more functional. As
+ templated functions, the QuotedString can now be used on
+ other iostream-type objects. The previous method of
+ defining the function only for the type of ACE_IOStream
+ being created was didn't provide this flexibility.
+
+Sat May 31 07:01:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Log_Msg.cpp (open): To avoid handle leaks, we need to
+ shutdown the message_queue before trying to reopen it. Thanks
+ to Per Andersson for this suggestion.
+
+ * include/makeinclude/platform_osf1_4.0.GNU: Added a new platform
+ config file. Thanks to James Johnson for this.
+
+Fri May 30 16:25:25 1997 <irfan@TWOSTEP>
+
+ * CPP-inclient.cpp (main): Properly compare to the "quit"
+ string. Thanks to "Andre Arpin" <arpin@adan.kingston.net> for
+ reporting this.
+
+ * tests/UPIPE_SAP_Test.cpp (connector): Changed the eof marker in
+ the strings.
+
+Fri May 30 14:04:44 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * include/makeinclude/platform_irix6.4_sgic++.GNU: added to make
+ things compile on latest SGI machines. Removed +pp and -woff...
+ flags from the CCFLAGS variable. Added new -woff flags to hide
+ other warnings.
+
+ * ace/config-irix6.4-sgic++*.h: copied corresponding configs from
+ irix6.2 and removed ACE_HAS_SVR4_TIME, since this seems to be no
+ longer true of irix6.4.
+
+Fri May 30 02:39:39 1997 <irfan@TWOSTEP>
+
+ * ace/Connector.cpp
+
+ (create_AST): On Win32, added the except mask when registering
+ with the Reactor to find out when asynchronous connects
+ complete.
+
+ (Svc_Tuple): Made sure that the default value for the timer_id
+ in AST is not 0. 0 is a valid timer_id. I have changed this to
+ be -1.
+
+ (handle_exception): Added this method. On
+ Win32, the except mask must also be set for asynchronous
+ connects.
+
+Thu May 29 21:28:25 1997 <harrison@samba.cs.wustl.edu>
+
+ * Process.*: Removed the ACE_Process_Old class.
+
+ * Local_Tokens_T.*: Removed all these files. They have not been
+ used by the token library for some time. They were mistakenly
+ put in the release.
+
+Thu May 29 02:00:14 1997 <irfan@TWOSTEP>
+
+ * ACE.cpp (is_process_active): Added this method which checks if a
+ process is still alive. Thanks to Chris (CLahey@cccis.com) for
+ this code.
+
+ * ace/OS.i (kill): Changed PROCESS_ALL_ACCESS to
+ PROCESS_TERMINATE.
+
+ * ace/ACE.cpp (bind_port): Changed the implementation of this
+ method such that a recently used port is not used again in the
+ next call to this method on Win32, i.e., upper limit is
+ decreased even in the successful case. This fixes the problem on
+ Win32 where binding to a recently used port works but the
+ following connect fails.
+
+ * ace/Acceptor.cpp (close): Added a close method that allows us
+ to shutdown the Acceptor (without having to destroy it).
+
+ * ace/Connector.cpp (close): Added a close method that allows us
+ to shutdown the Connector (without having to destroy it).
+
+ * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
+
+ (handle_close): Removed this method. This code seemed to be
+ duplicating the code in the handle_close of the proxies.
+
+ (initiate_connection): Removed the code that did
+ rescheduling. The proxies are responsible for this.
+
+ * apps/Gateway/Gateway/Event_Channel.cpp
+
+ (initiate_proxy_connection): Must *always* use the correct synch
+ options while connecting.
+
+ (reinitiate_proxy_connection): Always register for timeouts if
+ we are not disconnecting. This allows us to remove duplicated
+ logic in Proxy_Handler_Connector.
+
+ The new logic of close() allows us to remove the code that use
+ to remove the proxy from the map to prevent double deletes.
+
+ (close): Changed the shutdown logic to: Tell everyone that the
+ spaceship is here (behind the comet), close down the connector,
+ close down the acceptor, tell everyone that it is now time to
+ commit suicide.
+
+ * apps/Gateway/Gateway/Proxy_Handler.cpp (handle_timeout): Must
+ return 0, or else the timer queue will cancel the handler and
+ *all* its timeouts.
+
+ * apps/Gateway/Peer/svc.conf,Makefile: We now generate a Peer
+ shared library (instead of just an .so). The svc.conf was
+ changed to reflect this.
+
+ * tests/UPIPE_SAP_Test.cpp: Fixed output message.
+
+ * Handle_Set.i (operator): Fixed typo.
+
+Thu May 29 11:09:52 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/rules.local.GNU: check for directory
+ write permission before attempting to install. This helps
+ support shared ACE workspaces. There are two easy ways
+ to not install "private" libraries in the shared workspace:
+ 1) remove write permission from $WRAPPER_ROOT/ace, or
+ 2) add "INSTALL=" to invocations of "make".
+
+Thu May 29 06:07:18 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i (thr_join): Revised some code in the #ifdef'd out
+ version of ACE_OS::thr_join() so that it will compile correctly.
+ Note that this code isn't currently used, but someday it will
+ be. Thanks to Hamutal Yanay for reporting this.
+
+Wed May 28 16:37:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,i} (ACE_Time_Value): added default constructor,
+ which does not call normalize (). ACE_Time_Value::normalize ()
+ was showing up as a relatively minor, but signficant hot
+ spot in Event Channel latency tests.
+
+Wed May 28 16:02:53 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * ace/OS.i: Changes to strdup and getpid for CHORUS, as per Wei
+ Chiang's suggestions.
+
+Tue May 27 18:26:51 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/config-hpux-10.x-decthreads.h: Added support for HP/UX 10.10
+ with DCE threads. Thanks to Shankar Krishnamoorthy
+ <kshankar@lucent.com> for these fixes.
+
+ * ace/Local_Tokens_T.h: #if def'd out all of this file since it
+ doesn't seem to be used anymore. Thanks to Shankar
+ Krishnamoorthy <kshankar@lucent.com> for reporting this.
+
+ * ace/Makefile (TEMPLATE_FILES): Removed Local_Tokens_T since it
+ doesn't appear to be used anywhere.
+
+Tue May 27 18:47:34 1997 James C Hu <jxh@lambada.cs.wustl.edu>
+
+ * tests/*.cpp: Various changes for EBCIDIC compatibility.
+ Thanks to Chuck Gehr for pointing out the need for this!
+
+ * tests/test_config.h: Added ACE_ALPHABET to aid a-z sending and
+ comparing.
+
+Tue May 27 15:03:25 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Future_Test.cpp: added ACE_Future{_Rep}<int> template
+ specializations.
+
+Tue May 27 07:49:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Future.cpp: Made a few minor reformatting changes to Per's
+ new Future enhancements.
+
+Tue May 27 14:19:14 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
+
+ * ace/Future: Fixed self assignment bug in ACE_Future<>::operator=().
+ Fixed bug in ACE_Future<>::set(). It is now possible to do a
+ ACE_Future<>::set() followed by a ACE_Future<>::get() without
+ hanging forever.
+
+ Moved all handling of the ACE_Future_Rep<> reference count
+ into three new static ACE_Future_Rep<> member functions,
+ create, attach, assign and detach.
+
+ Removed one mutex from ACE_Future_Rep<> by changing the
+ reference count from an ACE_Atomic_Op<int> into a plain
+ int. The ACE_Future_Rep<>::value_ready_mutex_ mutex is
+ instead used for serializing changes to the reference count.
+ (ACE_Future_Rep<>::attach, ACE_Future_Rep<>::detach())
+
+ Removed mutex from ACE_Future<> the serialization is
+ performed by the ACE_Future_Rep<>::attach,
+ ACE_Future_Rep<>::detach() and ACE_Future_Rep<>::assign()
+ functions.
+
+ Changed the ACE_Future<> default constructor to always
+ create a ACE_Future_Rep<>
+
+ * tests/Future_Test.cpp: Added test case for
+ ACE_Future<>::set() followed by ACE_Future<>::get(). Added
+ test for working ACE_Future::operator=(). The test is not
+ fool proof but it crashes or hangs the test process with the
+ old ACE_Future<> implementation.
+
+Mon May 26 14:19:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/OS.{h,i}: Fixed difftime implementation for cases where
+ systems implement it as a macro. Fixed tempnam by adding
+ ACE_LACKS_TEMPNAM.
+
+Sun May 25 11:36:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * examples/Reactor/Misc: Removed test_handle_set.cpp since it
+ is now completed subsumed by tests/Handle_Set_Test.cpp.
+
+ * tests/Handle_Set_Test.cpp: Updated the test of
+ the ACE_Handle_Set so that it shows how fast the iterator works.
+
+ * ace/Reactor.cpp: Updated the Reactor to use the new
+ ACE_Handle_Set_Iterator (whic no longer requires calling
+ operator++ to advance the iterator).
+
+ * ace/Handle_Set: Rewrote the ACE_Handle_Set_Iterator to speed it up.
+ The result seems to be about 15% faster than the original.
+
+ * ace/OS.h: Changed the MSB_MASK static constant into a macro and
+ moved it from Handle_Set.cpp into OS.h, changing its name to
+ ACE_MSB_MASK.
+
+ * ace/Sched_Params.cpp (priority_max): Added another #ifdef for
+ Chorus. Thanks to Wei Chiang for reporting this.
+
+ * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: added -l
+ in front of orbixmt. Thanks to Wei Chiang for pointing this
+ out.
+
+ * ace/ACE.cpp: Changed the default port for NT so that it starts
+ at 65279 rather than 65535. Hopefully, this will fix that
+ annoying bug that has been plaguing us on NT 4.0 for months.
+ Thanks to Goran Lowkrantz <Goran.Lowkrantz@Infologigruppen.se>
+ for reporting this.
+
+Sat May 24 23:42:32 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * performance-tests/Misc/test_naming.cpp (do_testing): replaced
+ strlen () calls in character array size with constant expression.
+
+Sat May 24 12:07:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * Released version 4.2.1 for testing.
+
+ * ace/Reactor.cpp (bind): Fixed a stupid typo where I was using
+ the ACE_REACTOR_EVENT_HANDLER macro instead of the
+ ACE_REACTOR_HANDLE macro. Thanks to Detlef for reporting this.
+
+ * ace/OS.i: Added a new macro called ACE_HAS_THR_MINSTACK to deal
+ with weirdo mangling of names by Tandem. Thanks to Jan Perman
+ <uabjjpp@osd.ericsson.se> for reporting this.
+
+ * ace/OS.h: Added a new macro ACE_LACKS_PRI_T for those platforms
+ using STHREADS (e.g., Tandem NonStop OS) that don't have pri_t
+ defined. Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for
+ reporting this.
+
+ * ace/Connector.cpp (connect): Make sure to save/restore errno
+ since svc_handler->close() may change it. Thanks to Michael
+ Hartman <c62nt57@ibx.com> for reporting this.
+
+ * include/makeinclude/platform_chorus.GNU: Added a new platform
+ macros file for Chorus. Thanks to Wei Chang for this.
+
+ * ace/OS.cpp (sched_params): Reordered the #ifdefs so that Chorus
+ comes first.
+
+ * ace/OS.i (sleep): If the platform defines ACE_HAS_CLOCK_GETTIME
+ then we'll use the nanosleep() method rather than sleep().
+
+ * ace/OS.h: disabled THR_NEW_LWP for Chorus. Thanks to Wei Chang
+ for reporting this.
+
+ * ace/Sched_Params.cpp: ACE_SCHED_OTHER and ACE_SCHED_RR have the
+ same value on Chorus. Thanks to Wei Chang for reporting this.
+
+Sat May 24 09:21:08 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: protected second
+ ACE_Svc_Handler specialization for case that ACE_HAS_THREADS,
+ when ACE_HAS_TLI. It had gotten lost in the last pass of
+ that module. Thanks to Sandro Doro <doros@aureus.sublink.org>
+ for reporting this problem.
+
+Sat May 24 03:19:38 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
+
+ * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
+ sigismember): Modified the implementation of these function so
+ as to conform with POSIX standard. Basically all functions do
+ the same things they did but more conservative protections are
+ added. The modified semantic becomes,
+
+ sigemptyset, sigfillset, sigaddset, sigdelset: return 0 if
+ succeed, -1 otherwise.
+ sigismember: returns 0 if signum is not in the set, 1 if signum
+ is in the set, and -1 if error occurs.
+
+ If error occured, errno will be set to one of the following
+ value:
+ EFAULT: sigset is not a valid address.
+ EINVAL: signum is not a valid signal number.
+
+ Notice that, so far, this is for NT only.
+
+Sat May 24 01:53:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * performance-tests/Misc/test_naming.cpp (do_testing): Thanks to
+ Sandro Doro, squashed a bug where we were trying to concatenate
+ onto a string constant.
+
+Fri May 23 01:01:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/config-hpux-9.x.h: Added
+
+ #define ACE_HAS_BROKEN_ENUMS
+ #define ACE_HAS_IP_MULTICAST
+ #define ACE_LACKS_GETPGID
+
+ Thanks to Neil Cohen for reporting these.
+
+ * ace/Thread_Manager.h: Made the private methods and data members
+ protected so that subclasses can extend it. Thanks to Hamutal
+ Yanay for this suggestion.
+
+Fri May 23 21:27:05 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Process.{h,cpp} (env_argv): added "const" to char * type in
+ return type, for argument compatibility in call to ACE_OS::execve ().
+
+ * ace/Process.cpp (spawn): removed unreachable return statement at
+ end of function.
+
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting the above two problems.
+
+ * ace/{IOStream*,Makefile}: Split out templates into
+ ace/IOStream_T.{h,cpp} files. This way, automatic template
+ instantiation systems that require templates to be in separate
+ files, such as on Irix 6.2, will be able to build IOStream_Test
+ and the ACE_IOStream examples without warnings. (The
+ ACE_IOSTREAM_BUILDING_TEMPLATE macro that did this only worked
+ if ACE_TEMPLATES_REQUIRE_SOURCE was defined. It's no longer
+ needed with the separate template files.)
+
+ * tests/IOStream_Test.cpp,
+ examples/IOStream/client/iostream_client.cpp,
+ examples/IOStream/server/iostream_server.cpp:
+ swapped ACE_Streambuf and ACE_Streambuf_T class names so that
+ the template class has the "_T". And renamed ACE_IOStream_T
+ for consistency.
+
+ * ace/{IOStream.*,README},
+ tests/IOStream_Test.cpp,
+ examples/IOStream/client/iostream_client.cpp,
+ examples/IOStream/server/iostream_server.cpp,
+ config-hpux-9.x*.h:
+ Added ACE_LACKS_ACE_IOSTREAM protection
+ so that these can easily be built on platforms that have
+ trouble with ACE_IOStream.
+
+ * Priority_Task_Test.cpp: removed close () because it didn't really
+ close the Task, and added printout to main () after all tasks have
+ been spawned to help debug non-termination.
+
+ * ace/OS.cpp: (thr_create, with STHREADS only): *thr_handle was
+ used but *thr_id had been set by ::thr_create, so threads never
+ got activated. Fixed by using *thr_id instead of *thr_handle
+ in the calls to ACE_OS::thr_setprio and ACE_OS::continue.
+ Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for reporting
+ this problem.
+
+Fri May 23 20:12:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * tests/SV_Shared_Memory_Test.cpp: Thanks to Chuck Gehr, fixed
+ ASCII dependent code in the parent and child routines.
+
+Fri May 23 02:58:28 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
+
+ * ace/OS.i (dlsym): Added ACE_USES_ASM_SYMBOL_IN_DLSYM, support
+ for platforms (FreeBSD) which use assembly symbols instead of C
+ symbols in dlsym ().
+
+ * ace/config-freebsd[-pthread].h: Added flag ACE_HAS_CHARPTR_DL
+ and ACE_USES_ASM_SYMBOL_IN_DLSYM.
+
+Thu May 22 08:14:21 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Tokens_Test.cpp: added deletes to avoid memory leaks.
+
+Wed May 21 16:15:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/{config-irix6.2*.h,README}: removed ACE_LACKS_IOSTREAM_SETGET
+ because tests won't build with it. Also, added
+ ACE_LACKS_SIGNED_CHAR.
+
+ * ace/IOStream.h: removed "const" from PUT_PROT of
+ u_char * and void *. This should allow the IOStream test
+ and examples to build and run on Irix platforms. Thanks
+ to Torbjorn Lindgren <tl@funcom.com> and Amos Shapira
+ <amos@dsi.co.il> for reporting this, and to James Hu for
+ helping fix it.
+
+ * ace/{OS.cpp,Sched_Params.cp} (Solaris only): use 0 min priority
+ again, with workaround in ACE_OS::thr_create to not use
+ ::pthread_attr_setschedparam () if the priority is 0. Instead,
+ the priority of the newly created thread is set to 0 (if it
+ wasn't created with 0) after the thread is created, with
+ ::pthread_setschedparam ().
+
+Wed May 21 15:23:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/Strategies_T.* (ACE_Hash_Addr): Eliminated the ADDR_T
+ template parameter as a base class. It is now a wholly-contained
+ member of the ACE_Hash_Addr<> with conversion operators.
+ This caused problems on certain compilers, notably HP-UX.
+
+Wed May 21 14:13:36 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/OS.{h,i} (difftime): Added implementation to ACE_OS. I
+ don't expect any problems since it is in ANSI.
+
+ * ace/OS.{h,i} (tempnam): Added implementation to ACE_OS.
+
+Wed May 21 01:17:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * Released version 4.2.
+
+ * ace/Acceptor.cpp (activate_svc_handler ): Removed an unnecessary
+ return 0. Thanks to Amos Shapira <amos@dsi.co.il> for reporting
+ this.
+
+ * ace/Message_Block.cpp (release): I believe that
+ ACE_Message_Block::release() should return something other than
+ 0, i.e., it should return the result of release_i(). Thanks to
+ Amos Shapira <amos@dsi.co.il> for reporting this.
+
+Wed May 21 01:17:40 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
+
+ * Moved most code from netsvcs/lib/Server_Logging_Handler.* to
+ Server_Logging_Handler_T.*. Made template out of
+ ACE_Server_Logging_Handler and ACE_Server_Logging_Acceptor.
+ Factorised out as much as possible to reduce code
+ duplication. The log record processing was moved from
+ ACE_Server_Logging_Handler it should now be handled by the
+ Log_Message_Receiver class. It is now possible to change
+ how log records processed without changing code in
+ Server_Logging_Handler* and it is possible to have several
+ Server_Logging_Handlers that processes log records
+ in different ways without duplicating all the server code.
+ All that is needed is to write a new/change
+ Log_Message_Receiver and instantiate a couple of templates.
+
+ * netsvcs/lib/Server_Logging_Handler.h added lots of typedefs
+ for making template instantiations easier.
+
+ * netsvcs/lib/Server_Logging_Handler.h addad lots template
+ instatiations, there are now 58 all together.
+
+ * Added netsvc/lib/Log_Message_Receiver.{h,cpp}, implementstwo
+ simple log message receivers that prints the log record to
+ stderr.
+
+Tue May 20 13:50:17 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/config-hpux-9.x.h: Added a #define for ACE_HAS_BROKEN_ENUM,
+ ACE_HAS_IP_MULTICAST, and ACE_LACKS_GETPGID. Thanks to Neil
+ Cohen for reporting this.
+
+ * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Replaced
+ the use of -lITsrv with -lorbixmt. Thanks to Wei Chiang for
+ this.
+
+ * include/makeinclude/platform_osf1_3.2.GNU: Make sure that all
+ the template repositories are in the same directory to work
+ around problems with the C++ compiler. Also added -lrt to get
+ the apps and tests to run. Thanks to Tom Dobridge for this
+ help.
+
+Tue May 20 17:13:15 1997 Carlos O'Ryan <coryan@charlie>
+
+ * ace/config-hpux-10.x-nothread.h:
+ * ace/config-hpux-10.x-aCC.h:
+ * ace/Stream_Modules.cpp:
+ ACE_LACKS_STREAM_MODULES is no longer needed, moving the inclusion
+ of "ace/Task.h" to the beginning of "ace/Stream_Modules.h" solved
+ the problem nicely.
+
+ * ace/config-hpux-10.x.h:
+ * ace/config-hpux-10.x-aCC.h:
+ ACE_HAS_BROKEN_HPUX_TEMPLATES is not needed on newer HP/CXX
+ compilers; further, old ones will not compile ACE even if the
+ macro is defined.
+
+ * ace/Timer_List_T.h:
+ * ace/Timer_Queue_T.i:
+ I moved the definition of ACE_Timer_Queue_T::lock() from the .i
+ file to the .h file, HP/CXX gets completely confused otherwise.
+ I also added a number of ACE_INLINE missing in the .i file.
+
+ * ace/Stream_Modules.h:
+ * ace/Stream_Modules.cpp:
+ I had to move the inclusion of "ace/Task.h" outside of the
+ protections against multiple inclusion for Stream_Modules.h.
+ That seems to solve the ciclyc dependancy for
+ Task->Module->Stream_Module->Task.
+ BTW, the same thing was already done in "ace/Log_Record.h".
+ I'll try to remove the ACE_LACKS_STREAM_MODULES macro, it seems
+ that the last change makes it redundant.
+
+ * ace/Signal.cpp:
+ HP/CXX compiler will not close the library unless
+ ACE_MAX_SIGNAL_HANDLERS is defined as "const size_t". The previous
+ definition ("size_t") did compile tough.
+
+ * ace/Log_Record.h:
+ We need to include "ace/ACE.h" before "ace/Log_Priority.h".
+
+ * ace/Log_Priority.h:
+ HP/CXX compiler seems to reserve a few bits in enums, so the
+ ENSURE_32_BITS trick would result in a compile time error.
+ Since HP enums are always 32 bits we could skip the definition for
+ ENSURE_32_BITS altogether, but I prefer to keep a consistent
+ namespace across plaforms, I have found a value for ENSURE_32_BITS
+ that seems to work.
+
+ * include/makeinclude/platform_hpux.GNU:
+ Some options to improve compile time, since we use explicit
+ template instantiation there is no need for a ptcomp o ptlink
+ phase.
+
+Tue May 20 09:10:18 1997 Nanbor Wang <nw1@number.wustl.edu>
+
+ * ace/config-freebsd-pthread.h:
+ * ace/config-freebsd.h: Removed "FreeBSD" directive because gcc on
+ FreeBSD defines __FreeBSD__ automatically.
+
+ * ace/OS.i (sigaddset, sigdelset, sigismember): Added range
+ checking to these functions in order to avoid disasters. Sig
+ number should be between 1 and NSIG.
+ (sigwait): Changed ifdef (FreeBSD) to ifdef (__FreeBSD__) since
+ compiler does it for us.
+
+Tue May 20 08:41:11 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/Threads/tss2.cpp: added #include of ace/Thread.h
+ because Sun C++ 4.1 needs it.
+
+Mon May 19 16:04:32 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * bin/create_ace_build: changed startup line for compatibility
+ with bash. This startup line lets the script run without
+ hard-coding the full path to the perl executable, as long as
+ perl is on the user's PATH.
+
+Mon May 19 12:45:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/Threads/reader_writer.cpp: Changed the code so that we
+ don't try to treat thread ids as ints! Thanks to Chuck Gehr for
+ reporting this.
+
+Sun May 18 21:57:54 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/Threads/tss2.cpp: added second parameter to
+ ACE_TSS_Singleton template specialization.
+
+Sun May 18 09:20:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/Threads/TSS_Data.h: Added the second parameter for
+ ACE_SYNCH_MUTEX since Rich and Chris updated ACE_TSS_Singleton.
+
+ * ace/Singleton.cpp: Added the updated version of
+ ACE_TSS_Singleton that implements the Double-Checked Locking
+ pattern. Thanks to Rich Christy and Chris Lahey for this.
+
+ * ace/Strategies_T.cpp (activate_svc_handler): Fixed the logic so
+ that a value is always returned. Thanks to David Levine for
+ noticing this.
+
+Sun May 18 07:25:11 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: removed second
+ ACE_Svc_Handler specialization for non-threaded, has-TLI case.
+ That's because it is the same as the first; the only difference
+ was that one specialized with ACE_SYNCH and the other with
+ ACE_NULL_SYNCH. Without threads, those macros expand to the
+ same thing. Thanks Sandro Doro <doros@aureus.sublink.org> for
+ reporting this.
+
+ * examples/Threads/tss2.cpp: added ACE_TSS<TSS_Data> template
+ specialization.
+
+Sat May 17 23:24:34 1997 Nanbor Wang <nw1@number.wustl.edu>
+
+ * ace/OS.i (sigismember): Corrected the code when
+ ACE_LACKS_SIGSET.
+
+Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp
+ (Event_Transceiver): Corrected signal registration for Win32.
+
+ * apps/Gateway/Gateway/Gateway.cpp (parse_args): Since the
+ Connector is now fixed, non-blocking is now working fine.
+
+ * ace/Connector.cpp (handle_close,create_AST): Made sure we close
+ down the svc_handler on error.
+
+ * ace/{Acceptor.cpp,Connector.cpp} (activate_svc_handler): The
+ if statement logic in these methods was incorrect.
+
+ * ace/SOCK_Connector.cpp (connect): Just like in complete(), we
+ start out with non-blocking disabled on the <new_stream>.
+
+ * ace/OS.h: When ACE_LACKS_SIGSET is defined, changed the
+ definition of sigset_t from void * to unsigned int.
+
+Sat May 17 12:25:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/{Acceptor,Connector,Strategies_T}: Make sure to either
+ enable or disable ACE_NONBLOCK (depending on the flags). This
+ ensures that we always start with the I/O mode set to a
+ deterministic state. Thanks to Irfan for suggesting this.
+
+ * ace/Connector: Added a new "flags" parameter to the
+ ACE_Connector and ACE_Strategy_Connector which keeps track of
+ flags that control how Svc_Handler are initialized prior to
+ being activated.
+
+ * ace/Strategies_T.cpp (activate_svc_handler): Make sure to set
+ the peer's handle into non-blocking mode *before* calling the
+ Svc_Handler's open() method. This ensures that things are set
+ up correctly when this hook is called.
+
+Sat May 17 02:19:27 1997 Nanbor Wang <nw1@number.wustl.edu>
+
+ * ace/config-freebsd.h (ACE_HAS_BROKEN_TIMESPEC_MEMBERS):
+
+ * ace/OS.i (set, timestruct_t, nanosleep):
+
+ * ace/High_Res_Timer.cpp (elapsed_time):
+
+ * ace/README: Added ACE_HAS_BROKEN_TIMESPEC_MEMBERS so that we can
+ fix that problem FreeBSD 2.1.x brings by defining timespec as {
+ time_t ts_sec ; long ts_nsec }. Notice: This is highly
+ non-portable. Please refer to ACE code and see how to write
+ portable. Fortunately, only older versions of FreeBSD have
+ this. Yesterday's hack didn't work, so, it's removed. Thanks
+ to Satoshi Ueno <satoshi.ueno@gs.com> for reporting and helping
+ debug on his FreeBSD 2.1.7R box.
+
+Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
+
+ * apps/Gateway/Gateway/Proxy_Handler.cpp (open): Turn on
+ non-blocking I/O only after the Channel is done sending the id
+ to the Peer.
+
+ * apps/Gateway/Gateway/Gateway.cpp:
+
+ - Added necessary DLL build macros.
+
+ - Removed error checking for Reactor::remove_handler() for STDIN
+ as STDIN is never registered with the Reactor on Win32.
+
+ - Fixed the registration of SIGINT.
+
+ - blocking_semantics_ should be 1 when blocking is on and not 0.
+
+ - Since the Connector is currently broken with respect to
+ non-blocking connects, I have put a temporary fix such that
+ only blocking connects are done. Revert this after the
+ Connector is fixed.
+
+ * apps/Gateway/Gateway/Event_Channel.cpp:
+
+ - Only if socket_queue_size > 0, do we set a new value.
+
+ - In reinitiate_proxy_connection(), we must unbind the proxy
+ from the proxy_map_ as we are no longer responsible for
+ this. The Connector should now be responsible for this.
+
+ * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp: Added
+ necessary DLL build macros.
+
+ * apps/Gateway/Peer/Peer.cpp:
+
+ - Added include file and necessary DLL build macros.
+
+ - Removed error checking for Reactor::remove_handler() for STDIN
+ as STDIN is never registered with the Reactor on Win32.
+
+ - Fixed the registration of SIGINT.
+
+ * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles.
+
+ * ace/ACE.cpp (read_adapter): Handle for the read_adapter should
+ always be STDIN.
+
+Fri May 16 18:43:17 1997 Nanbor Wang <nw1@number.wustl.edu>
+
+ * ace/config-freebsd.h: Minor modification for working on FreeBSD
+ 2.1.x platform. Added includion of <sys/time.h> and
+ <sys/types.h>. Defined ACE_HAS_POSIX_TIME for 2.1.x. Redefine
+ timespec to timeval to hack around a bug on 2.1.x. Thanks to
+ Satoshi Ueno <satoshi.ueno@gs.com> for reporting this.
+
+Fri May 16 12:25:32 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * netsvcs/lib: Reverted back to the original Server_Logging_Handler
+ behavior since the new version is breaking GCC's templates.
+
+ * ace/Log_Record.h: need to #include "ace/ACE.h" before
+ "ace/Log_Priority.h" so that "Log_Priority.h" sees the
+ configuration stuff (otherwise the following fix won't work).
+
+ * ace/Log_Priority.h: Added a workaround for lame C++ compilers
+ like the one on HP/UX that can't support large enums. Thanks to
+ Robert Head for reporting this.
+
+ * ace/Singleton: Added the new ACE_TSS_Singleton, which stores
+ Singletons in thread-specific storage. Thanks to Chris Lahey
+ and Rich Christy <rchristy@cccis.com> for this.
+
+ * ace/OS.h: Removed the ACE_Singleton_Strategy since we don't need
+ it anymore.
+
+ * netsvcs/lib: Added the new Server_Logging_Handler_T.* and
+ Log_Message_Receiver.* netsvcs. Thanks to Per Andersson for
+ contributing these.
+
+ * examples/Misc/Makefile: Removed the XtReactor tests from the
+ Makefile until we figure out a good way to get them integrated
+ with the appropriate libraries.
+
+ * ace/config-irix6.2-sgic++-nothread.h: Added the following:
+
+ ACE_LACKS_LINEBUFFERED_STREAMBUF
+ ACE_HAS_SETOWN
+ ACE_HAS_SYSENT_H
+ ACE_HAS_SYSINFO
+
+ Thanks to Torbjorn Lindgren <tl@funcom.com> for reporting
+ this.
+
+ * ace/Proactor.cpp: Changed the use of lock() to mutex() since we
+ changed the name in Timer_Queue.
+
+ * ace/Timer_Queue_T.i: Changed the name of the lock() method to
+ mutex() to work around compile problems with HP/UX. Thanks to
+ Robert Head <rhead@mail.virtc.com> for reporting this
+ workaround.
+
+ * ace/config-irix5.3-sgic++.h: Made a few changes to get ACE to
+ work on IRIX 5.3. Thanks to Eugene R. Somdahl <gene@endo.com>
+ for these fixes.
+
+ * ace/OS: Added calloc() implementation. I don't know how
+ this managed to fall through the cracks!
+
+ * include/makeinclude/platform_osf1_4.0.GNU: Added a few more
+ tweaks courtesy of James Johnson.
+
+ * include/makeinclude/platform_osf1_3.2.GNU: Added a few more
+ tweaks courtesy of Tom Dobridge.
+
+ * include/makeinclude/platform_osf1_4.0.GNU (DLD): Added -shared
+ -expect_unresolved '*' so that calls to the linker via cxx will
+ work correctly. Thanks to Thilo for this.
+
+ * include/makeinclude/platform_chorus.GNU: Removed CLASSIXDIR =
+ /usr/home/chiang/chorus/merge/extended-i386at, added the
+ nostdinc flag, and removed extra whitespace. Thanks to Wei
+ Chiang for reporting this.
+
+Fri May 16 00:02:33 1997 <irfan@TWOSTEP>
+
+ * ace/ReactorEx: Even though changes to the owner field are very
+ well synchronized within the class code, the owner()
+ accessor is public and can be called from out side the
+ class. Therefore, I have added a owner_i() that does not do
+ locking. All internal calls to check the owner will use the
+ new accessor, whereas application code outside the class can
+ still use the old synchronized accessor.
+
+Fri May 16 11:39:51 1997 Nanbor Wang <nw1@cs.wustl.edu>
+
+ * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
+ sigismember): Added implementation when ACE_LACKS_SIGSET so that
+ platforms (NT?) without these functions can still manipulate
+ sigset_t variables.
+
+Thu May 15 22:19:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * examples/ASX/Event_Server/Event_Server: Removed the THR_DETACHED
+ flag from options so that we can wait on the threads
+ correctly.
+
+ * ace/Stream_Modules.cpp: Changed the logic for determining when
+ to compile the Stream_Modules.cpp code. Now, we compile it
+ unless ACE_LACKS_STREAM_MODULES is defined (i.e., we're on HP/UX
+ 10.x using aCC).
+
+ * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed
+ a bug in handle_input() where we need to return the result, not
+ just 0 or 1. Thanks to Per Andersson for reporting this.
+
+ * ace/Log_Priority.h: Changed the values of the enums in
+ ACE_Log_Priority so that they can be dealt with via bitwise
+ operations. Thanks to Per Andersson for this.
+
+ * include/makeinclude/platform_osf1_4.0.GNU: Added support for
+ templates. Thanks to Steve Huston and James Johnson for
+ verifying this.
+
+ * include/makeinclude/platform_osf1_3.2.GNU: Got rid of all
+ unresolved symbol warnings using cxx 5.5 on DEC/OSF v3.2 by
+ using the linker flag "-expect_unresolved '*'." In addition, I
+ added -threads to the DCFLAGS macro. Thanks to Tom Dobridge
+ <dobridge@persimmon.com> for this.
+
+ * ace/Strategies_T: Added a minor ACE_Reactive_Strategy extension
+ to enable non-blocking I/O in active_svc_handler(). Thanks to
+ Arturo Montes <mitosys@colomsat.net.co> for contributing this.
+
+ * ace/config-osf1-4.0[-g++].h: Added a #define for
+ ACE_POLL_IS_BROKEN since DEC UNIX's poll() doesn't seem to work
+ correctly as a highres timer. Thanks to James Johnson and Thilo
+ for reporting this.
+
+ * examples/Threads/thread_specific.cpp (worker): Changes
+ size_t i back to int i to avoid a signed/unsigned complaint.
+ Thanks to David Levine for reporting this.
+
+ * ace/config-chorus.h: Added ACE_LACKS_MPROTECT,
+ ACE_HAS_IP_MULTICAST, and ACE_LACKS_SOCKETPAIR to the Chorus
+ port. Thanks to Wei Chiang <chiang@erebor.tele.nokia.fi> for
+ reporting this.
+
+ * ace/OS.i: Added ACE_LACKS_ACCESS to the Chorus config file
+ and VxWorks config file, as well as to OS.i.
+
+: * ace/OS.i: Added ACE_LACKS_GETSERVBYNAME to the Chorus config
+ file and VxWorks config file, as well as to OS.i.
+
+ * ace/OS.i: Added ACE_LACKS_SBRK to the Chorus config file, as
+ well as to the definition of the ACE_OS::sbrk() function.
+
+ * ace/OS.h: Removed #include /**/ <pwd.h> from the Chorus-specific
+ part of OS.h since it's already included elsewhere. Thanks to
+ Wei Chiang <chiang@erebor.tele.nokia.fi> for reporting this.
+
+ * ace/Reactor: Added a typedef for ACE_Reactor_Token to
+ ACE_Null_Mutex for situations where ACE_MT_SAFE is *disabled*.
+ This makes the code more consistent.
+
+ * ace/Reactor: Added an interface that makes it possible to
+ acquire a reference to the <ACE_Reactor_Token> that is used to
+ serialize the internal Reactor's processing logic. This can be
+ useful for situations where you need to avoid deadlock
+ efficiently when <ACE_Event_Handlers> are used in multiple
+ threads. Thanks to Detlef for pointing out the utility of this.
+
+Thu May 15 23:34:30 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
+
+ * ace/Process_Manager.cpp (spawn_n): Changed
+ ACE_Process_Manager::start_n to ACE_Process_Manager::spawn_n.
+
+Thu May 15 15:39:13 1997 Carlos O'Ryan <coryan@charlie>
+
+ * include/makeinclude/platform_hpux.GNU:
+ * ace/config-hpux-10.x.h:
+ * ace/config-hpux-10.x-nothread.h:
+ HP/CXX cannot achieve template closure, not even using the
+ dummy exec trick: apparently the repository gets a bit
+ corrupted. HP/CXX (version 10.24) support explicit template
+ instantiation, I believe this to be a superior method for
+ ensuring library closure (and it works).
+
+ * ace/Task_T.cpp:
+ * ace/Stream_Modules.cpp:
+ I have changed the hack to compile under HP-UX,
+ "ace/Module.h" is once more included in ace/Task_T.cpp, but
+ "ace/Stream_Modules.cpp" is protected: it will be empty
+ under HP-UX unless included from the
+ "ace/Stream_Modules.h". I still believe that there is a
+ problem in the cyclic dependancy Task -> Module -> Thru_Task
+ -> Task; but it seems that the current hack works better.
+
+ * ace/OS.h:
+ Defining ACE_UNUSED_ARG as (a) for HP/CXX does not work so I
+ moved it to the SGI and GCC definition.
+
+ * ace/OS.i:
+ More unused args.
+
+ * ace/Handle_Set.h:
+ Removed the extra qualification for ACE_Handle_Set::NBITS,
+ HP/CXX sends a lot of warnings with that.
+
+ * ace/IOStream.h:
+ It included "IOStream.cpp" I think that "ace/IOStream.cpp"
+ is better.
+
+ * ace/Local_Name_Space_T.h:
+ Ditto for "Local_Name_Space.h"
+
+Thu May 15 17:40:06 1997 <irfan@TWOSTEP>
+
+ * ace/ReactorEx.i (owner): Since changes to the owner field are
+ very well synchronized, we do not need to synchronize this
+ accessor.
+
+ * ace/IOStream.h: Added /**/ after #include directives.
+
+ * ace: Update Win32 makefiles to include UNICODE make option.
+
+Thu May 15 08:54:53 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile (release, cleanrelease): use -prune option to "find"
+ instead of filtering its output. Thanks to Chris Cleeland for
+ suggesting this.
+
+Wed May 14 21:52:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/UPIPE_Stream.cpp (control): We need to "cast away const" so
+ that this method can call the Stream's control() method
+ (which is non-const). Thanks to David Levine for locating this.
+
+ * ace/Singleton.cpp: Finished re-implementing ACE_Singleton.
+
+ * examples/ASX/Message_Queue/buffer_stream.cpp: Updated this
+ example to illustrate (1) how filters work in an ACE_Stream and
+ (2) to make sure that resizing buffers work.
+
+ * ace/UPIPE_Stream.h: Changed the signature of control()
+ to take an int so that it will match the base class
+ signature.
+
+ * ace/Singleton.h: The new ACE_SingletonEx isn't working yet.
+ I've #ifdef'd it out until it works.
+
+ * examples/Threads/tss2.cpp: Updated this test program to
+ illustrate the use of the new ACE_SingletonEx class.
+
+ * ace/Singleton.h: Added a new instance() method to the ACE
+ Singleton that can be used to set the Singleton. This is useful
+ for situations where the type being used as the Singleton
+ doesn't have a default constructor. Thanks to Arturo Montes
+ <mitosys@colomsat.net.co> for this suggestion.
+
+ * ace/Singleton: Factored out common code in the Singleton and
+ SingletonEx implementations so they will be cleaner and more
+ portable.
+
+ * ace/Local_Name_Space_T.h,
+ ace/Map_Manager.h,
+ ace/Hash_Map_Manager.h,
+ ace/SString.h,
+ ace/Hash_Map_Manager.cpp:
+
+ Changed all uses of the identifier "allocator" to "alloc" to
+ avoid conflicts with MSVC++ STL 5.0. Thanks to William
+ L. Gerecke <gerecke@rayva.org> for reporting this.
+
+ * ace/config-aix-4.[12].x.h: Replaces
+ ACE_LACKS_PTHREAD_THR_SIGSETMASK with ACE_HAS_SIGTHREADMASK.
+ Thanks to Chris Lahey for this.
+
+ * ace/OS.i (thr_sigsetmask): Added the ACE_HAS_SIGTHREADMASK
+ support for AIX. Thanks to Chris Lahey for this.
+
+ * ace/Singleton: Added the new ACE_SingletonEx, which supports
+ both heap-based and thread-specific storage-based Singletons.
+ Thanks to Chris Lahey for this.
+
+ * ace/OS.h: Added the new ACE_Singleton_Strategy to OS.h. Thanks
+ to Chris Lahey for this.
+
+Wed May 14 16:32:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile: use cpio instead of tar to allow easy filtering
+ of CVS files from the release.
+
+Wed May 14 15:00:58 1997 <irfan@TWOSTEP>
+
+ * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed code.
+
+ * examples/Naming: Replaced multiple makefiles with one makefile.
+
+ * ace/OS.h: Added UNICODE support for some #defines.
+
+ * OS.i (vsprintf): Added support for this in ACE_OS.
+
+ * OS.cpp (socket_init && socket_fini): It is ok to print out cout
+ and cerr messages from here (as the C runtime library is still
+ attached) but it is *not* ok to print out ACE_DEBUG
+ messages. God only knows the state of the thread specific LogMsg
+ instance when the process reaches this piece of code.
+
+ Also added a (handy) sprintf that has the following prototype:
+
+ sprintf (wchar_t *buf, const char *format, ...)
+
+ * ace/Process: UNICODE fixes.
+
+ * tests: Fixed the following such that they work with UNICODE:
+
+ Pipe_Test.cpp
+ Process_Mutex_Test.cpp
+ Process_Strategy_Test.cpp
+ Time_Service_Test.cpp
+ Tokens_Test.cpp
+
+ * Time_Service_Test.cpp (main): Fixed typo in the svc.conf
+ filename for the clerk.
+
+Tue May 13 18:56:27 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/IOStream.h: To make C++ compilers happy I added
+ the following changes by modifying
+
+ ACE_IOStream & operator>>( ACE_Time_Value *& tv );
+
+ to be
+
+ ACE_IOStream<STREAM> & operator>>( ACE_Time_Value *& tv );
+
+ Thanks to Chuck Gehr for this fix.
+
+Tue May 13 21:32:12 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Process.cpp (~ACE_Process_Options): delete
+ command_line_buf_ was missing the [].
+
+ * examples/Threads/process_manager.cpp (main): avoid compiler
+ warning due to implicit creation of temporary by explicitly
+ creating an ACE_Process_Options instance. It gets passed to
+ ACE_Process_Manager::spawn (ACE_Process_Options &), which
+ takes a non-const reference.
+
+Tue May 13 18:08:32 1997 <irfan@TWOSTEP>
+
+ * examples/ASX/UPIPE_Event_Server: Made enough fixes for this to
+ compile on Win32 but more work need to be done for this to
+ work on Win32.
+
+ * ace/OS.i (kill): The error result for ::OpenProcess() is null
+ and *not* invalid handle.
+
+ * ace/Process.i (kill): Changed the implementation to remove the
+ ACE_OS::kill() code from ACE_Process::kill() for Win32. This
+ allows us to avoid calling ::OpenProcess() unnecessarily.
+
+ * tests: For Win32, added Reactor_Exceptions_Test and
+ Priority_Tasks_Tests. Files changes include run_tests.bat,
+ tests.mak, and tests.mdp.
+
+ * tests/Future_Test.cpp (main): Fixed memory leaks in main() and
+ in name_i().
+
+ * tests/Thread_Pool_Test.cpp (open): The loop was messed up
+ causing memory leaks. I fixed it.
+
+ * ace/UPIPE_Stream.cpp (close): I am not sure why the stream was
+ closed with M_DELETE_NONE. This indicates that close() should
+ not delete any Tasks. This caused a memory leak as the Tasks in
+ the Tail and Head modules were not deleted. I have removed this
+ to fix the memory leak.
+
+ Also added a destructor such that mb_last_ is released if it is
+ still around.
+
+Tue May 13 16:48:18 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/Process.cpp: Added implementations to new interfaces
+ to ACE_Process_Options::setenv (char *envp[]), and
+ ACE_Process_Options::command_line (char *argv[]).
+
+ * apps/JAWS/server/HTTP_Response.cpp: Required changes so that CGI
+ processing will work with the new ACE_Process class.
+
+ * apps/JAWS/stress_testing/benchd.cpp: Requried changes due to
+ changes in the ACE_Process interface.
+
+Tue May 13 15:22:01 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
+
+ * ace/Process_Manager.h: Changed ACE_Process_Manager::start to
+ ACE_Process_Manager::spawn.
+
+ * ace/Process.cpp (spawn): The check for a null environment argv
+ was incorrect. Thanks to Nanbor for finding this.
+
+Mon May 12 18:59:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-mvs.h: conditionally use ACE_HAS_UCONTEXT_T or
+ ACE_LACKS_UCONTEXT_H depending on __COMPILER_VER__. Thanks to
+ Chuck Gehr <gehr@sweng.stortek.com> for this fix.
+
+ * OS.h, OS.cpp (thr_create), Task.h, Thread.h, Thread_Manager.h:
+ use ACE_DEFAULT_THREAD_PRIORITY instead of -1, because -1 is a
+ valid priority on Win32. Thanks to Irfan for discovering this
+ problem with Priority_Task_Test.
+
+ * ace/Thread_Manager.cpp (wait_grp,wait_task): changed type of loop
+ index "i" from size_t to int to avoid signed/unsigned comparison.
+
+Mon May 12 18:41:19 1997 Nanbor Wang <nw1@cs.wustl.edu>
+
+ * ace/config-freebsd-pthread.h:
+ * ace/config-freebsd.h: Added ACE_LACKS_RWLOCK_T to FreeBSD config
+ files. Thanks to Amancio Hasty <hasty@rah.star-gate.com> for
+ noticing this.
+
+Mon May 12 17:11:50 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
+
+ * ace/Process.h: Changed ACE_Process::start to
+ ACE_Process::spawn. Added new argv-style methods for
+ ACE_Process::setenv and ACE_Process::command_line. These new
+ argv-style methods do not have implementations yet.
+
+Mon May 12 15:27:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/config-aix-4.[12].x.h: Added ACE_HAS_EXCEPTIONS to
+ the AIX 4.* config files. Thanks to Chris Lahey for this.
+
+Mon May 12 13:49:54 1997 <irfan@TWOSTEP>
+
+ * ace/Thread_Manager.cpp (wait): We have to make sure that while
+ we wait for these threads to exit, we do not have the
+ lock. Therefore we make a copy of all interesting entries and
+ let go of the lock. We then do the join().
+
+ * ace/Task.cpp (wait): Removed the extra locking in wait(). The
+ Thread Manager will handle this correctly.
+
+ * ace/ACE.cpp (register_stdin_handler): Changed the options such
+ that the Thread Manager used for the adapter is passed along to
+ the method executed by the new thread. We can then notify the
+ thread manager when this adapter thread exits.
+
+ * examples/ASX/Event_Server/Event_Server: Changed the way the
+ reference count was being kept on the context. Now, the
+ reference count starts with zero and every instance and every
+ active Task increments it. This works well as Task::close() is
+ called one from the module being deleted and from the active
+ thread going away.
+
+Mon May 12 11:11:51 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/Process.*: Removed the old ACE_Process and replaced it with
+ what was ACE_ProcessEx.
+
+ * ace/Process_Manager.{i,cpp}: Updated to use the new ACE_Process
+ API.
+
+Mon May 12 08:16:38 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-freebsd*.h: added support for FreeBSD 2.1.7R.
+ Thanks to Satoshi Ueno <satoshi.ueno@gs.com> for figuring
+ out the differences and to Nanbor Wang <nw1@cs.wustl.edu>
+ for updating the config files.
+
+Sun May 11 17:36:59 1997 <harrison@samba.cs.wustl.edu>
+
+ * tests/{Pipe_Test.cpp, Process_Mutex_Test.cpp,
+ Time_Service_Test.cpp, Token_Service_Test.cpp}: Updated these
+ files to use the new ACE_Process API.
+
+Sun May 11 14:40:51 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-osf1-4.0.h: put back ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
+
+ * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
+ initializers to match declaration order.
+
+Sat May 10 19:44:28 1997 <harrison@samba.cs.wustl.edu>
+
+ * Process.h: ACE_ProcessEx now works on Solaris and NT. There
+ have been some changes to the API. ACE_ProcessEx::cl_options
+ and ACE_ProcessEx::path have been combined into
+ ACE_ProcessEx::command_line. ACE_ProcessEx::command_line must
+ be used to specify path and command-line arguments. There is
+ also a second ACE_ProcessEx::setenv method that allows
+ applications to set environment variables in a "VAR=VALUE"
+ format.
+
+Sat May 10 10:51:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/config-osf1-3.2.h: Added three new flags to the config file
+ for OSF/1 3.2:
+
+ #define ACE_LACKS_SETSCHED
+ #define ACE_LACKS_RWLOCK_T
+ #define ACE_LACKS_GETPGID
+
+ Thanks to Tom Dobridge <dobridge@persimmon.com> for reporting
+ this.
+
+Fri May 09 16:37:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-osf1-4.0.h: added DEC_CXX.
+
+ * ace/config-osf1-4.0-g++.h: removed commented-out
+ ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
+
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ patches for the above two OSF config files.
+
+ * ace/Sched_Params.cpp (priority_min): On Solaris (with STHREADS),
+ don't return priority of 0 because ::pthread_attr_setschedparam ()
+ will refuse to use it (with EINVAL). So, bump priority of 0 up to 1.
+
+ * tests/Priority_Task_Test.cpp: retry the task activation with
+ priority 0 if it fails with non-zero priority. This lets the
+ test run on platforms such as Linux that only let the superuser
+ set non-zero priority.
+
+ * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
+ initializers to match declaration order.
+
+ * examples/Connection/non_blocking/test_lsock_acceptor.cpp: fixed
+ typo in template specializations: ACE_LSOCK_ACCEPTOR instead of
+ ACE_SOCK_LACCEPTOR.
+
+Fri May 9 13:07:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/UNIX_Addr: Changed the return values of all the set()
+ methods so that they conform to the signature used by the
+ INET_Addrs.
+
+ * examples/Connection/non-blocking: Added two new test programs,
+ test_lsock_{connector,acceptor}.cpp that
+
+
+ * ace/LSOCK_Stream.cpp: Revised the get_remote_addr() method so
+ that it uses the underlying ACE_SOCK::get_remote_addr() method
+ rather than the get_local_addr() method. Hopefully, this will
+ fix an ACE bug with UNIX domain sockets. Thanks to Paul Han
+ <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
+
+ * include/makeinclude/platform_aix4.2.GNU (LLIBS): Changed
+
+ LLIBS = -lC_r -lC -lpthreads -lbsd -ltli_r -ldl -lc_r -lm -lc $(ACELIB)
+
+ to
+
+ LLIBS = -ltli_r -ldl $(ACELIB)
+
+ MakeC++SharedLib_r includes all the other libs automatically in
+ the search.
+
+ * apps/Gateway/Gateway/Proxy_Handler.h: Moved the handle_close()
+ method into the public section since the Connector now calls it.
+
+ * ace/Containers.cpp: Updated all the operator= methods so
+ that they no longer try to return *this. Thanks to Chris Lahey
+ for reporting this.
+
+ * ace/IOStream.h: Replaced __alpha with DIGITAL_UNIX && DEC_CXX.
+ Thanks to Thilo for reporting this.
+
+ * build/gcc/tests/Simple_Message_Block_Test.cpp (main): Changed
+ the use of ACE_Mutex to ACE_SYNCH_MUTEX so that everything will
+ build correctly on non-MT platforms.
+
+ * ace/Timer_{Heap,List}_T.cpp: To ensure backwards compatibility
+ with the old "int" return value of Timer_*::schedule() we must
+ cast the long value to int before returning it. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
+
+ * ace/Acceptor.cpp,
+ ace/Connector.cpp:
+ If an active or passive connection times out and the Connector
+ or Acceptor calls the handle_timeout() method of the
+ Svc_Handler, we now keep track of whether the handle_timeout()
+ method returns -1. If so, we call handle_close() on the
+ Svc_Handler automatically. Thanks to Michael Hartman
+ <c62nt57@ibx.com> for suggesting this.
+
+ * tests/IOStream_Test.cpp: Fixed this test so that it runs on
+ non-MT platforms.
+
+ * ace/Module.cpp: Changed the implementation of the close_i()
+ method so that it will wait for all active threads in a Task to
+ exit before deleting the task.
+
+ * ace/Task: Added a wait() method on an ACE_Task that will use the
+ new ACE_Thread_Manager::wait_task() method to block until all
+ threads have shutdown in a Task.
+
+ * ace/Thread_Manager: Finally implemented the wait_task() and
+ wait_grp() interfaces on ACE_Thread_Manager.
+
+ * ace/SOCK_Dgram.cpp: Added a timed recv() operation. Thanks
+ to Hongbo Xu <hxu@mas.co.nz> for contributing this.
+
+ * ace/Timer_Queue_T.cpp: Added #include "ace/Synch.h" to keep the
+ DEC C++ compiler happy. Thanks to James CE Johnson
+ <jcej@lads.com> for this.
+
+ * ace/Containers.i (size): Changed <TYPE> to <T> so that this
+ compiles on the Alpha. Thanks to James CE Johnson
+ <jcej@lads.com> for this.
+
+ * ace/IOStream.h: Include the std_macros header on the Alpha.
+ Thanks to James CE Johnson <jcej@lads.com> for this.
+
+ * include/makeinclude/platform_osf1_4.0.GNU (SOBUILD): Removed
+ -lACE from the link line. Thanks to James CE Johnson
+ <jcej@lads.com> for this.
+
+ * tests/Timer_Queue_Test.cpp: Changed all the int timer ids to
+ long so that the test will work on DEC ALPHAs. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
+
+ * ace/Process: Fixed a number of compile problems for UNIX.
+
+ * ace/Process.h: Changed the methods named stdin/stdout/stderr to
+ std_in/std_out/std_err to avoid name clashes with the standard C
+ library.
+
+ * ace/OS: Changed the use of ACE_Unbounded_Set to
+ ACE_Unbounded_Stack in order to get the appropriate semantics
+ for TSS cleanup on NT.
+
+ * ace/Containers: Enhanced the ACE_Unbounded_Stack class so
+ that it supports insert()/remove()/find() methods. These
+ rather unorthodox methods are useful for implementing the
+ TSS semantics required by OS.cpp.
+
+ * ace/Containers: Revised all the interfaces for the various
+ containers so that they all have the same "look and feel."
+
+Fri May 9 00:00:21 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * apps/JAWS/server/HTTP_Request.{h,cpp}: Added a uritopath
+ translation method, so that CGI location can be computed as it
+ is searched. Added methods to access the parsed headers.
+
+ * apps/JAWS/server/HTTP_Response.{h,cpp}: Flushed out the
+ implementation of cgi_response () method. If all goes well, it
+ should be able to execute a CGI program. I don't set the IO
+ handles to point at the socket handle yet.
+
+ * apps/JAWS/server/README: Updated description of JAWS behavior.
+
+Thu May 8 18:04:14 1997 Irfan Pyarali <irfan@cs.wustl.edu>
+
+ * ace/Containers: Made the return values of Container methods
+ more consistant with other components of ACE (i.e., 0 for
+ success, -1 for failure).
+
+ * ace/Containers (ACE_Unbounded_Stack<T>::delete_all_nodes):
+ Fixed subtle bug in delete_all_nodes.
+
+ * ace/OS.cpp (ACE_TSS_Cleanup::exit): Changed because of
+ return value changes in ACE containers.
+
+ * Containers: Added size methods to stack containers and
+ consolidated friendship between ACE_Unbounded_Stack_Iterator and
+ ACE_Unbounded_Stack
+
+ * tests/Message_Block_Test.cpp: I was incorrect about each data
+ block having its own lock. Since *many* data blocks can share
+ the same lock, for the case of message block chains, we would
+ like to optimize locking.
+
+ Therefore, the first guy in the chain grabs the lock and passes
+ it to the continuation chain. When each guy in the chain gets
+ it, it compares the passed lock to its own locking strategy. If
+ it is the same lock, no need to acquire the lock again. If our
+ lock is different, then we do our own locking.
+
+ * tests/Simple_Message_Block_Test.cpp: This test program is a
+ torture test that illustrates how ACE_Message_Block reference
+ counting works, how and when locks are used, how memory is
+ managed, and how continuation chains of message blocks are
+ made. Ideally used with purify :-)
+
+ * tests: Added new test. Following changed:
+ Makefile run_tests.bat run_tests.sh tests.mak tests.mdp
+
+Thu May 8 18:04:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * include/makeinclude/platform_irix6.2_sgic++.GNU: Moved SGI C++
+ options out of CPPFLAGS into CCFLAGS so that gcc won't emit
+ diagnostics during a make depend.
+
+Thu May 8 11:52:41 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/{Task,Thread}.h: Added documentation describing
+ thread priority determination to methods where priority
+ is an [optional] argument. Note that if you want to inspect
+ the REAL documentation, you should look at the code for
+ ACE_OS::thr_create(). But that's convoluted and touchy.
+
+ * ace/Strategies_T.h (ACE_Cached_Connection_Strategy): Added
+ documentation for this class.
+
+Thu May 08 00:10:00 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/Process.*: This is the first pass at the new ACE_Process
+ class. It is now called ACE_ProcessEx. When it is completely
+ ported to Solaris, we'll replace the current ACE_Process with
+ ACE_ProcessEx.
+
+ * examples/OS/Process/process.cpp: Added some examples for the
+ new ACE_ProcessEx.
+
+Wed May 07 21:58:29 1997 <irfan@TWOSTEP>
+
+ * ace/Message_Block.h: ACE_Data_Block calling delete on the
+ ACE_Message_Block was incorrect. This was a hack to simplify
+ the locking issues! However this optimization leaded to
+ incorrect code. Therefore I have taken this behavior out. The
+ new implementation will lock and unlock multiple times in the
+ case when there are message_blocks in the continuation field,
+ all of which point to same data block. However, this is a
+ strange case that can be optimized later. For now correct code
+ is more important.
+
+ Also, the continuation message blocks are only deleted in the
+ release() method and not in the destructor. This will ensure
+ that if message blocks of the stack are chained together, we
+ will not call release on message blocks of the stack.
+
+ Also note that release() should only be called on message blocks
+ that have been dynamically allocated. Message blocks of the
+ stack will clean up properly when the activation record of the
+ method completes. Dynamically allocated messages blocks should
+ *never* be chained with message blocks allocated of the stack.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.h: Removed
+ empty definitions of assignment operator and copy constructor.
+
+ * examples/ASX/Event_Server/Event_Server/event_server.cpp
+ (handle_input): Added code here will make sure we actually wait
+ for the user to type something. On platforms like Win32,
+ handle_input() is called prematurely (even when there is no
+ data).
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Changed
+ a log message.
+
+Wed May 7 22:55:00 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * JAWS/server/*: Debugging changes! GET and HEAD both work
+ now. As well as changes to make it compile cleanly on
+ VXWORKS, as reported by David.
+
+Wed May 07 16:05:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Makefile: added Timer_Wheel to FILES. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
+
+ * include/makeinclude/platform_irix6.2_sgic++.GNU: enabled CPPFLAGS
+ to instantiate all templates so that gatewayd will build.
+ Thanks to Nathan N. Vuong <nvuong@mail08.mitre.org> for reporting
+ this problem and Eric Dean Russell <edrusse@somnet.sandia.gov>
+ for supplying and the fix.
+
+ * ace/Map_Manager.h: updated comments to indicate that find
+ functions return a non-negative integer if the item is found.
+
+ * ace/Map_Manager.cpp (find_i (const EXT_ID &, INT_ID &)): return
+ index instead of 0 if the item is found, to be consistent with
+ find_i (const EXT_ID &).
+
+ * ace/IOStream.cpp (ACE_Streambuf_T ctor): added initializations of
+ eback_saved_ and pbase_saved_ to avoid unitialized memory read
+ reports from Purify.
+
+Tue May 6 07:39:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Service_Config.cpp (open): Make sure to perform the
+ daemonization logic first so that we get a new process created
+ before initializing reactors, etc. Thanks to Adrian Salt
+ <acsalt@magi.com> for reporting this.
+
+ * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main):
+ Changed ACE::INVALID_HANDLE to ACE_INVALID_HANDLE.
+ Thanks to Dani Flexer <danif@alice.actcom.co.il> for
+ reporting this.
+
+ * tests/Conn_Test.cpp (compare_i): Changed the comparison from
+ a1 == a2 to a1 != a2 since this appears to be what is needed.
+ We need to improve the comments here!
+
+ * tests/Conn_Test.cpp: Split the definition of the Svc_Handler
+ template into its own Conn_Test.h file to work around "features"
+ with AIX C++. Thanks to Chris Lahey for reporting this.
+
+ * ace/Containers.cpp: Fixed a bug in the set() method for
+ ACE_Unbounded_Queue. Again, thank goodness for cs242!
+
+ * ace/Containers.cpp: Fixed a bug in the enqueue_head() logic for
+ ACE_Unbounded_Queue. Thank goodness for cs242 ;-).
+
+ * ace/Containers.cpp: Added a destructor for ACE_Node to keep the
+ compilers happy.
+
+Tue May 06 11:31:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * netsvcs/lib/*.cpp: removed break statements after
+ ACE_RETURNs to avoid unreachable statement warnings from
+ GHS.
+
+ * ace/OS.cpp (mktime): added time_t cast of -1 (error) return
+ to avoid compiler warning.
+
+ * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SIGNED_CHAR.
+
+ * ace/Containers.cpp (dequeue_head): fixed typos in variable names.
+
+ * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
+ removed #ifdef ACE_HAS_TLI around some template specializations so
+ that this subproject will build on platforms non-TLI platforms such
+ as Linux.
+
+Tue May 6 17:02:54 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/OS.{h,i}: Added strftime (). Also, enhanced strcasecmp
+ implementation to account for lexicographical ordering for
+ mismatches.
+
+ * apps/JAWS/server/Parse_Headers.{h,cpp} (class Headers_Map):
+ Changed signature of casting operator to return a pointer
+ rather than a reference to a constant pointer, to fix
+ anachronism warning Doug found.
+
+ * apps/JAWS/server/HTTP_Config.{h,cpp}: Added class
+ HTTP_Config to be a container for HTTP server options
+ such as locations of directories, port, etc.
+
+ * apps/JAWS/server/HTTP_Helpers.{h,cpp}: Added code to enhance
+ support for CGI scripts:
+ - Added HTTP_decode_string to HTTP_Helper class, to deal
+ with percent codes.
+
+ * apps/JAWS/server/HTTP_Request.{h,cpp}: Added code to enhance
+ support for CGI scripts:
+ - Added cgi_, cgi_env_, and cgi_args_ data members to
+ and corresponding accessors.
+ - Added nice accessors to the important data members to
+ simplify other parts of the code.
+ - Added method to parse URI to determine the name of the CGI
+ executable if present.
+
+ * apps/JAWS/server/HTTP_Response.{h,cpp}: Added code to
+ enhance support for CGI scripts:
+ - Hooks are now present to make the appropriate calls
+ to activate a CGI program.
+
+ * apps/JAWS/server/*.{h,cpp}
+ Various changes from the ACE mailing list incorporated.
+ Cosmetic changes for ACE coding style.
+
+ SGI fixes.
+
+Tue May 6 00:00:54 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/Message_Block.cpp: Added template specialization for
+ ACE_Guard<> that prevented ACE from compiling under Linux.
+
+Mon May 5 22:17:15 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
+
+ * apps/JAWS/stress_testing: Removed the usleep definition from
+ global.h, it was unused by the program.
+
+Mon May 05 21:01:42 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-linux*.h: added ACE_HAS_STRING_CLASS. Thanks to
+ Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this.
+
+Mon May 05 19:58:16 1997 <irfan@TWOSTEP>
+
+ * ace/ace.{mak,mdp}: Readded IOStream.cpp to the makefile.
+
+ * ace/Synch_T.h: Added ACE_SYNCH_RECURSIVE_MUTEX.
+
+ * ace/Timer_Queue: Added an extra template parameter to
+ Timer_Queues that specifies the type of locking to be used
+ inside of the timer queue.
+
+ Also changed the functor callback routines so that they are more
+ descriptive compared to operator ().
+
+Mon May 5 21:37:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Message_Block: Revised the release() logic for
+ ACE_Message_Block and ACE_Data_Block so that we will delete both
+ within the same block of code in order to hold the lock. This
+ should prevent nasty race conditions in multi-threaded programs.
+ Thanks to Craig Perras <craig.perras@CyberSafe.COM> for
+ reporting this problem.
+
+ * ace/Message_Block.cpp: Replaced an explicit acquire()/release()
+ of ACE_Lock::locking_strategy_ with a call to an ACE_Guard.
+
+ * ace/Containers.cpp (set): Optimized for the common case where
+ we're increasing the size of the set by 1.
+
+ * ace/Containers: Merged the ACE_Set_Node, ACE_Stack_Node, and
+ ACE_Set_Node into a single "ACE_Node" class. This tidies up the
+ code quite a bit.
+
+ * ace: Removed the Set.* and Stack.* files and replaced them with
+ the Containers.* files. This file contains the ACE_*Stack,
+ ACE_*Queue, and ACE_*Set classes. If this revised file scheme
+ breaks existing code please let me know and I'll provide
+ backwards compatibility.
+
+ * ace/Stack: Changed the name of ACE_Unbounded_Queue::enqueue() to
+ ACE_Unbounded_Queue::enqueue_tail() and also added
+ ACE_Unbounded_Queue::enqueue_head().
+
+ * ace/OS: Changed the names of the parameters of the ACE_OS::mem*
+ methods from ACE_OS::mem* (void *s, const void *t) to
+ ACE_OS::mem* (void *t, const void *s) since "t" should stand for
+ "target" and "s" for "source." Thanks to Andres Kruse
+ <Andres.Kruse@cern.ch> for pointing this out.
+
+ * ace/Stack: Removed the peek() method from ACE_Unbounded_Queue.
+ This functionality is now subsumed by the get(..., 0) method.
+ If this breaks any existing code please let me know.
+
+ * ace/Stack.h: Moved all the functionality from ACE_Unbounded_Set
+ into ACE_Unbounded_Queue. That's really where this belonged in
+ the first place. Thanks to David Levine for noticing this.
+
+ * ace/Set.h: Moved ACE_Set_Node from the *.cpp file into the *.cpp
+ file in anticipation of AIX C++ compiler bugs ;-).
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
+ Rearranged the location where we register to receive standard
+ input so that the socket handle will not be initialized at this
+ point. Thanks to craig perras <craigp@wolfenet.com> for
+ reporting this.
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp
+ (Event_Transceiver): Make sure to #ifdef around SIGQUIT for
+ WIN32 since it lacks this signal. Thanks to craig perras
+ <craigp@wolfenet.com> for reporting this.
+
+ * ace/config-osf1-4.0-g++.h: Removed the ACE_LACKS_SIGNED_CHAR
+ since this seems to be compiler specific. Thanks to Thilo for
+ this insight.
+
+ * ace/Strategies_T: Added a number of fixes and enhancements to
+ the new Hash_Addr and ACE_Cached_Connect_Strategy classes.
+
+ * ace/Strategies_T.h: Added #include for "Hash_Map_Manager.h".
+ Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
+
+ * ace/config-hpux-10.*.h: Applied a number of patches courtesy of
+ Carlos O'Ryan.
+
+ * ace/Dump.cpp: Changed a cast from
+
+ delete (ACE_Dumpable_Ptr *) this->dumper_;
+
+ to
+
+ delete (ACE_Dumpable *) this->dumper_;
+
+ This fixes a potential bug. Thanks to Carlos O'Ryan for this
+ bug report.
+
+ * ace/DEV_IO.h,
+ * ace/SPIPE_Stream.h: Removed the = 0 default value for one send()
+ method to avoid ambiguity with the other send() method. Thanks
+ to Carlos O'Ryan for this bug report.
+
+ * ace/Map_Manager.cpp (advance): Removed a cast to size_t since
+ that is always true. Thanks to David Levine for pointing this
+ out.
+
+ * ace/XtReactor: Moved the remove_handler_i() and
+ register_handler_i() methods into the protected portion
+ of the class. Since these should never be called by the
+ client I've moved them into protected portion to ensure this
+ is the case.
+
+ * ace/XtReactor: Changed the implementation of the XtReactor to
+ use long for dealing with timers. Thanks to Stuart Powell
+ <stuartp@in.ot.com.au> for reporting this.
+
+Mon May 5 17:16:41 1997 Carlos O'Ryan <coryan@mat.puc.cl>
+
+ * ace/config-hpux-10.x.h, config-hpux-10.x-nothread.h:
+ Some patches are needed to compile ACE under HP-UX (using HP/C++),
+ I documented those patches.
+
+Mon May 05 11:50:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: fixed ACE_Svc_Handler
+ specializations, yet again, for Linux w/LXPthreads. Thanks to
+ Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this
+ problem with sufficient detail for us to track it down.
+
+ * ace/Stack.* (ACE_Unbounded_Queue):
+
+ 1) made peek () const.
+ 2) added another peek (u_int index = 0) function that can peek
+ at any queue item, not just the first. It returns a pointer
+ to the item (or 0 if not found), to avoid copying.
+ 3) changed return type of size () from int to size_t.
+ 4) inlined size ().
+
+ * ace/Strategies_T.cpp (connect_svc_handler, operator==):
+ added return type.
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: fixed template
+ specializations for platforms that have neither THREADS nor
+ TLI. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+Sun May 4 12:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.cpp: If ACE_HAS_THREADS isn't defined then we'll just
+ use mktime() without the locking.
+
+ * ace/Set: Removed the get() methods from the ACE_Fixed_Set and
+ ACE_Bounded_Set since they don't make much sense on these
+ abstractions.
+
+ * ace/Set: Changed the new "find" method to be called "get" to
+ correspond to the new "set" method I'm adding.
+
+ * ace/SString.cpp: Added a operator << for ACE_CString in
+ order to print it with iostreams.
+
+ * ace/Set.cpp: Added a reset method to the ACE_Unbounded_Set to
+ remove all the nodes without completely destroying the set.
+
+ * ace/SString: Added friend operator+ to both ACE_CString and
+ ACE_WString in order to provide a concatenation operator.
+
+ * ace/SString: Added a compare() method to all the ACE String
+ classes. This behaves just like the Standard C library strcmp()
+ function.
+
+ * ace/Message_Queue.i: Oddly, there were a bunch of methods
+ defined in this *.i file that didn't have ACE_INLINE in front of
+ them. I'm surprised this didn't give compile errors on some
+ platforms. I've fixed this by moving these methods into the
+ *.cpp file.
+
+ * ace/Stream,
+ ace/Service_Repository,
+ ace/Reactor,
+ ace/Message_Queue,
+ ace/Map_Manager,
+ ace/Malloc_T,
+ ace/Hash_Map_Manager,
+ ace/Set: Added a done() method on all the iterators so that
+ we can check within the iteration itself to see if there are any
+ remaining elements. In addition, updated the return value of
+ advance() on all iterators so that it returns 1 if we're not
+ done and 0 if we're done.
+
+Sun May 04 07:22:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Timer_Heap_T.cpp: changed some more int declarations to longs.
+
+Sat May 3 17:38:19 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * Changed all uses of Reactor::{scheduler_timer,cancel}() and
+ Timer_{Queue,List,Heap,Wheel}::{schedule,cancel}() to use
+ long rather than int. This is important since it ensures that
+ we can make the Timing Wheels trick of casting the
+ Timer_Node * to long work correctly on machines that have 64
+ bit pointers, 64 bit longs, and 32 bit ints (e.g,. DEC
+ ALPHA). Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for pointing this out,
+ even though he finds this solution distasteful ;-).
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp (initiate_connection): I
+ believe there was also a bug here -- if schedule_timer() returns
+ 0 that's not an error!
+
+ * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
+ (initiate_connection): I believe there was a bug here -- if
+ schedule_timer() returns 0 that's not an error!
+
+ * tests/IOStream_Test.cpp: Added some minor changes for DEC UNIX.
+ Thanks to James CE Johnson <jjohnson@lads.com> for reporting
+ this.
+
+ * ace/IOStream: Added a number of minor changes for DEC UNIX.
+ Thanks to James CE Johnson <jjohnson@lads.com> for reporting
+ this.
+
+ * ace/config-osf1-4.0.h: Added
+ ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS to the config.h file.
+ Thanks to James CE Johnson <jjohnson@lads.com> for reporting
+ this.
+
+ * ace/SString: Made the ace_string_null_string_ a static data
+ member rather than an external constant. This should control
+ the name space a bit better.
+
+ * ace/SString.cpp: Fixed the ACE_CString::operator += so that it
+ won't screw up if this->rep_ initially points to the
+ ACE_String_null_string_.
+
+ * examples/Misc: Added a new test_set.cpp program that exercises
+ the ACE_*_Set classes.
+
+Sat May 03 06:56:10 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Map_Manager.cpp (dtor): removed void return (typo).
+
+ * ace/Set.cpp (ACE_Fixed_Set<T>::operator =): typo: fs instead of bs.
+
+ * ace/Set.cpp (ACE_Fixed_Set<T, SIZE>::find): typo: index instead of i.
+
+ * ace/IOStream.cpp: fixed typo: "#if defined" instead of just "#if".
+
+ * tests/Conn_Test.cpp,
+ netsvcs/lib/{Client_Logging_Handler,TS_Clerk_Handler}.cpp,
+ netsvcs/clients/Tokens/manual/manual.cpp,
+ apps/Gateway/Gateway/Event_Channel.cpp,:
+ apps/JAWS/client/Blob.cpp,
+ examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
+ examples/ASX/Event_Server/Transceiver/transceiver.cpp,
+ examples/ASX/UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
+ examples/Connection/misc/test_upipe.cpp,
+ examples/Connection/non_blocking/test_*_connector.cpp: added
+ ACE_Map_Entry template specialization. It's needed now that the
+ destructor is explicit.
+
+Fri May 2 14:57:56 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Map_Manager.cpp: Added a no-op destructor to ACE_Map_Entry
+ just to keep some compilers happy. Thanks to Chuck Gehr for
+ reporting this.
+
+ * ace/config-osf1-4.0.h: Added
+
+ #define ACE_LACKS_IOSTREAM_FX
+ #define ACE_LACKS_LINEBUFFERED_STREAMBUF
+ #define ACE_LACKS_SIGNED_CHAR
+
+ Thanks to James CE Johnson <jjohnson@lads.com> for reporting
+ this.
+
+ * ace/Timer_{Wheel,Heap,List}_T.h: Fixed a typo in all these
+ classes that was failing to put the keyword "class" after
+ "friend." Also, replaced the use of the typedef with the
+ expanded name of the class to work around problems with DEC
+ C++. Thanks to James CE Johnson <jjohnson@lads.com> for
+ reporting this.
+
+ * ace/Set: Added a find() method that will return the "ith"
+ element in the set.
+
+ * ace/Set: Added copy constructors and assignment operators to all
+ the ACE_*_Set classes.
+
+ * ace/Set.cpp: Changed the implementation of ACE_Unbounded_Set to
+ use a dummy node and a circular list. This improves performance
+ and also makes it possible to implement "queue" semantics for
+ inserting at the tail of the set.
+
+ * ace/config-osf1-4.0.h: Added the ACE_HAS_STRING_CLASS macro.
+ Thanks to James CE Johnson <jcej@lads.com> for this.
+
+ * ace/IOStream: Added the ACE_HAS_STRING_CLASS macro to
+ replace the nasty #ifdefs we had previously. Thanks to
+ James CE Johnson <jcej@lads.com> for this.
+
+ * ace/config*.g++: Added ACE_HAS_STRING_CLASS for all the GNU
+ compilers and Win32.
+
+ * ace/config-mvs.h: Added a new version that contains support for
+ IBM OS/390 r2. Thanks to Chuck Gehr for this.
+
+Fri May 02 08:14:30 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp: removed
+ specializations of ACE Guards because they're in libGateway.
+ Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this problem.
+
+ * examples/ASX/Event_Server/Transceiver/{Makefile,transceiver.cpp}:
+ added template specializations to transceiver.cpp so that it no
+ longer needs to be linked with libGateway.
+
+ * examples/ASX/Event_Server/Event_Server/{Makefile,Peer_Router.cpp}:
+ added template specialization to Peer_Router.cpp so that event_server
+ no longer needs to be linked with libGateway.
+
+ Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting the above
+ link problems.
+
+ * apps/Gateway/Peer/{Makefile,Peer.cpp}: added template
+ specialization to Peer.cpp so that peerd no longer needs to
+ be linked with libGateway.
+
+ * Log_Msg.cpp (VxWorks only): fixed used of ::taskDeleteHookAdd (it
+ should only be called once for all Log_Msg instances) and added call
+ to ::taskDeleteHookDelete to clean up when the last task exits.
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting this.
+
+ * tests/Conn_Test.cpp: changed some fprintf print specifiers to avoid
+ g++ warnings about printing pointer values.
+
+Thu May 01 00:05:59 1997 <irfan@TWOSTEP>
+
+ * tests/Time_Service_Test.cpp (main): Made sure that the backing
+ store is not there at the start of the program. We need to make
+ sure because this test kills the Time Clerk and on some
+ platforms the Clerk is not allowed to do a graceful shutdown. By
+ cleaning the backing store here, we are sure that we get a fresh
+ start and no garbage data from a possible aborted run.
+
+ The old code deleting the backing store at the end of the test
+ is still there but does not work on Win32 as unlink fails with
+ ERROR_ACCESS_DENIED. I am not sure why this is happening! For
+ now the unlink at the start of the program will do.
+
+ Also added a wait for the clerk before deleting the backing
+ store. This way we are sure that we do not delete the backing
+ store before the clerk is done with it.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed an obscure bug with
+ ACE_TS_Clerk_Processor. ACE_TS_Clerk_Processor (which is an
+ ACE_Connector) and all its pending connection objects are still
+ registered with the Reactor when the process exits and the
+ Service_Object is deleted. After this the destructor of the
+ Reactor then calls handle_close on ACE_TS_Clerk_Processor
+ (which does not exist anymore), causing a seg fault. The
+ solution is to call ACE_Connector::fini from
+ ACE_TS_Clerk_Processor::fini. ACE_Connector::fini will
+ unregister ACE_TS_Clerk_Processor and all pending connects from
+ the Reactor.
+
+Wed Apr 30 17:47:11 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i (getpwnam_r): Changed the expression to check if
+ getpwnam_r() returns -1 for AIX. Thanks to Chris Lahey for
+ this.
+
+ * ace/Timer_Wheel_T.h: changed
+
+ // = Don't allow these operations for now.
+ ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T &);
+ void operator= (const ACE_Timer_Wheel_T &);
+
+ to:
+
+ // = Don't allow these operations for now.
+ ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
+ void operator= (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
+
+ Thanks to Chuck Gehr for reporting this.
+
+ * ace/OS.cpp: Made mktime() thread-safe. If any platforms support
+ multi-thread safe versions of mktime() please let me know so we
+ can set the ACE_HAS_MT_SAFE_MKTIME macro for that config file.
+
+ * ace/OS.i: Added a new special case for getpwnam_r() on AIX.
+ Thanks to Chris Lahey for reporting this.
+
+Wed Apr 30 16:01:04 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/OS.i, ace/OS.h: added mktime().
+
+Wed Apr 30 14:17:34 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-vxworks*.h: added ACE_LACKS_PWD_FUNCTIONS. Thanks
+ to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
+ this.
+
+ * ace/OS.i: cleaned up ACE_LACKS_PWD_FUNCTIONS comments a bit.
+
+ * ace/Array.{h,i}: added const operator [].
+
+ * ace/Array.cpp (ctors): reordered initializers to match declaration
+ order.
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: protect against multiple
+ inclusion. Thanks to Kevin Martindale
+ <kevin_martindale@stortek.com> for reporting this problem.
+
+Wed Apr 30 08:42:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace: Added a new generic Array class, which we'll use until
+ STL becomes more widely portable.
+
+ * ace: Added a new macro ACE_LACKS_GETPGID to clean up the code
+ in ACE_OS::getpgid().
+
+ * ace: Added new config*.h files and platform*.GNU files for
+ FreeBSD. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for these.
+
+Wed Apr 30 07:44:36 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-osf1-4.0*.h: removed ACE_HAS_SIGWAIT.
+
+ * ace/OS.{h,i}: applied Thilo's patch for sigwait on Digital
+ Unix 4.0, which defines sigwait as a macro. Thanks to
+ Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ this and the above config file patches.
+
+ * ace/IOStream.{h,cpp}: James CE Johnson <jcej@lads.com> updated
+ the IOStream class; see comments in IOStream.h.
+
+ * examples/Logger/client/logging_app.cpp (main),
+ performance-tests/Misc/test_naming.cpp (*): replaced sprintf
+ with ACE_OS::sprintf. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for reporting these.
+
+Tue Apr 29 20:03:38 1997 <sumedh@cs.wustl.edu>
+
+ * apps/JAWS/stress_testing/http_tester.cpp : Removed usage
+ of pow (), and changed method of calculating throughput/latency
+ to use straight multiplication instead of pow (). Updated
+ Makefile to not link -lm.
+
+Tue Apr 29 19:57:52 1997 <irfan@TWOSTEP>
+
+ * config-win32-common.h (ACE_HAS_TEMPLATE_SPECIALIZATION): Win32
+ supports this option. Added to config file.
+
+ * ace: Removed tracing for the following to make things work with
+ tracing on:
+
+ ACE::timestamp
+ ACE_FIFO_Send_Msg::send
+ ACE_SPIPE_Stream::send
+ ACE_Sig_Guard::ACE_Sig_Guard
+ ACE_Sig_Guard::~ACE_Sig_Guard
+
+ * netsvcs/servers/main.cpp (main): Added special code for Win32
+ such that only SIGINT is being registered with the Signal
+ Handler. SIGQUIT is not supported on Win32.
+
+ * netsvcs/lib/Token_Handler.cpp (init): Removed the registration
+ of the Acceptor for SIGINTs.
+
+ * netsvcs/lib/TS_Server_Handler.cpp (init): Same as above.
+
+ * netsvcs/lib/Client_Logging_Handler.cpp (open): Removed the
+ registration of SIGPIPE for Win32. Win32 does not support
+ SIGPIPE.
+
+ * tests/Process_Strategy_Test.cpp (server): The new thread must
+ become owner before it can call Reactor::handle_events. Also
+ fixed #define typo.
+
+ * ace/OS.cpp (socket_fini): Remove the ACE error message as the IO
+ Stream objects are already gone by this point in the program.
+
+ * examples/Registry/Registry.mak: Replaced the old makefiles with
+ this one. Also added _AFXDLL as a preprocessor define, forcing
+ the correct inclusion of header files that give a consistent
+ definition of HKEY. This is a hack till we have a better
+ solution.
+
+ * ace/Event_Handler: Removed the old Proactor callback methods.
+
+Tue Apr 29 17:39:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/config-mvs.h: Added #define ACE_LACKS_LINEBUFFERED_STREAMBUF
+ for MVS. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
+ reporting this.
+
+ * ace: Commented out ACE_TRACE calls in constructors in
+ several ACE classes in order to avoid problems with circular
+ initialization dependencies related to mutexes that are
+ breaking code on WinNT when ACE_NTRACE is set to 0. Thanks
+ to Lothar Hermann <hermann@csaserv.med.siemens.de> for
+ reporting these.
+
+ * ace/Reactor.cpp: It looks as if Windows NT isn't returning
+ the number of bytes requested by a WinSock recv() used in
+ the ACE_Reactor::notify() in some situations. This is
+ causing problems for test programs under heavy load. The
+ fix appears to be to add an additional ACE::recv() to obtain
+ the remaining bytes. Thanks to Karlheinz for reporting this
+ and to Irfan for helping to fix it.
+
+ * ace/OS.i: Fixed a very subtle bug with ACE_OS::cond_wait() and
+ ACE_OS::cond_signal() that only manifests itself when
+ ACE_HAS_SIGNAL_OBJECT_AND_WAIT is enabled (which isn't the
+ default). The problem stemmed from the fact that we were
+ assuming that if we used condition variables it implied that the
+ external mutex had USYNC_PROCESS scope. In fact, the external
+ mutexes typically have USYNC_THREAD scope, so
+ SignalObjectAndWait() was hanging indefinitely. Fortunately,
+ the fix was easy -- just add a run-time check for the type of
+ the external mutex and take the appropriate action. Thanks to
+ Irfan for noticing this.
+
+ * tests/Reader_Writer_Test.cpp: Added a parse_args() function that
+ allows us to override the default number of reader/writer
+ threads + the number of iterations.
+
+ * ace/OS: Added patches for Digital UNIX to handle the
+ getpwnam_r() name. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for these patches.
+
+Tue Apr 29 14:27:19 1997 <harrison@samba.cs.wustl.edu>
+
+ * OS.h: Added ACE_HAS_SVC_DLL. If you write a library and
+ want it to use ACE_Svc_Export, this will cause those macros
+ to build dlls. If you want your ACE service to be a static
+ library, comment out this line. As far as I know, the only
+ reason to have a library be an ACE "service" is to leverage
+ the ACE_Svc_Export macros. It's just as easy to define your
+ own export macros.
+
+Tue Apr 29 07:25:25 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * apps/JAWS/server/HTTP_Request.h (HTTP_Request): added destructor
+ declaration.
+
+ * apps/JAWS/server/Parse_Headers.cpp (parse_header_line): assign local
+ "value" to value_ field of map_[header].
+
+ * apps/JAWS/server/HTTP_Request.cpp (HTTP_fix_path): commented this
+ static function out because it's not used, and g++ warns about that.
+
+ * apps/JAWS: added CVS header to all .h, .i, and .cpp files.
+
+Tue Apr 29 00:33:46 1997 <irfan@TWOSTEP>
+
+ * examples/Reactor/Misc/notification.cpp: Add this test to the
+ Win32 makefile.
+
+ * ace: Removed config-win32-msvc2.0.h, config-win32-msvc4.0.h
+ config-win32-msvc4.x.h, and config-winnt-4.0-msvc.h from the
+ repository. These files have been replaced by config-win32.h
+ and config-win32-common.h.
+
+ * IOStream_Test.cpp (main): Added return 0 at the end of main().
+
+ * examples/Reactor/Proactor/test_proactor.mak: Added wsock32.lib
+ to the link line. I am not sure why we have to do this again
+ since ace.lib already includes it. Without this library in the
+ link line, GetAcceptExSockaddr is not defined. Go figure!
+
+ * apps/JAWS/server/jaws.mak: Same as above.
+
+ * ace/ace.{mak,mdp}: Fixed the generation of the release version
+ of ace.dll such that wsock32.lib is automatically included.
+
+Tue Apr 29 00:16:27 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * JAWS: Changes to support CGI scripts
+
+ Changed the following files --
+ HTTP_Handler.cpp HTTP_Handler.h HTTP_Helpers.cpp
+ HTTP_Helpers.h HTTP_Request.cpp HTTP_Request.h IO.cpp IO.h
+
+ Added the following files --
+ HTTP_Response.cpp HTTP_Response.h Parse_Headers.cpp
+ Parse_Headers.h
+
+ Removed the file --
+ JXH_String.h
+
+ * JAWS/stress_testing: Changed the Makefile to link in the math
+ library (-lm).
+
+ * ace/OS.h and ace/OS.i: Added support for memmove().
+
+Mon Apr 28 21:35:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/IOStream.h: Added a new macro called
+ ACE_LACKS_IOSTREAM_SETGET, which works around bugs with SGI C++
+ on IRIX 6.2. Thanks to Torbjorn Lindgren <tl@funcom.com> for
+ reporting this.
+
+ * ace/Timer_List_T.h: Replaced the use of
+ ITERATOR with ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR> to
+ work around problems with SGI C++. Thanks to
+ Torbjorn Lindgren <tl@funcom.com> for reporting this.
+
+ * ace/Timer_List_T.cpp: Removed the use of NODE * and replaced it
+ with ACE_Timer_Node_T<TYPE, FUNCTOR> in order to work around
+ bugs with certain C++ compilers (i.e., SGI). Thanks to Torbjorn
+ Lindgren <tl@funcom.com> for reporting this.
+
+ * tests/Conn_Test.cpp: Removed some extraneous template
+ specializations. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for
+ reporting these.
+
+ * apps/JAWS/client/Blob.cpp: Rearranged some of the template
+ specializations in the hope of fixing a linker problem with
+ SunC++ 4.2.
+
+ * ace/config-irix-6.2*.h. It appears that SGI IRIX 6.2 supports
+ pread() and pwrite() so I enabled the ACE_HAS_P_READ_WRITE macro
+ in the IRIX 6.2 config file.
+
+ * ace/OS.cpp: Implemented ACE_OS::pread() and ACE_OS::pwrite() for
+ systems that lack this feature. The implementation uses the new
+ ACE_Thread_Mutex monitor lock in order to ensure atomicity
+ between the lseek() and the read()/write().
+
+ * ace/OS.cpp: Finally broke down and added a ACE_Thread_Mutex
+ monitor lock to the ACE_OS implementation file. This is useful
+ for situations where we need to serialize certain ACE_OS
+ emulation calls (e.g., ACE_OS::{pwrite,pread}).
+
+Mon Apr 28 15:42:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * apps/JAWS/client/blobby.cpp: updated template specializations.
+
+ * apps/JAWS/stress_testing/global.h: removed #includes of system
+ headers because ace/OS.h takes care of them. They were causing
+ warnings with g++ (because they were #included before OS.h).
+
+ * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
+ typos in template specializations.
+
+ * tests/Conn_Test.cpp,Message_{Block,Queue}_Test.cpp,
+ Process_Strategy_Test.cpp: fixed template specializations
+ for platforms without threads. Thanks to Nanbor Wang
+ <nw1@cs.wustl.edu> for pointing out this problem.
+
+ * ace/Connector.h: use ACE_SYNCH_RW_MUTEX in Map typedefs
+ instead of old ACE_RW_Mutex (which should have been
+ ACE_Thread_RW_Mutex) and ACE_Null_Mutex (depending on
+ whether the platform has threads).
+
+ * ace/Service_Record.cpp: added ACE_NULL_SYNCH template
+ specializations with threads, because they're still needed even
+ with threads. This way, individual programs don't have to
+ specialize these.
+
+ * ace/Task.cpp: added ACE_TSS<ACE_Task_Exit> and
+ ACE_TSS<ACE_Dynamic> template specializations, if the platform
+ has threads and TSS. This way, individual programs don't have
+ to specialize them.
+
+ * apps/Gateway/Gateway/Event_Channel.cpp,
+ Proxy_Handler{,_Connector}.cpp,apps/JAWS/server/HTTP_Server.cpp,
+ examples/ASX/Event_Server/Transceiver/transceiver.cpp,
+ examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp,
+ examples/Connection/blocking/SPIPE-connector.cpp,
+ examples/Connection/misc/{Connection_Handler,test_upipe}.cpp,
+ examples/Connection/non_blocking/test_*.cpp,
+ examples/IOStream/server/iostream_server.cpp,
+ examples/Logger/Acceptor-server/server_loggerd.cpp,
+ examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
+ netsvcs/lib/Client_Logging_Handler.cpp,
+ netsvcs/lib/TS_{Clerk,Server}_Handler.cpp:
+ removed template instantiations that are now in
+ ace/Service_Record.cpp and ace/Task.cpp. This should help
+ on platforms without threads.
+
+ * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
+ typos in template specializations.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: protected
+ the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp: protected
+ the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
+
+ * apps/JAWS/stress_testing/benchd.cpp (serve): added return -1 if
+ the strcmp () fails so that the function always returns a value.
+
+Mon Apr 28 18:53:58 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
+
+ * ace/OS.h: Added ACE_DEFAULT_TIMER_WHEEL_SIZE and
+ ACE_DEFAULT_TIMER_WHEEL_RESOLUTION constants.
+
+ * ace/Timer_Wheel_T.h: switched to use these constants
+
+ * tests/Timer_Queue_Test.cpp: switched to use these constants
+
+ * ace/Timer_Wheel: added a new strategy for Timer Queues, one
+ based on a hash table of ordered lists.
+
+ These files were added:
+
+ - ace/Timer_Wheel.h
+ - ace/Timer_Wheel_T.h
+ - ace/Timer_Wheel_T.cpp
+
+ These files were also changed to accomodate Timer Wheel
+
+ - ace/Timer_Queue.cpp
+ - ace/Timer_Queue_T.h
+ - ace/Timer_Queue_T.cpp
+ - tests/Timer_Queue_Test.cpp
+
+Mon Apr 28 17:32:04 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added
+ template specializations.
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added
+ template specializations.
+
+ * ace/OS.cpp (thr_create): Hopefully resolved tension
+ btw. priority determination algorithms for IRIX, LinuxThreads, and
+ DEC UNIX 4.0. Thanks to Thilo for information that lead to this.
+
+Mon Apr 28 00:25:17 1997 <irfan@TWOSTEP>
+
+ * apps/JAWS/client: Removed ACE_Export macro from class
+ declarations. Fixed buffer size bug in
+ ACE_Blob_Reader::receive_reply ().
+
+Sun Apr 27 22:22:14 1997 <irfan@TWOSTEP>
+
+ * ace/Proactor: The Proactor can now be registered with ReactorEx
+ and both of them can be run from ReactorEx's event loop. Added a
+ flag to Proactor's constructor that indicates whether the
+ Proactor will be used in conjunction with ReactorEx event
+ loop. Only if this flag is set will the event in the Proactor be
+ used by the Asynch IO components. This will help with
+ performance.
+
+ * examples/Reactor/Proactor/test_multiple_loops.cpp: Added a new
+ test that shows the integration of the event loops of Proactor
+ and ReactorEx.
+
+ * ace/Asynch_IO: Added an ACE_EVENT parameter to the constructors
+ of classes that inherit from the OVERLAPPED structure. This way
+ the Proactor's event_ can be set in the OVERLAPPED structure.
+
+ Also changed the open methods on the Asynch IO classes to take a
+ Proactor as an extra parameter.
+
+ Changed ACE_Handler's handle_timeout() to handle_time_out() in
+ ACE_Handler. This is temporary till we decide on the argument
+ about mixing the interface of ACE_Event_Handler and
+ ACE_Handler. This change allows user to inherit from ACE_Handler
+ and ACE_Event_Handler and use the different handle_timeout()
+ method, one of which returns void and the other return an int.
+
+ * examples/Reactor/Proactor/test_timeout.cpp: This file got
+ affected by the above change.
+
+Sun Apr 27 17:44:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.h: Added a new #define called ACE_DEFAULT_HTTP_SERVER_PORT.
+ Naturally, this defaults to 80...
+
+ * apps/JAWS/client/blobby.cpp: Cleaned up the blobby example so
+ that it conforms more closely to the ACE style guide.
+
+ * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Took out
+ the VxWorks-specific #ifdefs. I believe this is fixed in ACE_OS
+ now. If not, the burden of proof is on the VxWorks testers to
+ prove me wrong ;-).
+
+ * ace/Synch_T.h: Added a new macro ACE_SYNCH_RW_MUTEX to
+ complement the existing ACE_SYNCH_MUTEX and ACE_SYNCH_CONDITION
+ macros. This will clean up lots of code in various test
+ programs.
+
+ * ace/Synch_T.h: Added two new macros, ACE_SYNCH_MUTEX and
+ ACE_SYNCH_CONDITION. These default to ACE_MT_SYNCH::MUTEX and
+ ACE_MT_SYNCH::MUTEX if template typedefs are supported and
+ ACE_HAS_THREADS is enabled. If template typedefs *aren't*
+ supported but ACE_HAS_THREADS is enabled these macros turn into
+ ACE_Thread_Mutex and ACE_Thread_Condition. Finally, if
+ ACE_HAS_THREADS is disabled these macros turn into
+ ACE_Null_Mutex and ACE_Null_Condition. These macros make it
+ possible to write code that is more portable across platforms
+ and configurations. Thanks to Carlos O'Ryan for this
+ suggestion.
+
+ * ace/OS.h: Replaced all uses of ACE_SYNCH_MUTEX and
+ ACE_SYNCH_CONDITION with ACE_SYNCH_MUTEX_T and
+ ACE_SYNCH_CONDITION_T since (1) this usage relates to templates
+ and (2) it frees up the namespace for the new ACE_SYNCH_MUTEX
+ and ACE_SYNCH_CONDITION macros.
+
+ * ace/Timer_Queue.cpp: Added yet more template specializations for
+ the benefit of GCC (ugh).
+
+ * ace/Timer_Wheel_T.cpp: Had to revise things just a bit to
+ compile with GCC and it's lame template mechanism. This
+ required changing NODE * to ACE_Timer_Node_T<TYPE, FUNCTOR> * in
+ several method definitions.
+
+ * apps/JAWS/server/HTTP_Server.h: Changed the use of ACE_WIN32 to
+ ACE_HAS_THREAD_SAFE_ACCEPT since this is a more precise way to
+ determine if the platform allows multiple threads to call
+ accept() on the same port. If other platforms support this
+ feature please make sure to add it to their config*.h files.
+
+ * ace/config-win32-common.h: Defined ACE_HAS_THREAD_SAFE_ACCEPT,
+ since Win32 allows multiple threads to call accept() on the same
+ port.
+
+ * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: The mutex
+ should be ACE_RW_Mutex, not ACE_Null_Mutex...
+
+Sun Apr 27 18:13:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Proactor.h: Added Timer_Wheel support.
+
+Sun Apr 27 18:13:24 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
+
+ * apps/JAWS/client: Removed blobby.h, and replaced it with
+ blobby_options.{h,cpp}.
+
+ * apps/JAWS/stress-testing: Removed unused argument warnings
+ etc.
+
+Sun Apr 27 07:41:44 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Timer_Queue.cpp: added #includes for template specializations,
+ and removed some unused specializations.
+
+ * ace/Timer_Wheel_T.cpp: added newline at end of file.
+
+ * ace/Timer_Wheel_T.cpp (ACE_Timer_Wheel_T ctor): reordered
+ initializers to match declaration order.
+
+ * ace/Log_Msg.cpp (log): added support for indenting output according
+ to the current nesting level by adding a new format specifier, I,
+ which indents the output according to the current trace_depth_.
+ If a width is also specified it is taken as multiplier (so that
+ the indentation is n*trace_depth_). Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for providing the code for this feature!
+
+ * examples/Reactor/Misc/test_timer_queue.cpp: fixed typos in
+ #includes, and added #include of ace/Timer_Heap.h.
+
+Sat Apr 26 17:19:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Timer_Queue.cpp: The correct Timer_Queue.cpp file was not
+ checked in. Also the necessary #include was missing.
+
+ * ace/Proactor.h: Proactor need all three Timer include files.
+
+ * ace/ace.{mdp,mak}: Updated for changes to Timer files.
+
+ * ace: Updated the following files to include /**/ before an
+ include file directive: OS.h, config-win32-common.h,
+ bstring.h. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
+ for reporting this.
+
+Sat Apr 26 13:41:15 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/config-sco-5.0.0-mit-pthread.h: Added
+ ACE_LACKS_PTHREAD_CANCEL. Thanks to Arturo Montes
+ <mitosys@colomsat.net.co> for reporting this.
+
+ * ace: Came up with a scheme that allowed us to remove the
+ ace/Timers.{h,i,cpp} files by adding
+ ACE_Timer_{Queue,Heap,List}_T.{h,i,cpp} files instead. Thus, no
+ existing code should break.
+
+Fri Apr 25 17:17:06 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.cpp (thr_create): Fixed the fix from Thilo so that it
+ compiled properly on Linux. Hopefully I didn't break his, and I
+ should have detected the problem earlier. Mea culpa.
+
+Fri Apr 25 12:45:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Added a new macro called ACE_HAS_SIG_MACROS for the
+ case where the frigging OS defines things like sigismember and
+ sigfillset as macros (ugh).
+
+ * ace/FILE_IO.h: Removed a trailing default initializer from the
+ send() method since it was ambiguous. Thanks to Carlos O'Ryan
+ for reporting this bug.
+
+ * ace/OS.i (select): Unfortunately the (operator timeval*) defined
+ for ACE_Time_Value was not used in ACE_OS::select (int width,
+ fd_set *rfds, fd_set *wfds, fd_set *efds, const ACE_Time_Value
+ *timeout) because the operator cannot be applied for a
+ ACE_Time_Value*. Therefore, I fixed this as follows:
+
+ ACE_SOCKCALL_RETURN (::select (width,
+ (ACE_FD_SET_TYPE *) rfds,
+ (ACE_FD_SET_TYPE *) wfds,
+ (ACE_FD_SET_TYPE *) efds,
+ timeout == 0 ? 0 : (timeval *) *timeout) , int, -1);
+
+ Thanks to Carlos O'Ryan for reporting this bug.
+
+ * ace: Applied a slew of patches from Carlos O'Ryan in order to
+ get ACE to compile on HP/UX 10.x with the aCC compiler.
+
+ * ace/Shared_Memory_MM: Export the filename in
+ ACE_Shared_Memory_MM class in order to aid debugging. Thanks to
+ Ashish Singhai <singhai@delirius.cs.uiuc.edu> for reporting
+ this.
+
+Fri Apr 25 14:58:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Timers: Updated the following files to make it compile on
+ g++. The following files were updated:
+
+ Proactor.cpp Timer_Heap.cpp Timer_List.cpp Timer_Queue.cpp
+ Timers.cpp
+
+Thu Apr 24 21:13:51 1997 <irfan@TWOSTEP>
+
+ * ace/Timer_Queue: Decoupled the Timer Queue from
+ ACE_Event_Handler and the callback routines in the handler
+ (handle_timeout and handle_close). The new Timer Queue is
+ parameterized by the type of data to store and a FUNCTOR on
+ which methods are invoked by the Timer Queue when timeouts and
+ cancellations occur.
+
+ No changes occured to the algorithms of the different
+ implementations of the Timer Queues (Timer List and Timer
+ Heap). Timer Queues, Timer List, and Timer Heap were all renamed
+ as <class>_T. However, typedef were added such that there is now
+ an ACE_Timer_Queue, ACE_Timer_Heap, and ACE_Timer_List, each
+ being an instantiation of the respective template classes. The
+ instantiation is done with ACE_Event_Handler as the type of data
+ to be stored in Timer Queue and
+ ACE_Event_Handler_Handle_Timeout_Upcall as the FUNCTOR that does
+ the appropriate upcall to ACE_Event_Handler.
+
+ Due to these typedefs, 99.9% of existing code should not
+ break. However, the following two will cause problems:
+
+ (a) Forward declarations of Timer_Queue will not work! This is
+ because Timer_Queue is now a typedef and not a class.
+
+ (b) #include "ace/Timer_Queue.h" will not be enough to get the
+ ACE_Timer_Queue typedef. The new typedefs are in a new file
+ called Timers.h. This file also has typedefs for ACE_Timer_Heap
+ and ACE_Timer_List.
+
+ Currently Proactor is the only class that uses a different
+ instantiation of the Timer Queue class. Proactor's Timer Queue
+ class is instantiated with ACE_Handler as the type of data to be
+ stored in Timer Queue and ACE_Proactor_Handle_Timeout_Upcall as
+ the FUNCTOR that does the appropriate posting to the Proactor's
+ completion port.
+
+ The Upcall Strategy is not needed any more cause it is replaced
+ by the FUNCTORs. Thus this is removed.
+
+ Small modifications were made to the following files
+ because of the changes to Timer_Queue.
+
+ - examples/Reactor/Misc/test_timer_queue.cpp
+ - examples/Reactor/Proactor/test_timeout.cpp
+ - tests/Timer_Queue_Test.cpp
+ - ace/Makefile (both UNIX and Win32)
+ - ace/Connector.h
+ - ace/Reactor.h
+ - ace/ReactorEx.h
+ - ace/Proactor.h
+
+ * ace/Proactor: Proactor now uses the new timer queues. Proactor's
+ Timer Queue class is instantiated with ACE_Handler as the type
+ of data to be stored in Timer Queue and
+ ACE_Proactor_Handle_Timeout_Upcall as the FUNCTOR that does the
+ appropriate posting to the Proactor's completion port. This will
+ help reduce the overhead of creating new act for each
+ timer. This also enables the cancellation of entire
+ ACE_Handlers.
+
+ * examples/Reactor/Misc: Added Win32 makefiles.
+
+ * ace/Shared_Memory_MM.i: Fixed typo.
+
+ * ace/SOCK_Connector.cpp: Fixed typo.
+
+Thu Apr 24 13:56:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/SOCK_Dgram.cpp: Added support for FreeBSD (i.e., BSD 4.4)
+ features for passing file descriptors between processes. Thanks
+ to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+ * ace/LSOCK_Stream.cpp: Added support for FreeBSD (i.e., BSD 4.4)
+ features for passing file descriptors between processes. Thanks
+ to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+ * ace/LSOCK.cpp: Added support for FreeBSD (i.e., BSD 4.4)
+ features for passing file descriptors between processes. Thanks
+ to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+ * ace/SOCK_Connector.cpp (complete): There's a bug in WinNT that
+ causes non-blocking connects to fail. The workaround is to
+ sleep for 1 millisecond. Thanks to Steve Huston
+ <shuston@riverace.com> for reporting this.
+
+ * ace/Connector.cpp (handle_output): There's a bug in WinNT that
+ causes non-blocking connects to fail. The workaround is to
+ sleep for 1 millisecond. Thanks to Steve Huston
+ <shuston@riverace.com> for reporting this.
+
+ * tests/Conn_Test.cpp: Changed from operator != to operator == to
+ be consistent with what is required by the ACE_Hash_Map_Manager.
+
+ * ace/Hash_Map_Manager: Factored out the equality comparison into
+ an equal() method in order to facilitate template
+ specialization. In addition, rather than using the != operator
+ we now default to using the operator== operator and negating the
+ result. This is consistent with the behavior of the
+ ACE_Map_Manager.
+
+ * ace/Map_Manager: Factored out the equality comparison into an
+ equal() method in order to facilitate template specialization.
+
+ * ace/OS.i: Added a new #ifdef called ACE_LACKS_PTHREAD_CANCEL.
+ I'm not sure which platforms should set this, but it fixes
+ a bug with ACE_OS::thr_cancel(). Thanks to Eric Dean
+ Russell <edrusse@somnet.sandia.gov> for reporting this.
+
+ * tests/Process_Strategy_Test.cpp (handle_input): We were
+ comparing EOF to a char, which gets complaints on platforms
+ where char is unsigned by default. I added a cast of EOF to
+ char to fix this. Thanks to Amos Shapira <amos@dsi.co.il> for
+ reporting this.
+
+ * apps/JAWS/server/HTTP_Helpers.cpp (instance): Changed the
+ return type from const char * to const char **. Thanks to
+ Amos Shapira <amos@dsi.co.il> for reporting this.
+
+ * ace/OS.i (getpwnam_r): Added a missing #else. Thanks to
+ Amos Shapira <amos@dsi.co.il> for reporting this.
+
+ * ace/Timer_Heap: Made many minor enhancements to ACE_Timer_Heap
+ in an effort to figure out why we're getting memory leaks.
+
+Thu Apr 24 09:33:53 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile: modified the TIMESTAMP macro to update the third
+ component, if there is one, of the version number in the VERSION
+ file. This assumes that alpha/beta releases are numbered with
+ three components, and that final releases are not. So, if the
+ version number is, e.g., 4.2, it will not be modified because it
+ is assumed to be for a final release. Manual switching between
+ alpha/beta and final release "modes" is therefore still required.
+
+ * ace/Timer_Heap.cpp (copy): added cast of max_size_ to int to avoid
+ signed/unsigned comparison.
+
+ * ace/config-sunos5.4-g++.h: removed
+ ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES because it caused compile
+ warnings about conversion from `(int)' to `(...)' at Signal.i:113.
+ (And the other sunos5.4 config files don't have it.)
+ Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
+
+ * tests/Timer_Queue_Test.cpp (main): added delete of timer_ids array
+ to avoid memory leak.
+
+Wed Apr 23 22:56:57 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
+
+ * apps/JAWS/client/*: Fixed warnings due to size_t
+ * apps/JAWS/client/Blob_Handler: Fixed error by passing
+ pointer to base class ACE_Blob_Handler instead
+ of pointing to ACE_Blob_Reader, in call to connect
+
+Wed Apr 23 20:57:35 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * ace/OS.i and ace/OS.h: added methods for getpwnam and
+ getpwnam_r, with hooks for NT.
+
+ * ace/config-irix6.2.*: added ACE_LACKS_PWD_REENTRANT_FUNCTIONS.
+
+Wed Apr 23 14:27:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Timer_Queue.cpp (ACE_Timer_Queue ctor): reordered initializers
+ to match declaration order.
+
+ * tests/Process_Strategy_Test.cpp: added ACE_Singleton template
+ specialization. In function client (), null terminated "buf"
+ before call to ACE_OS::strrchr () to avoid uninitialized memory
+ read. Also, fixed typo in test name (argument to ACE_START_TEST).
+
+ * examples/Service_Configurator/Misc/Timer_Service.cpp (init): changed
+ type of loop index to int to avoid signed/unsigned comparison, and
+ initialized "interval" so that it has a value even if one isn't
+ specified on the command line.
+
+Wed Apr 23 10:52:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.cpp (thr_create): Removed errant preprocessor conditional
+ for determining the scheduling priority. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for reporting this.
+
+Wed Apr 23 09:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests/Process_Strategy_Test.cpp: Finished updating this program
+ so that it is an automated test.
+
+ * ace/Acceptor.h: Moved get_handle() into the public portion of
+ the Acceptor.
+
+ * include/makeinclude/platform_irix6.2_sgic++.GNU (SOBUILD): There
+ was an extra @ in $@@. Thanks to Amos Shapira <amos@dsi.co.il>
+ for reporting this.
+
+ * apps/JAWS/client/Blob[_Handler].cpp: Added casts for free ((void
+ *) filename_);. Thanks to Amos Shapira <amos@dsi.co.il> for
+ reporting this.
+
+ * apps/JAWS/server/HTTP_Helpers.h (class HTTP_Status_Code):
+ Removed an extraneous const * from the definition of instance().
+ Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
+
+Wed Apr 23 03:15:11 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * apps/JAWS/server/README: Updated to add some clarity and more
+ useful information.
+
+Tue Apr 22 20:17:00 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Synch.cpp: Added a new method called open() to ACE_File_Lock
+ so that we don't have to initialize it solely in the
+ constructor.
+
+ * tests/Process_Strategy_Test.cpp: Added new test code that
+ exercises the ACE_Process_Strategy, ACE_Thread_Strategy, and
+ ACE_Reactive_Strategy classes.
+
+ * ace/Strategies_T: Added a new class called
+ ACE_Reactive_Strategy, which inherits from
+ ACE_Concurrency_Strategy and registers new Svc_Handlers with the
+ Reactor.
+
+ * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added a check for
+ failed open() methods and call ACE_ERROR.
+
+ * tests/Map_Manager_Test.cpp: Added a template specialization for
+ the ACE_Hash_Map_Manager::hash() method, which is enabled if the
+ compiler supports template specializations.
+
+ * ace/Hash_Map_Manager.h (pool): Moved the ext_id.hash() call into
+ a separate method so that we can perform template specialization
+ of it more easily.
+
+ * ace/README: Added a new #define called
+ ACE_HAS_TEMPLATE_SPECIALIZATION so that we can work around funky
+ compilers that don't support this advanced template feature.
+
+ * ace: Added Nanbor Wang's port to FreeBSD. The port is done
+ at FreeBSD 3.0-current as of 2/9/97, which is the
+ latest stable system before Lite2 merge. Since the merge is
+ current under testing and changes are introduced in a daily
+ basis, I don't recommend using -current after the date. You
+ can specified the date in your "supfile", run CVSup to get the entire
+ source tree and do a 'make world' to update (or reverse) your
+ system.
+
+ Pthread library is provided by John Birrell. There is a
+ bug fix at mid April so you may want to CVSup the latest libc_r
+ library and re-make the pthreaded library.
+
+ A shared library must be name as lib<name>.so.<version
+ number> (e.g. libACE.4.1.0). I would recommend adding a
+ post-compile hook in the Makefile so we FreeBSDers can
+ rename the shared library to it's proper name with correct
+ major and minor version number attached. (which is a trick
+ BSD library makefiles use.)
+
+ * examples/OS/Process/process.cpp (main): Replaced the use of
+ "/bin/cat" with "cat" since we are now using execvp(). Thanks
+ to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+ * ace/Process.cpp (start): Changed the use of execv() to execvp()
+ in order to avoid having to pass in the full pathname.
+
+ * ace/OS.i (sigwait): Added an #ifdef for FreeBSD so that we
+ return ACE_NOTSUP_RETURN(-1) for ACE_OS::sigwait(). Thanks to
+ Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
+
+Tue Apr 22 17:46:30 1997 <harrison@samba.cs.wustl.edu>
+
+ * Process.cpp (start): We must pass in 0 instead of "" to
+ CreateProcess for the current working directory.
+
+Tue Apr 22 01:38:14 1997 <irfan@TWOSTEP>
+
+ * ace/Timer_Queue: Added ACE_Upcall_Strategy as a parameter to the
+ constructor. <expire> will call <upcall_strategy->upcall> if
+ <upcall_strategy> is not 0. Else it will call <handle_timeout>
+ on the <Event_Handler>. Thus ACE_Upcall_Strategy becomes a
+ vehicle for extending the behavior of ACE_Timer_Queue wrt the
+ upcall (callback) *without subclassing*. Hence, it's an example
+ of the Bridge/Strategy patterns.
+
+ This also affected ACE_Timer_List and ACE_Timer_Heap
+
+ * ace/Strategies: Added ACE_Upcall_Strategy.
+
+ * ace/Proactor: Added timing support to the <handle_event> calls.
+
+ * ace/Asynch_IO: ACE_Handler now supports handle_timeout.
+
+ * ace/Proactor: Added timer support for the new Proactor. This
+ new scheme allows any of the threads in the "thread pool"
+ waiting on the completion port of the Proactor to execute the
+ callback routine of the handler.
+
+ The implementation included adding ACE_Proactor_Timer_Handler
+ class that has a thread that will wait on the earliest time in a
+ timer queue and an event. When a timer expires, the thread will
+ post a completion event on the port and go back to waiting on
+ the timer queue and event. If the event is signaled, the thread
+ will refresh the time it is currently waiting on (in case the
+ earliest time has changed).
+
+ The ACE_Proactor::Asynch_Timer class is posted to the completion
+ port when a timer expires. When the <complete> method of this
+ object is called, the <handler>'s handle_timeout method will be
+ called.
+
+ * examples/Reactor/Proactor/test_timeout: This example illustrates
+ the new timer features in the Proactor
+
+ * examples/Reactor/Proactor/test_proactor.{mdp,mak}: Added new
+ example.
+
+Mon Apr 21 18:14:32 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/config-win32-common.h: Added checks around _AFXDLL before
+ defining it. Thanks to Bruce Meyer <bmeyer1@gte.net> for
+ pointing this out.
+
+Mon Apr 21 11:31:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
+ Removed some unnecessary explicit template instantiations.
+
+ * examples/Threads/barrier1.cpp (main): Explicitly converted
+ n_threads to int.
+
+Sun Apr 20 23:08:37 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/{Local,Remote}_Tokens.h: Added a private declarations of the
+ copy constructor and assignment operator for classes that
+ inherit from ACE_TSS. This is necessary since the compiler will
+ auto generate these two operations that will end up using the
+ non-existent copy constructor and assignment operator from the
+ TSS class and cause linker errors.
+
+Sun Apr 20 20:47:34 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
+
+ * apps/JAWS/client: Reworked the ACE_Blob* classes to work
+ with the new Connector behavior. Added README for this
+ directory. Added comments.
+
+ * apps/JAWS/stress-testing: Added README file
+
+Sun Apr 20 13:11:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * apps/Makefile: By default, we now compile JAWS along with the
+ rest of ACE. I've also added some README files that explain
+ what JAWS is all about.
+
+ * examples/Service_Configurator/Misc/Timer_Service: Improved the
+ Timer_Service test so that it makes more sense and is better
+ documented.
+
+Sat Apr 19 11:56:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * include/makeinclude: Removed the platform_irix6.2_sgiCC.GNU
+ from the release. Thanks to Torbjorn Lindgren
+ <tl@funcom.no> for these fixes.
+
+ * include/makeinclude/platform_irix6.2_sgic++.GNU: Updated the SGI
+ C++ platform config file. Thanks to Torbjorn Lindgren
+ <tl@funcom.no> for these fixes.
+
+ * ace/Log_Msg.cpp (log_hexdump): The char * arguments should be
+ const char *'s. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for reporting this.
+
+Sat Apr 19 18:52:44 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * (format_hexdump): changed type of first arg to const char *
+ for compatibility with Log_Msg::log_hexdump ().
+
+Thu Apr 17 08:25:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Memory_Pool.h: Fixed a couple of typos in Memory_Pool
+ classes. Thanks to Neil B. Cohen <nbc@metsci.com> for reporting
+ this.
+
+ * netsvcs/lib/Name_Handler.h: Arrgh, there was still one more
+ missing #include that I forgot to move into the *.h file.
+ Thanks to David Levine for noticing this.
+
+ * ace/Synch.cpp (wait): There was a bug in
+ ACE_Condition::wait(MUTEX& mutex, const ACE_Time_Value
+ *abstime.) Basically when abstime is zero, it ignores the
+ parameter "mutex" that has been passed to it and instead goes on
+ to call "ACE_Condition<MUTEX>::wait()" which uses "this->mutex_"
+ as the mutex to be released and not the mutex that the caller
+ has given. The fix is to change the call "this->wait()" in the
+ if-clause to:
+
+ return ACE_OS::cond_wait (&this->cond_, &mutex_.lock_);
+
+ Thanks to Ashish Singhai <Ashish.Singhai@ACM.ORG> for reporting
+ this.
+
+Thu Apr 17 16:33:21 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Memory_Pool.cpp: fixed typos in ACE_MMAP_Memory_Pool_Options
+ constructor declaration and initializer list. In init_acquire,
+ added cast of minimum_bytes_ to size_t to avoid signed/unsigned
+ comparison.
+
+ * include/makeinclude/{platform*,wrapper_macros}.GNU:
+ moved -g out of wrapper_macros.GNU and into each platform
+ file so that -gstabs can be used on SCO. Thanks to
+ Ganesh Pai <gpai@voicetek.com> for reporting that problem.
+
+ (The real change was getting rid of the CFLAGS += DCFLAGS
+ default. We could have left DCFLAGS=-g in wrapper_macros.GNU
+ and overridden for SCO. But the way I changed things, the
+ C/CFLAGS pieces are together in each platform file, so they're
+ easier to find.)
+
+Wed Apr 16 17:05:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Memory_Pool.cpp (acquire): Added code to enable a minimum
+ bytes field with the Shared_Memory_Pool. Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> for these enhancements.
+
+ * tests/Process_Strategy_Test.cpp: Only compile this test if
+ ACE_LACKS_EXEC is *not* defined since ACE_Process_Strategy
+ requires fork(). Thanks to Irfan for pointing this out!
+
+ * netsvcs/lib: Fixed a couple o' typos that had escaped detection
+ last night. Thanks to David Levine for reporting this.
+
+ * ace/Synch[_T].h: removed the use of {} rather than ; for
+ the private copy constructors and assignment operators.
+ Hopefully this won't break code on older C++ compilers. Thanks
+ to Berni Merkle <merkle@io.freinet.de> for suggesting this.
+
+ * Added a whole slew of minor fixes for unused variables in
+ the tests and examples. Thanks to Torbjorn Lindgren
+ <tl@funcom.no> for reporing these.
+
+ * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): The order of
+ the clause
+
+ this->handles_.mask_.fds_bits[this->index_] == 0
+ && this->num_ < ACE_Handle_Set::MAXSIZE
+
+ was backwards. It should be:
+
+ this->index_ < ACE_Handle_Set::NUM_WORDS
+ && this->handles_.mask_.fds_bits[this->index_] == 0
+
+ Thanks to Michael Newton <michaeln@in.ot.com.au> for
+ reporting this.
+
+Wed Apr 16 21:34:53 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Process_Strategy_Test.cpp: added template specializations.
+
+Wed Apr 16 15:46:58 1997 <irfan@TWOSTEP>
+
+ * tests/Process_Strategy_Test: Added test to batch files and
+ MSVC++ Makefiles.
+
+ * tests/Process_Strategy_Test.cpp (open): Added UNICODE support.
+
+ * ace/OS.h: Added SIGCHLD to Win32 section.
+
+ * ace/config-win32-common.h: UNICODE should not be automatically
+ defined if ACE_HAS_UNICODE is defined. ACE_HAS_UNICODE signifies
+ that the OS has UNICODE support. It does not mean that your code
+ must be UNICODE. UNICODE must be defined at the project level.
+
+Wed Apr 16 16:55:47 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/SString.{h,cpp}: Modified CString to not allocate 1 byte for
+ a 0 length string. Instead, set the internal representation to
+ the address of static class character null_string_.
+
+Wed Apr 16 11:47:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/Map_Manager.cpp (free_search_structure): Added the loop
+ variable back in that must have been inadvertently deleted in the
+ previous entry.
+
+Wed Apr 16 09:35:39 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Map_Manager.cpp (free_search_structure): changed type of
+ loop index to size_t to avoid signed/unsigned mismatch.
+
+Wed Apr 16 04:07:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Strategies_T: Widened the constructor interface for
+ ACE_Process_Strategy based on the feedback I got from
+ implementing the Process_Strategy_Test.cpp program.
+
+ * tests/Process_Strategy_Test.cpp: Added an interesting new test
+ that illustrates the use of the ACE_Process_Strategy and the
+ ACE_File_Lock. To exercise this program, you can telnet to it
+ and type "read" and "inc" to query and change the count of
+ the numbers in the file, respectively.
+
+ * ace/Connector.cpp (create_AST): I fixed a couple of things
+ in Connector.cpp:
+
+ - In create_AST, it needs to save and restore errno, else it
+ gets wiped on Win32 and other platforms.
+
+ - On Win32 when a non-blocking connect completes and handle_output is
+ called, it tries to get the peer address. If done too quickly, it
+ fails. I put in a Sleep(0) call. I think this is not a great
+ solution, but I don't have a better one yet.
+
+ Thanks to Steve Huston <shuston@riverace.com> for fixing
+ these bugs.
+
+Tue Apr 15 17:09:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/SOCK_Stream.cpp (close): Removed the call to close_writer()
+ on UNIX since that doesn't do the correct thing in many
+ cases since it causes a protocol transmission which isn't
+ what we want if we're using fork().
+
+ * ace/Strategies_T.cpp (activate_svc_handler): Added a call to
+ svc_handler->destroy() in the parent since we don't need it and
+ we're leaking descriptors and memory otherwise... Thanks to
+ Kevin Boyle <kboyle@sanwafp.com> for reporting this.
+
+ * ace/OS.i (thr_sigsetmask): Replaced the use of
+ PTHREADS_1003_DOT_1C with ACE_HAS_PTHREAD_SIGMASK. Thanks to
+ Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
+
+ * ace: Changed all uses of ACE_HAS_PTHREADS_XAVIER to
+ ACE_HAS_PTHREAD_SIGMASK, which is more descriptive. Thanks to
+ Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
+
+ * ace/config-aix-4.2.x.h: Added #define ACE_LACKS_RWLOCK_T to make
+ things compile with AIX 4.2. Thanks to Jeremy Buch
+ <davinci@nortel.ca> for reporting this.
+
+ * ace/XtReactor.cpp (register_handler_i): Added "[]" to delete
+ this->ids_ since it is an array. Thanks to Jean-Marc Strauss
+ <strauss@club-internet.fr> for reporting this.
+
+ * netsvcs/lib: Moved all the class definitions into the *.h files
+ to avoid complaints from the IBM C++ compiler.
+
+ * ace/OS.h: Added a #define for WNOHANG since this is missing on
+ NT. Thanks to Brian Mendel <bmendel@mdc.com> for reporting
+ this.
+
+ * examples/Connection/non_blocking/test_sock_connector.cpp: Added
+ a typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * examples/Connection/non_blocking/test_tli_connector.cpp: Added a
+ typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * examples/Connection/misc/test_upipe.cpp: Added a typedef for
+ ACE_RW_Mutex so that the code compiles on non-MT platforms.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * performance-tests/Synch-Benchmarks/Options.cpp: Added a #ifdef
+ for ACE_Thread_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added a
+ typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: Added a
+ typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * examples/ASX/Event_Server/Event_Server/Options.cpp
+ (print_results): Although rusage struct is defined on SCO, there
+ is no getrusage(), rusage is used only by wait()
+ etc. internally. Therefore, we had to move some #ifdefs around.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added a
+ typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * tests/Conn_Test.cpp: Added a typedef for ACE_RW_Mutex so that
+ the code compiles on non-MT platforms. Thanks to Ganesh Pai
+ <gpai@voicetek.com> for reporting this.
+
+ * tests/SPIPE_Test.cpp (main): Removed the VXWORKS arm of the
+ #ifdef, which is not correct since this stuff only works if
+ we're working with a version of VxWorks that has STREAM pipes.
+
+ * include/makeinclude/platform_sco5.0.0-nothread.GNU: Changed
+
+ LIBS = -lsocket -lnsl -ldl
+
+ to
+
+ LIBS += -lsocket -lnsl -ldl
+
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * netsvcs/lib/Client_Logging_Handler.cpp: Added a typedef for
+ ACE_RW_Mutex so that the code compiles on non-MT platforms.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp: Added a typedef for
+ ACE_RW_Mutex so that the code compiles on non-MT platforms.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added a
+ typedef for ACE_RW_Mutex so that the code compiles on non-MT
+ platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+Tue Apr 15 23:16:43 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/[Hash_]Map_Manager.cpp: The [Hash_]Map_Manager now
+ explicitly calls the destructors of Map_Entry objects before
+ freeing up the space. Not sure why we were not doing this
+ before...
+
+Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * examples/Logger: Added MSVC++ makefile to Acceptor-server
+ and client.
+
+Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * apps/JAWS/server/IO.cpp: Added a template instance for
+ ACE_Singleton so it would link using GCC. Removed GCC
+ warnings.
+
+ * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
+ LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task, ACE_Message_Queue,
+ ACE_Module so it would link using GCC. Removed GCC warnings.
+
+ * apps/JAWS/server/HTTP_Server_T.cpp: Removed template instance of
+ LOCK_SOCK_Acceptor, since it was not really being compiled.
+
+Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
+
+ * apps/JAWS/server/IO.cpp: Added a template instance for
+ ACE_Singleton so it would link using GCC. Removed GCC
+ warnings.
+
+ * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
+ LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task,
+ ACE_Message_Queue, ACE_Module so it would link using GCC.
+ Removed GCC warnings.
+
+ * apps/JAWS/server/HTTP_Server_T.cpp: Removed template
+ instance of LOCK_SOCK_Acceptor, since it was not really
+ being compiled.
+
+ * apps/JAWS/server/HTTP_Handler.cpp: Removed GCC warnings.
+
+Tue Apr 15 13:01:13 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Token_Request_Reply.cpp (ctor): added initialization of
+ transfer_.data_ to avoid unitialized memory read.
+
+ * tests/test_config.h: removed "static" qualifier from
+ randomize () to avoid warning from g++ when it's not called
+ in a test.
+
+ * examples/IPC_SAP/SPIPE_SAP/server.cpp (main): moved
+ declaration of local variable "handle" up before its first
+ use.
+
+Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * examples/Connection/blocking/Makefile: Removed the Makefile
+ for this test. This example is only suppose to work on WIN32
+ and therefore the Makefile is not necessary. I have replace
+ this file with a MSVC++ make file.
+
+Mon Apr 14 23:08:27 1997 <irfan@TWOSTEP>
+
+ * INSTALL: Updated install files for Win32.
+
+ * ace/SPIPE_Stream: Changed the use of ACE::send_n to ACE::write_n
+ and ACE::recv_n to ACE::read_n.
+
+ * ace/OS.h (WNOHANG): Added WNOHANG to OS.h for Win32.
+
+ * ace/OS.i (getpgid): Fixed extra return.
+
+ * examples/Connection/blocking/SPIPE-acceptor: Updated the code to
+ use the new Proactor and the new asynchronous IO.
+
+Mon Apr 14 21:32:24 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
+ ACE_OS::sprintf instead of sprintf.
+
+ * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
+ (svc): declare "t" as time_t instead of long.
+
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ reporting both of these.
+
+Mon Apr 14 00:02:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.i (getpgid): Removed the extraneous return in front of
+ ACE_NOTSUP_RETURN. Thanks to Mike Bernat <sagmb@sagus.com> for
+ reporting this.
+
+ * ace/Process.cpp: Replaced the use of ACE_OS::fork(void) with
+ ACE_OS::fork(const char *) so that we can pass in the name of
+ the process we're exec'ing.
+
+ * examples/Threads/process_manager.cpp: Added a test program that
+ exercises the features of the new ACE_Process_Manager.
+
+ * ace/Process_Manager: Finished a rudimentary implementation of
+ ACE_Process_Manager. There's still plenty of work to be done on
+ this, however...
+
+ * ace/Thread_Manager.cpp (dump): Added dump() methods for
+ ACE_Thread_Descriptor and ACE_Thread_Manager.
+
+Sun Apr 13 11:40:26 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS: Added a getpgid() call to ACE_OS.
+
+ * ace/Thread_Manager: Changed the 'int n' of spawn_n() to size_t n
+ since this is more appropriate because we can't spawn a negative
+ number of threads...
+
+ * ace/Thread_Manager.cpp (close): Make sure to lock the calls to
+ close() in case things get amiss.
+
+ * ace/Process.cpp (start): Updated ACE_Process::start() to that it
+ doesn't try to exec() a program if argv == 0. This allows us to
+ use ACE_Process to fork() a process without exec'ing.
+
+ * tests/Timer_Queue_Test.cpp (randomize_array): Added a new
+ "randomization" test that determines the performance of randomly
+ canceling items in the array. Thanks to Darrell Brunsch
+ <brunsch@cs.wustl.edu> for this enhancement.
+
+ * tests/test_config.h: Moved the randomize() function from
+ Naming_Test.cpp to test_config.h so that we can use it in other
+ tests (e.g., the new Timer_Queue_Test.cpp that Darrell is
+ working on).
+
+ * ace/OS: Added a new #define called ACE_HAS_NONCONST_MSGSND which
+ can be used for platforms (e.g., SCO) that don't have a const
+ parameter for msgsend(). Thanks to Arturo Montes
+ <mitosys@colomsat.net.co> for reporting this.
+
+ * ace/config-sco-5.0.0-mit-pthread.h: Added some fixes to make
+ this work on SCO. Thanks to Arturo Montes
+ <mitosys@colomsat.net.co> for reporting this.
+
+ * ace/OS.i (cond_timedwait): There is a *small* chance for a
+ context switch before ACE_OS::cond_timedwait() is reached. In
+ this case, the current time *may* advance by some milliseconds.
+ The code in ACE_OS::cond_timedwait() then converts the given
+ absolute time to a relative time. In the described situation
+ this will be a very, very long t ime (0xfffffffn). Therefore, I
+ added a check to avoid the "negative timespan" case. Thanks to
+ Matthias Kerkhoff <make@cs.tu-berlin.de> for suggesting this.
+
+ * ace/Set: Moved all the size() methods out of the *.i file and
+ into the *.cpp file to avoid problems with quirky compilers
+ (e.g., SGI) that can't handle this. Thanks to Torbjorn Lindgren
+ <tl@funcom.no> for pointing this out.
+
+ * examples/Threads/process_semaphore.cpp (main): Removed a stray
+ ^M that was causing the SGI C++ compiler some grief. Thanks to
+ Torbjorn Lindgren <tl@funcom.no> for pointing this out.
+
+ * ace/OS.i (gettimeofday): Rearranged the code a bit to return
+ errors correctly if they occur (which should be *very*
+ unlikely). Thanks to Torbjorn Lindgren <tl@funcom.no> for
+ pointing this out.
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: Replaced the use of
+ ACE_TLI* with LOGGING_PEER*. Thanks to Tom Wright
+ <twright@gem-net.demon.co.uk> for reporting this.
+
+ * ace/Connector.cpp: Made sure to initialize all of the instance
+ variables for the ACE_Strategy_Connector and ACE_Connector.
+ Thanks to David Levine for pointing this out.
+
+ * ace/Synch.h: Changed protected: to private: so that we can
+ ensure that we never copy classes like ACE_File_Lock, etc.
+ Thanks to Berni Merkle <merkle@io.freinet.de> for reporting
+ this.
+
+ * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Added
+ the print_stats() call back into the test since Sandro's fixes
+ should now support this.
+
+ * ace/Malloc[_T]: Added patches to enable ACE_Allocator's to print
+ malloc statistics. Thanks to Sandro Doro
+ <alex@aureus.sublink.org> for these fixes.
+
+Sat Apr 12 20:42:11 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Priority_Task_Test.cpp (open): only use THR_SCHED_FIFO
+ if it is defined. (It isn't on Solaris without PTHREADS.)
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
+ (make_svc_handler): added return statement.
+
+Sat Apr 12 11:53:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/ASX/Event_Server/Transceiver/transceiver.cpp (main):
+ The first argument to connect () is now a SVC_HANDLER *&.
+ Therefore, we can no longer allows us to pass the address of a
+ SVC_HANDLER on the stack (or in the data segment).
+ Fortunately, the fix is easy, as shown below:
+
+ Event_Transceiver transceiver, *tp = &transceiver;
+
+ connector.connect (tp, ACE_INET_Addr (port_number, host_name));
+
+ Thanks to David Levine for reporting this problem.
+
+Fri Apr 11 15:14:59 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Conn_Test.cpp: moved declaration of "result" out of
+ loop because it's used after the loop. Thanks to
+ Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ reporting this. Also, removed a few unnecessary template
+ specializations.
+
+ * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: fixed template
+ specializations for no-thread platforms. Thanks to Ganesh Pai
+ <gpai@voicetek.com> for reporting this.
+
+ * performance-tests/Misc/context_switch_time.cpp (main):
+ removed call to ACE_High_Res_Timer::supported ().
+
+Fri Apr 11 14:31:42 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * tests/Conn_Test.cpp: Added several explicit template
+ instantiations.
+
+Fri Apr 11 13:49:04 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: VxWorks changes only: added taskHookLib.h. Thanks
+ to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
+ that. Also rearranged the VxWorks #includes and such a bit.
+
+ * ace/Log_Msg.cpp (atexit): VxWorks changes only: added cast
+ of spare1 to ACE_Log_Msg *. Thanks to Dave Mayerhoefer
+ <mayerhoefer@svappl36.mdc.com> for reporting that. Also,
+ in exists () and instance (), replaced double indirection
+ of the ACE_Log_Msg instance with indirection through a pointer
+ reference.
+
+ * ace/High_Res_Timer.{h,i}: removed supported () because
+ ACE_OS::gettimeofday () is used if a high-res timer isn't available.
+
+ * ace/OS.i (thr_sigsetmask),config-sunos5.4-*.h: swapped order of
+ #ifdefs to that ACE_LACKS_PTHREAD_THR_SIGSETMASK is checked before
+ ACE_HAS_STHREADS. Added that #define to all SunOS 5.4 configs.
+ Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
+
+ * ace/Token_Request_Reply.cpp (ctor): added a initializations to 0
+ of requeue_position_, notify_, and arg_. With this change, all
+ of the ACE tests run without any Purify access anomalies!
+ (There are still some memory leaks, though.)
+
+ * include/makeinclude/rules.local.GNU: added -DMAKEDEPEND to
+ invocation of g++dep. This allows users to get proper
+ dependencies if they have conditional #includes in their code.
+ They can added #if defined (MAKEDEPEND) as necessary to make
+ sure that all headers are seen by g++dep.
+
+Fri Apr 11 10:46:56 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * config-linux*.h: Added ACE_HAS_IP_MULTICAST as the default for
+ all Linux configurations. If you're a 1.x user, or you didn't
+ config that into your 2.x kernel, you'll have to remove this from
+ your version of the file.
+
+Thu Apr 10 00:34:10 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * examples/Logger/simple-server/Logging_Acceptor.cpp
+ (handle_input): We need to call svc_handler->close() if accept()
+ or open() fails. Thanks to Ganesh Pai <gpai@voicetek.com> for
+ reporting this.
+
+ * ace/Service_Config.cpp (close): Moved the call to
+ ACE_Service_Config::close_singletons() to outside the check for
+ ACE_Service_Config::svc_rep_ since the Singletons can be used
+ independently of the services. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for suggesting this.
+
+Wed Apr 9 21:11:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons
+ added bugs to my code that were causing segfaults when signals
+ shutdown the gateway. This is now fixed.
+
+ * apps/Gateway/Gateway/Proxy_Handler.h: Changed ACE_Event_Channel
+ & to ACE_Event_Channel * to keep the compiler happy.
+
+ * examples/Connection/non_blocking/CPP-connector.h: Added a
+ do-nothing default constructor to keep ACE_Connector happy.
+
+ * examples/Connection/misc/test_upipe.cpp: Added a do-nothing
+ default constructor to keep ACE_Connector happy.
+
+ * examples/Connection/blocking/SPIPE-connector.h: Added a
+ do-nothing default constructor to keep ACE_Connector happy.
+
+ * apps/Gateway/Gateway/Proxy_Handler: Added a do-nothing default
+ constructor to keep ACE_Connector happy.
+
+ * netsvcs/lib: Added some default arguments to
+ TS_Clerk_Handler.cpp and Client_Logger_Handler.cpp to keep the
+ compiler from complaining about the new ACE_Connector features.
+ Thanks to David Levine for reporting this.
+
+ * ace/Timer_Heap.cpp (reheap_down): Fixed a *very* subtle bug in
+ reheap_down() where parent was starting off at 0 whereas it
+ should have been starting off at child_index / 2.
+
+ * examples/Logger/simple-server/Logging_Handler: Removed the use
+ of the operator ACE_SOCK_Stream &() and replaced it with the
+ more intuitive peer() approach used in ACE_Svc_Handler et al.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
+
+ * ace: Added a bunch of changes to improve ACE support on SCO 5.0.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for these fixes.
+
+ * tests/Conn_Test.cpp: Completely reworked this test so that it
+ illustrates how to use the ACE_Strategy_Connector, which is
+ customized with a special Caching_Connect_Strategy that recycles
+ connections.
+
+ * ace/Connector: Finished implementing the new
+ ACE_Strategy_Connector. This is similar in design to the
+ ACE_Strategy_Acceptor.
+
+ * ace: Changed the signature of all the make_svc_handler() methods
+ so that they return int (rather than SVC_HANDLER *) and they
+ pass back a SVC_HANDLER * by reference. This makes it possible
+ to totally control the creation of svc handlers (which is useful
+ for the new ACE_Strategy_Connector).
+
+ * ace/Connector.cpp: Factored out the active_svc_handler() call
+ from the connect_svc_handler() method into the connect() method
+ so that it would behave correctly as a Template Method and
+ Strategy.
+
+ * ace/Connector: Removed the explicit use of the Reactor data
+ member from the ACE_Connector since it's inherited from the
+ ACE_Service_Object.
+
+ * ace/Log_Msg.cpp: The MVS compiler doesn't like the call to
+ atexit() in ACE_Log_Msg::instance() because atexit() requires an
+ a function pointer of type extern "C" for its parameter. I've
+ fixed this via an adapter. Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for reporting this.
+
+ * ace/Strategies_T: Added a new ACE_Connect_Strategy that
+ complements the ACE_Strategy_Connector in the same manner that
+ the ACE_Accept_Strategy complements the ACE_Strategy_Acceptor.
+
+ * ace/Connector.h: The destructor for ACE_Connector should have
+ been virtual. Now it is.
+
+ * ace/Connector: Added a new factory method called
+ make_svc_handler(). This behaves similiarly to the
+ ACE_Acceptor::make_svc_handler(). However, for the
+ ACE_Connector we only use this when the SVC_HANDLER * is NULL.
+
+ * ace/Connector: Changed the signature for connect() to take a &
+ to a SVC_HANDLER * in anticipation of our new
+ ACE_Strategy_Connector. This new connector will make it easy to
+ implement cached connections.
+
+ * ace/config-win32-common.h: Added a new #include for <mswsock.h>,
+ which contains the declarations for TransmitFile() data
+ structures. They are in WINSOCK.H if you do not use
+ ACE_HAS_WINSOCK2. Thanks to Norbert Rapp
+ <norbert.rapp@nexus-informatics.de> for reporting this.
+
+ * ace/OS.i: Fixed a typo in the new condition variable
+ implementation for Win32. Thanks to Norbert Rapp
+ <norbert.rapp@nexus-informatics.de> for reporting this.
+
+Wed Apr 09 22:06:23 1997 <harrison@samba.cs.wustl.edu>
+
+ * Memory_Pool.h: Modified ACE_MMAP_Memory_Pool and
+ ACE_MMAP_Memory_Pool_Options to include the new guess_on_fault
+ option. This is only for platforms that can not report which
+ address caused a segmentation fault (via signal or exception).
+ When guess_on_fault is set (via ACE_MMAP_Memory_Pool_Options),
+ ACE_MMAP_Memory_Pool::handle_signal calls
+ ACE_MMAP_Memory_Pool::remap "guessing" that the segmentation
+ fault was caused by an access to memory not yet mapped.
+
+Wed Apr 09 16:46:16 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,i}: fixed readPPCTimeBase declaration and return
+ value (for now: it really needs to return a 64 bit quantity).
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting these.
+
+Wed Apr 9 03:12:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/config-win32-common.h: Defining _WIN32_WINNT as 0x0400
+ implies ACE_HAS_WINSOCK2.
+
+ * ace/Asynch_IO: The implementation of ACE_Asynch_Transmit_File
+ and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is
+ defined or you are on WinNT 4.0 or higher. Therefore, added
+ appropriate #defines. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for suggesting this.
+
+Tue Apr 8 22:45:28 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
+
+ * java/src/SOCKStream.java (SOCKStream): Made two small changes to
+ the two send(). Instead of doing a println, I now do a
+ print. This was really a bug!
+
+Tue Apr 08 22:08:12 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed
+ "rm -f $@" from AR command so that archive won't be removed
+ during incremental updates. Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for reporting this.
+
+Tue Apr 8 00:04:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Task_T.cpp: Added a hack to work around the new weird HP/UX
+ aCC template semantics. Thanks to Neil B. Cohen
+ <nbc@metsci.com> for reporting this.
+
+ * ace/config-hpux-10.x[-g++].h: Added #define
+ ACE_HAS_CLOCK_GETTIME. Thanks to Neil B. Cohen <nbc@metsci.com>
+ for reporting this.
+
+ * ace/config-hpux-10.x[-g++].h: Added ACE_HAS_IP_MULTICAST and removed
+ ACE_LACKS_STRRECVFD. Thanks to Neil B. Cohen <nbc@metsci.com>
+ for reporting this.
+
+ * ace/config-hpux-10.x.h: Apparently some HP/UX 10.x C++ compilers
+ don't support volatile, so I #defined it away as a macro.
+ Thanks to Neil B. Cohen <nbc@metsci.com> for reporting this.
+
+ * ace/Log_Msg.cpp: Put a #if defined (ACE_MT_SAFE) around the
+ entire Log_Msg destructor. Thanks to Neil B. Cohen
+ <nbc@metsci.com> for reporting this.
+
+ * ace/config-hpux-10.x[-g++].h: Added #define ACE_HAS_STREAMS on
+ the recommendation of Neil B. Cohen <nbc@metsci.com>.
+
+Mon Apr 07 12:08:21 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/Set.cpp: For some reason, VC++ 5.0 doesn't like to have the
+ constructors X::X(X&) and X::X(X*). We can change the X::X(X*)
+ constructor to take in an extra argument with a default value.
+ This seems to have sufficiently satisfied the VC++ 5.0 for the
+ time being. There were no changes necessary to other Set.cpp
+ code (as the extra argument has a default value).
+
+Mon Apr 07 08:05:03 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-win32.h: enabled ACE_HAS_UNICODE by default.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
+ suggesting this.
+
+ * ace/config-sunos5.4-g++.h: enabled ACE_HAS_BROKEN_RANDR and
+ disabled ACE_HAS_SVR4_SIGNAL_T. Thanks to Joey Zhu
+ <joey.zhu@wcom.com> for reporting these problems and testing
+ the fix.
+
+ * ace/Proactor.h (ACE_Proactor): commented out unused arguments
+ in non-WIN32 version.
+
+Sun Apr 06 22:51:02 1997 <irfan@TWOSTEP>
+
+ * ace/Proactor: Complete rewrite of Proactor that pushes all the
+ differences in asynchronous I/O to the edges of the framework -
+ i.e., into the new Asynch_IO classes. This allows the Proactor
+ to easily support new asynchronous operations.
+
+ Currently, the new Proactor supports minimal functionality. In
+ the future, we will complete this.
+
+ The Proactor is used in conjunction with the new Asynch_IO
+ classes. There is a different class for each operation. Please
+ see Asynch_IO.h for details.
+
+ There is also a new ACE_Asynch_Acceptor that uses AcceptEx.
+
+ Example is in:
+ ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp.
+
+ This example illustrates how the ACE_Proactor can be used to
+ implement an application that does various asynchronous
+ operations.
+
+ * apps/JAWS/server: Complete rewrite of JAWS. The new JAWS has
+ support for Asynch-Thread-Pool (on WIN32), Synch-Thread-Pool,
+ and Thread-per-Request. Different models can be configured using
+ the svc.conf file. The server now supports both GET and PUT
+ commands.
+
+ The HTTP_Handler class is a state based implementation of the
+ HTTP protocol. Therefore, it can be used synchronously and
+ asynchronously. It uses an abstract IO class to move between
+ different HTTP protocol states. It is up to the IO class to
+ decide on synchronous or asynchronous I/O.
+
+ * apps/JAWS/client: This is an example of the implementation of
+ BlobStreaming in ACE. This version of BlobStreaming uses HTTP as
+ a transport protocol.
+
+ Blobby :-) is a simple application written using the ACE_Blob
+ class, which is capable of doing both file uploads and
+ downloads. If a file is downloaded, the downloaded data is sent
+ to standard output, so that it can be piped as necessary.
+
+ * ace/Mem_Map.cpp (map_it): This method now uses ACE_OS::pwrite
+ (if ACE_HAD_P_READ_WRITE is defined) instead of
+ ACE_OS::lseek/ACE_OS::write to write the end-of-file byte. The
+ old scheme does not work if the file is in OVERLAPPED mode.
+
+ * ace/OS: Added pread and pwrite to the OS class (if
+ ACE_HAD_P_READ_WRITE is defined). On Win32, these functions use
+ the OVERLAPPED structure to specify the offset. This
+ implementation will block until the write/read completes (even
+ if the file is in OVERLAPPED mode).
+
+ * ace/config: Added ACE_HAS_P_READ_WRITE to the following
+ platforms that support pread() and pwrite() calls:
+ config-sunos4-g++.h
+ config-sunos4-lucid3.2.h
+ config-sunos4-sun3.x.h
+ config-sunos4-sun4.1.4.h
+ config-sunos4-sun4.x-orbix.h
+ config-sunos4-sun4.x.h
+ config-sunos5.4-centerline-2.x.h
+ config-sunos5.4-g++.h
+ config-sunos5.4-sunc++-4.x-orbix.h
+ config-sunos5.4-sunc++-4.x.h
+ config-sunos5.5-g++.h
+ config-sunos5.5-sunc++-4.1.h
+ config-sunos5.5-sunc++-4.x-orbix.h
+ config-sunos5.5-sunc++-4.x.h
+ config-sunx86-sunc++-4.x.h
+ config-win32-common.h
+
+Sun Apr 6 14:16:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * tests/Timer_Queue_Test.cpp: Added tests to make sure that the
+ new ACE_Timer_Queue::cancel() logic is working correctly. So
+ far, it seems to be fine.
+
+ * ace/Timer_{Heap,List}.cpp (cancel): Changed the comparison for
+ dont_call_handle_close to be correct.
+
+ * ace/OS.cpp: Deleted a useless return. Thanks to Gonzalo
+ A. Diethelm <gonzo@ing.puc.cl> for reporting this.
+
+ * ace/config-irix6.2-sgic++.h: Added the following definitions:
+
+ + ACE_LACKS_PTHREAD_THR_SIGSETMASK
+ + ACE_HAS_PTHREAD_EQUAL
+ + ACE_HAS_PTHREAD_T
+ + ACE_HAS_SYSENT_H
+ + ACE_HAS_SYSINFO
+ + ACE_HAS_TEMPLATE_TYPEDEFS
+
+ Deleted the following definitions:
+
+ + #define ACE_HAS_SYS_SIGLIST (Irix's compiler only has a
+ _sys_siglist array when compiling their own internal
+ functions).
+
+ Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for this.
+
+ * ace/Process: Added new support for setting the environment
+ variable and the current working directory. Thanks to Gonzalo
+ A. Diethelm <gonzo@ing.puc.cl> for this enhancement.
+
+ * ace/OS.h: "sys/stat.h" was being included more than once, so I
+ fixed this. Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl>
+ for reporting this.
+
+ * ace/XtReactor.cpp: Added the register_handler_i() method, which
+ just delegates to the one defined in the Reactor. This is
+ necessary to adjust to the C++ type system rules. Thanks to
+ Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
+
+ * ace/Service_Config.cpp: Added the Double-Checked Locking
+ Optimization pattern to all the ACE_Service_Config Singletons
+ (e.g., thr_mgr(), reactor(), etc.) so that they behave correctly
+ in multi-threaded programs. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for insisting on this.
+
+ * ace/OS.i (nanosleep): If the nanosleep() system call isn't
+ supported by the OS platform we'll just use ACE_OS::sleep(const
+ ACE_Time_Value &) instead.
+
+ * ace/Log_Msg.cpp: Changed the logic of
+ ACE_Log_Msg_Manager::remove() so that it returns the number of
+ remaining registered instances. When this goes to 0 we'll
+ cleanup.
+
+ * ace/OS.i: Enhanced the ACE_OS::cond_[timed_]wait() methods so
+ that they use SignalObjectAndWait() whenever possible to avoid
+ potential problems with unfairness. See
+ http://www.cs.wustl.edu/~schmidt/editorial-15.html for more
+ details. Thanks to David Holmes <ltdholmes@mri.mq.edu.au> for
+ pointing out this subtlety.
+
+Sun Apr 06 20:01:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/wrapper_macros.GNU: added "purify" and
+ "quantify" make command options. To build Purified versions
+ of all executables in the current direction, for example:
+
+ % make clean; make purify=1
+
+ These options assume that purify or quantify are in your PATH.
+
+ * ace/Task.{h,cpp}: removed ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
+ from ACE_Task_Exit declaration and ACE_Task_Exit::instance ().
+ ACE_Task_Exit is no longer a template class, so we don't need that.
+
+ * ace/Task_T.h: added missing "*/" at end of comment after #endif.
+
+ * tests/IOStream.cpp (server): added check for 0 strlen of
+ "buf" to avoid out-of-bound array reference.
+
+ * ace/Svc_Conf_l.cpp, Makefile: added #define ACE_BUILD_DLL.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
+ reporting this.
+
+ * ace/Set.cpp(ACE_Set_Node ctor): commented out unused arg MS_SUCKS.
+
+Sat Apr 5 14:21:29 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
+
+ * java/: Changed package name from ACE to JACE across all directories.
+
+Sat Apr 5 13:12:37 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests/MM_Shared_Memory_Test.cpp: Removed the use of dynamic
+ memory allocation to avoid memory leaks.
+
+ * ace/Service_Config: Changed _defaults to _static_svcs since this
+ more accurately reflects what they do.
+
+ * examples/Shared_Malloc/test_malloc.cpp: Removed the
+ print_stats() call since it doesn't work via this API. Thanks
+ to Sandro Doro <alex@aureus.sublink.org> for reporting this.
+
+ * ACE-install.sh: Tweeked the install script by changing the
+ "gunzip; tar; gzip" sequence into "gunzip -c | tar xvf -" to
+ speed it up a little. Thanks to Per Andersson
+ <Per.Andersson@hfera.ericsson.se> for this fix.
+
+ * examples/Threads/future1.cpp: Make sure to delete the char *name
+ that is retrieved from the future in order to avoid a memory
+ leak. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
+ figuring this out.
+
+ * examples/Threads/future1.cpp: Make sure to delete this->name_ in
+ the Scheduler destructor to avoid a memory leak.
+
+ * examples/Threads/task_four.cpp (close): Enhanced the close()
+ method so that it will actually delete the memory for the
+ Worker_Task.
+
+ * ace/XtReactor.cpp (register_handler_i): Added the
+
+ if (mask & ACE_Event_Handler::ACCEPT_MASK)
+ ACE_SET_BITS (condition, XtInputReadMask);
+
+ Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
+ reporting this.
+
+ * ace/Timer_Queue.cpp (expire): This is the only method that calls
+ ACE_Timer_Queue::cancel() with dont_call_handle_close set to 0.
+
+ * ace/Reactor: Modified the cancel_timer() methods so that they
+ also take a dont_call_handle_close parameter and pass it on to
+ the Timer_Queue::cancel() method.
+
+ * ace/Timer_{List,Heap}.cpp: Modified all the cancel() methods so
+ that they will not call handle_close() unless the new parameter
+ dont_call_handle_close is 0 (it is 1 by default). This will
+ avoid nasty problems with recursion. Thanks to Paul Han
+ <phan@CCGATE.HAC.COM> for suggesting this.
+
+ * ace/Timer_{List,Heap}.cpp (schedule): If a user tried to
+ schedule a NULL ACE_Event_Handler then we return -1 with errno
+ set to EINVAL.
+
+ * ace/Message_Block.cpp: Somehow the file got screwed up and was
+ reverted back to an earlier incarnation where we didn't use
+ ACE_Service_Config::alloc()... Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for figuring this out.
+
+Sat Apr 5 19:11:46 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
+
+ * ace/Signal.i (ACE_Sig_Guard): Changed the constructor of
+ ACE_Sig_Guard so that it doesn't call ACE_OS::sigprocmask for
+ Win32. This keeps errno from being set to ENOSYS at random
+ times.
+
+Sat Apr 05 17:27:02 1997 <irfan@TWOSTEP>
+
+ * Registry.cpp (resolve): Type and size of the object is only set
+ if RegQueryValueEx() returns success. Thanks to Alan
+ (Alan_Cabrera@fp.cibc.com) for reporting this.
+
+Sat Apr 05 13:11:04 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Log_Msg.cpp (instance): Added another ACE_NO_HEAP_CHECK.
+ Matthias provided the fix.
+
+ * ace/config-win32.h: Disable ACE_HAS_STRICT by default, because
+ it will break existing application code.
+
+ * ace/OS.{h,cpp},Log_Msg.{h,cpp}: fixes from Matthias Kerkhoff
+ <make@cs.tu-berlin.de> to avoid memory-leak reports when MFC
+ or (the CrtHeapXXX()-functions of the Win32 runtime library)
+ are used.
+
+ The problem is, that MFC (and so may other Win32 applications
+ do) allocates a thread specific storage slot for each running
+ thread which contains various control and debug informations.
+ Part of this information is an object, which when constructed
+ makes a snapshop of the heap. When this object is destroyed,
+ the snapshot is compared to the actual heap. All object still
+ existing on the heap are reported as memory leaks (which
+ is in most situations correct). Because the object is deleted
+ when the thread (or programs main) is left and this happens
+ before atexit is called, some leak reports are false (because,
+ e.g., all these ACE_Log_Msg's will be deleted in atexit).
+
+ The fix for ACE_Log_Msg consists of three changes (two only
+ relevant for Win32, one relevant for all platforms.)
+ Description of changes:
+
+ a) Introduced a new macro ACE_NO_HEAP_CHECK, which turns
+ off the built in heap checking until the current code block
+ is left. (defined for all platforms, but only does something
+ for Win32). This changes os.h and config-win32-common.h.
+
+ b) Added a static member function to ACE_Log_Msg. The function
+ (exists) returns 0 if the calling thread don't have an ACE_Log_Msg
+ and non-null if an ACE_Log_Msg exists. This changes Log_Msg.h
+ and Log_Msg.cpp.
+
+ c) Changed ACE_Thread_Adapter in a way that creating a new
+ thread does not automatically create an ACE_Log_Msg for the
+ calling thread. This happened until now, because the new
+ thread inherited the log settings of the calling thread.
+ This behaviour makes no sense, if the calling thread does
+ not have an ACE_Log_Msg, so i use ACE_Log_Msg::exists() (see
+ above) to prevent the implicit creation of an ACE_Log_Msg
+ for the calling thread.
+
+ Thanks, Matthias!
+
+ * ace/config-win32.h and config-win32-common.h: new, consolidated
+ Win32 config files. Thanks, again, Matthias!
+
+ * ace/OS.h (ACE_UNUSED_ARG): determine whether we're building
+ on an Irix platform by looking for ACE_HAS_IRIX_GETTIMEOFDAY
+ instead of ACE_HAS_IRIX62_THREADS.
+
+ * ace/Log_Msg.cpp: VxWorks (only!) change: no longer strdups
+ program_name and local_host to avoid memory leaks. Instead,
+ the addresses of these are copied by ACE_Log_Msg. So, only
+ strings in the text segment should be passed to its functions!
+ Again, this change is for VxWorks only.
+
+ * ace/Sched_Params.cpp: moved memsets of pcinfo so that entire
+ pcinfo structure is zeroed out, to _really_ avoid Purify warnings.
+
+Fri Apr 04 12:28:40 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-mvs.h: removed ACE_HAS_IP_MULTICAST because MVS
+ doesn't define ip_mreq. Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for reporting this.
+
+ * ace/OS.i (mutex_init): fixed the extra braces once and for all.
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting it.
+
+ * ace/OS.i, config-sco-5.0.0*.h: fixed for SCO so that it uses
+ single-argument gettimeofday () prototype, but calls two-arg
+ (SVR4) version in ACE_OS::gettimeofday (). Thanks to Ganesh
+ Ganesh Pai <gpai@voicetek.com> for solving this problem.
+
+ * ace/Log_Msg.{h,cpp}: added ACE_Log_Msg destructor. In
+ instance (), added call to ::atexit () (::taskDeleteHookAdd ()
+ on VxWorks) to register cleanup handler. Each new instance
+ of an ACE_Log_Msg is inserted into an ACE_Unbounded_Set; the
+ cleanup handler iterates over the Set and deletes the
+ ACE_Log_Msgs at program exit.
+
+ Also, the two strings that are allocated get cleaned up after
+ the last ACE_Log_Msg instance is deleted. Many thanks to
+ Matthias Kerkhoff <make@cs.tu-berlin.de> for figuring this out
+ and cranking out the code.
+
+ It works differently on VxWorks, because it doesn't have
+ ::atexit (). VxWorks has ::taskDeleteHookAdd (), which is
+ called when each task exits. So, the Set isn't used. Instead,
+ the cleanup hook is called for each task when it exits, passing
+ the task control block (TCB) of the exiting task. A pointer to
+ the ACE_Log_Msg instance is contained in one of the spare fields
+ of the TCB, so the cleanup handler simply deletes it.
+
+ * ace/IOStream.h: specify template parameter (ACE_IOStream<STREAM>)
+ to ACE_OPERATOR{G,P}_SET macros. Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for providing this fix.
+
+Thu Apr 3 22:17:53 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Registry.cpp: Changed STRING_SEPARATOR from Istring to
+ LPCTSTR. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
+ suggesting this.
+
+Thu Apr 3 21:39:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.i (mutex_init): Removed errant open-brace ('{'). Thanks
+ to Chuck Gehr (gehr@sweng.stortek.com) for the fix!
+
+Thu Apr 03 08:52:34 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h,OS.cpp,Sched_Params.cpp: added /**/ to some #include
+ directives. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
+ for reporting these.
+
+ * ace/OS.cpp (writev, readv): changed type of local variable "i"
+ from size_t to int to avoid signed/unsigned mismatch. Thanks
+ to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting this.
+
+ * ace/OS.cpp (readv), SOCK_Dgram.cpp (recv): added casts of
+ iov_len and copyn because iov_len is int on some platforms and
+ size_t on others. This avoids compiler (MSVC 4.1) warnings.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting
+ this.
+
+ * include/makeinclude/platform_sco5.0.0-nothread.GNU:
+ updated CCFLAGS and added LD=$(CXX). Thanks to
+ Ganesh Pai <gpai@voicetek.com> for these fixes.
+
+ * ace/OS.h: added #include of <sys/regset.h> for SCO only.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
+
+ * ace/config-sco-5.0.0*.h: added #define ACE_HAS_IP_MULTICAST.
+ Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
+
+ * ace/config-{chorus,linux*,sco*}.h: removed #define of
+ ACE_HAS_INLINED_OSCALLS because it's no longer needed in the
+ config files: it's #defined in OS.h if needed.
+
+Thu Apr 3 01:48:01 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/Malloc.i (malloc): ACE_New_Allocator::malloc only calls new
+ if nbytes is > 0. Purify was complaining that 0 bytes were
+ allocated but never deleted. Go figure.
+
+Wed Apr 2 22:24:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.cpp: Moved the ACE_OS::inet_aton() method into the *.cpp
+ file and made it non-inline to work around a bug with HP/UX C++.
+ Thanks to Neil Cohen for this fix.
+
+Wed Apr 02 10:09:37 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos5.5-sunc++-4.1.h: added template specialization
+ with Sun C++ 4.2.
+
+ * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed +w
+ and added comments about Sun C++ 4.2 support.
+
+ * include/makeinclude/platform_chorus.GNU, platform_hpux_gcc.GNU,
+ platform_irix5.{2,3_g++}.GNU, platform_linux{_,pthread}.GNU,
+ platform_m88k.GNU,platform_osf1_4.0_g++.GNU,
+ platform_sco-nothread.GNU,platform_sco5.0.0-*.GNU,
+ platform_sunos{4,5}_g++.GNU, platform_sunos5_x86_g++.GNU,
+ platform_unixware_g++.GNU, platform_vxworks5.2_g++.GNU:
+ added -fno-implicit-templates to CCFLAGS. See INSTALL file
+ for discussion of the g++ option. Also, added -O2 because
+ it dramatically reduces object file sizes.
+
+ * netsvcs/clients/Tokens/manual/manual.cpp: made
+ STDIN_Token::TID typedef public so that template
+ specialization (w/ Sun C++ 4.2) can access it.
+
+Wed Apr 2 10:02:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.h: Added definitions for THREAD- and PROCESS-LEVEL
+ priorities because some implementations define these while
+ others don't. These are now
+ ACE_{THR,PROC}_{FIFO,RR,OTHER}_{MIN,MAX,DEF}. The only really
+ NEW concept is the *_DEF, which is a default value assigned by
+ ACE_OS::thr_create() if one isn't given. Of special note is that
+ we don't redefine a default values if it's already been
+ defined, which allows individual programs to have their
+ own ACE-wide "default".
+
+ * ace/OS.cpp (thr_create): Uses ACE_{THR,PROC}_* macros
+ rather than the PRI_* macros.
+
+ * ace/Sched_Params.cpp (priority_min,priority_max): These now
+ use ACE_{THR,PROC}_* macros to ignore OS-specific priority
+ assignments.
+
+ * ace/config-linux-lxpthreads.h: Removed definitions of
+ PRI_{FIFO,RR,OTHER}_{MIN,MAX}.
+
+ * include/makeinclude/platform_linux*.GNU (CCFLAGS): Added
+ -fno-implicit-templates now that it's supported. This
+ eliminates messages of the sort 'ld: Warning size of
+ <mangled template specialization name> change from xx to yy'
+ when linking libACE.so. Thanks to David Levine for making
+ this possible!
+
+Tue Apr 1 15:27:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * bin/g++dep: Removed the "/bin" prefix so that this won't fail on
+ platforms that don't have sed in /bin. Thanks to Sandro Doro
+ <alex@aureus.sublink.org> for this fix.
+
+Tue Apr 01 09:55:07 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: protected definition of struct flock on VxWorks,
+ because it defines that type in sys/fcntlcom.h. (It doesn't
+ appear to support flock (), though.) Thanks to Dave
+ Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
+
+ * ace/OS.h: define ACE_hrtime_t as u_longlong_t gcc, because
+ its long long types are only 4 bytes long. Its longlong_t
+ types are 8 bytes. Also made ACE_hrtime_t unsigned for
+ other than gcc on Unix platforms.
+
+ * ace/OS.* (gethrtime), config-vxworks-ghs-1.8.h: added support
+ for PowerPC with Green Hills compiler. Thanks to Dave
+ Mayerhoefer <mayerhoefer@svappl36.mdc.com> for providing the
+ readPPCTimeBase assembler routine.
+
+ * ace/config-vxworks*.h: removed #include of vxWorks.h because
+ its no longer necessary with the TimeValue.h merged into OS.h.
+
+ * ace/High_Res_Timer.cpp (elapsed_time): added cast to
+ initialization of nseconds to avoid compiler warning from
+ MSVC 4.1 about narrowing from unsigned __int64.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
+ reporting this.
+
+Mon Mar 31 18:18:35 1997 Carlos O'Ryan <coryan@charlie>
+
+ * ace/config-hpux-10.x-g++.h:
+ It was tuned to HP-UX 10.10 (and further) using g++ 2.7.2 without
+ DCE/Threads.
+
+ * ace/Task_T.cpp:
+ Another iteration on the Module.h file, this time it is not
+ included *only* under HPUX and when using HP/aCC. Still IMHO
+ problems will arise as template sintax checking becomes more
+ popular.
+
+ * ace/Local_Name_Space_T.h:
+ * ace/Local_Name_Space_T.cpp:
+ Replaced MAXNAMELEN with MAXPATHLEN since some platforms
+ (e.g., HP/UX) have a very low value (e.g., 14 bytes) for
+ MAXNAMELEN.
+
+ * ace/config-hpux-10.x-aCC.h:
+ The comment did not make clear what was compiler/platform
+ target. It also included some remarks that only applied to
+ HP/C++.
+
+ * tests/Future_Test.cpp:
+ * tests/Message_Block_Test.cpp:
+ * tests/Thread_Pool_Test.cpp:
+ Will not compile if ACE_HAS_THREADS was not defined and
+ ACE_TEMPLATES_REQUIRE_SPECIALIZATION was: they tried to
+ instantiate templates that were only defined when ACE_HAS_THREADS.
+
+ * ace/config-hpux-10.x-aCC.h:
+ More fine tuning: ACE_HAS_EXCEPTIONS,
+ ACE_LACKS_LINEBUFFERED_STREAMBUF,
+ ACE_HAS_STREAM_PIPES.
+
+ * ace/TLI_Stream.h:
+ * ace/TLI_Acceptor.h:
+ No "Meta-type info" was defined (the PEER_ADDR and PEER_STREAM
+ typedefs).
+
+ * ace/Signal.h:
+ * ace/Signal.cpp:
+ With HP/aCC we can enable ACE_Sig_Handlers.
+
+Mon Mar 31 22:36:55 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Service_Config.cpp (process_directives): Return -1 if
+ ace_yyerrno > 0. Thanks to Alan Cabrera
+ <Alan_Cabrera@fp.cibc.com> for reporting this.
+
+Mon Mar 31 17:38:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.cpp (thr_create): Moved priority determination after
+ policy determination because it's possible for setting of the
+ priority to fail if it's not a valid priority for the [default]
+ policy.
+
+Mon Mar 31 09:00:54 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * performance-tests/Misc/context_switch_time.cpp: this test no
+ longer worked. So, reverted to revision 4.5, plus minimum
+ changes necessary to support build on platforms without threads.
+
+ * examples/Threads/Makefile, performance-tests/Misc/Makefile:
+ moved context_switch_time.cpp from examples/Threads to
+ performance-tests/Misc.
+
+ * examples/Logger/Acceptor-server/server_loggerd.cpp,
+ examples/Reactor/Misc/pingpong.cpp,
+ examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
+ examples/Shared_Malloc/Malloc.cpp:
+ added template specializations.
+
+ * include/makeinclude/platform_sunos5_g++.GNU: removed dependency
+ of CCFLAGS on CFLAGS to avoid duplicate -g in build command.
+ Also, added -fno-implicit-templates in comment.
+
+Sun Mar 30 12:52:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Malloc.h: The block begining with:
+ #if defined (ACE_MALLOC_STATS)
+ and ending with end of struct ACE_Malloc_Stats
+ must be moved (up) after line 107
+
+ Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
+ this out.
+
+ * ace/Malloc_T.cpp: The line
+ this->malloc_stats_.dump ();
+ must be changed in:
+ this->cb_ptr_->malloc_stats_.dump ();
+
+ Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
+ this out.
+
+ * ace/Malloc_T.cpp: the line
+ this->cb_ptr_->malloc_stats_.print (); // print not exists
+ may be changed in:
+ this->cb_ptr_->malloc_stats_.dump ();
+
+ Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
+ this out.
+
+ * ace/Malloc_T.h: Added "virtual" to the ACE_New_Allocator methods
+ to reinforce the fact that they are indeed virtual. Thanks to
+ Sandro Doro <alex@aureus.sublink.org> for pointing this out.
+
+ * ace/Malloc.h: Added "virtual" to the ACE_New_Allocator methods
+ to reinforce the fact that they are indeed virtual.
+
+Sat Mar 29 20:26:54 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: moved #defin of RTLD_LAZY after #include of dlfcn.h.
+ Thanks to Chris Lahey <CLahey@cccis.com> for this fix.
+
+ * ace/Task_T.h: replaced #include of "ace/Module.h" because some
+ Task_T methods use ACE_Module methods.
+
+ * examples/Connection/non_blocking/test_{sock,spipe,tli}_{acceptor,
+ connector}.cpp,
+ examples/System_V_IPC/SV_Semaphores/Semaphores_{1,2}.cpp:
+ added template specializations.
+
+Sat Mar 29 17:08:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.cpp: Added many new ACE_UNUSED_ARGS macros to eliminate
+ warnings when we are compiling without threads.
+
+Fri Mar 28 11:34:38 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Task.{h,cpp},Thread_Manager.h: changed remaining
+ priority types to long and defaults to -1.
+
+ * ace/Thread_Manager.cpp (spawn_i): don't clobber errno!
+ ACE_OS::thr_create () sets errno and returns -1. So,
+ its return value should not be used to set errno.
+
+ * ace/OS.cpp (thr_create): fixed PTHREADS_1003_DOT_1C thread
+ priority logic. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for the patch.
+
+ * ace/config-sunos5.5*.h,README,OS.cpp (thr_create): added
+ ACE_HAS_ONLY_SCHED_OTHER to indicate that platform (Solaris 2.5)
+ only supports POSIX SCHED_OTHER scheduling policy.
+
+ * tests/Priority_Task_Test.cpp (open): added THR_SCHED_FIFO flag.
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ for this suggestion.
+
+ * examples/ASX/Event_Server/Event_Server/Makefile,
+ Transceiver/Makefile:
+ added -lGateway to LIBS to pick up its template
+ instantiations during links.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
+ Transceiver/transceiver.cpp,
+ Connection/blocking/SPIPE-{acceptor,connector}.cpp,
+ misc/Connection_Handler.cpp,test_upipe.cpp,
+ Logger/simple-server/server_loggerd.cpp,
+ UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
+ performance-tests/Synch-Benchmarks/Options.cpp:
+ added template specializations.
+
+Thu Mar 27 21:10:59 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/IOStream.h: only use built-in ipfx{0,1} () with __GNUC__,
+ because that's the only compiler we know of that has them.
+ Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for pointing this
+ out, and to James CE Johnson <jcej@lads.com> for providing the fix.
+
+ * ace/OS.i: rearranged order of ACE_Time_Value functions (moved
+ set ()'s up, moved arithmetic operators down) so that they are
+ defined before use.
+
+ * ace/Task_T.cpp: removed ACE_TEMPLATES_REQUIRE_SOURCE around
+ #include of "ace/Module.h" so that it will build with Sun C++ 4.1.
+
+ * apps/Gateway/Peer/Makefile: added -lGateway to LIBS to
+ pick up its template instantiations during links.
+
+ * apps/Gateway/Peer/Peer.cpp: added template instantations.
+
+Thu Mar 27 14:10:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.h: Added two new accessors to ACE_Time_Value:
+
+ operator timeval *() const;
+ // Returns a pointer to the object as a timeval.
+
+ const operator timeval *() const;
+ // Returns a pointer to the object as a timeval.
+
+ Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for this suggestion.
+
+ * ace/OS.i (ACE_Time_Value): Inlined many of the ACE_Time_Value
+ accessors.
+
+ * ace/OS.h: Reimplemented ACE_Str_Buf at
+
+ struct ACE_Export ACE_Str_Buf : public strbuf
+ {
+ // = Initialization method
+ ACE_Str_Buf(void* b = 0, int l = 0, int max = 0);
+ // Constructor.
+ };
+
+ this makes the casting from ACE_Str_Buf* to strbuf* a "safe"
+ cast and makes it more portable (say on platforms where the
+ fields in strbuf are not in the right order). Thanks to Carlos
+ O'Ryan <coryan@mat.puc.cl> for this fix.
+
+ * ace/OS.h: Moved the definition of imr_multiaddr to just before
+ class ACE_OS so that it picks everything up appropriately.
+ Thanks to Hakan Kallberg <hk@simulina.se> for reporting this.
+
+ * ace/config-aix-4.[12].x.h and config-mvs.h: Fixed the
+ ACE_HAS_MULTICAST macros, which should have said
+ ACE_HAS_IP_MULTICAST. Thanks to Daniel Montalibet
+ <daniel_montalibet@stortek.com> for reporting this.
+
+Thu Mar 27 15:54:10 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/{Thread,Thread_Manager}.{h,i,cpp} (ACE_Thread): Changed
+ type for priority arg to spawn*() from u_int to long to
+ support changes in thr_create indicated below. Thanks to
+ Thilo Kielmann <kielmann@informatik.uni-siegen.de> for these
+ changes.
+
+ * ace/OS.cpp: Ensure that whenever either a priority of a
+ scheduling policy is set explicitly, with POSIX threads, the
+ other argument and the flag THR_EXPLICIT_SCHED is set
+ automatically. A range check for priority values for POSIX
+ 1003.1c is also included. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for these changes.
+
+ * ace/OS.h: Changed type and default value of priority arg to
+ thr_create from u_int to long and 0 to -1. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for these
+ changes. Also added ACE_MAX and ACE_MIN macros.
+
+Thu Mar 27 11:25:38 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * netsvcs/servers/Makefile: removed SHOBJ so that main.so is not
+ built, because it wasn't needed. Thanks to Sandro Doro
+ <alex@aureus.sublink.org> for this fix.
+
+ * ace/config-aix-4.[12].x.h,config-mvs.h: changed
+ ACE_HAS_MULTICAST to ACE_HAS_IP_MULTICAST. Thanks to Daniel
+ Montalibet <daniel_montalibet@stortek.com> for reporting
+ this.
+
+ * include/makeinclude/platform_sunos5_g++.GNU,
+ platform_sunos5_x86_g++.GNU,
+ platform_unixware_g++.GNU:
+ removed "-L$(WRAPPER_ROOT)/ace -L./" from LDFLAGS because it
+ is added to LDFLAGS in include/makeinclude/wrapper_macros.GNU.
+
+ * apps/Gateway/Gateway/{Event_Channel.cpp,Gateway.cpp,
+ Proxy_Handler.cpp,Proxy_Handler_Acceptor.cpp,
+ Proxy_Handler_Connector.cpp,
+ examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp,
+ netsvcs/clients/Naming/Client/Client_Test.cpp,
+ netsvcs/clients/Tokens/manual/manual.cpp:
+ added template specializations.
+
+Thu Mar 27 10:05:59 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed two things:
+ 1) In TS_Clerk_Processor::parse_args() changed
+ "%n:\n[-p hostname:port] [-t timeout] [-p poolname]\n%a", 1),
+ to
+ "%n:\n[-h hostname:port] [-t timeout] [-p poolname]\n%a", 1),
+
+ 2) In TS_Clerk_Processor::alloc() changed
+ void *temp = 0;
+ // Only create the state if it doesn't already exist.
+ if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1)
+ {
+ // Allocate the space out of shared memory for the system time entry
+ temp = this->shmem_->malloc (sizeof (this->system_time_));
+
+ to:
+
+ // Only create the state if it doesn't already exist.
+ if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR) == -1)
+ {
+ // Allocate the space out of shared memory for the system time entry
+ void *temp = this->shmem_->malloc (sizeof (this->system_time_));
+
+ Thanks to Sandro Doro (alex@aureus.sublink.org) for suggesting these changes.
+
+Thu Mar 27 01:00:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * include/makeinclude/platform_irix6.2_sgiCC.GNU: Added a new
+ platform config file for SGI Irix 6.2 using the CC compiler (not
+ NCC nor the MipsProcompiler). Thanks to Eric Dean Russell
+ <edrusse@somnet.sandia.gov> for these changes.
+
+ * ace/OS.h: Moved the ACE_LACKS_UTSNAME_T block into the right
+ part of the code. Thanks to Jonathan Biggar <jon@sems.com> for
+ this fix.
+
+ * ace/Malloc.h: Added an enhancement so that the new alignment
+ features will work regardless of the size of ACE_MALLOC_ALIGN.
+ Thanks to Fred LaBar <flabar@fallschurch.esys.com> for this fix.
+
+ * ace/Synch_Options.cpp: We now automatically set the USE_TIMEOUT
+ flag if a non-0 timeout value is supplied. Thanks to Tim
+ Liddelow <tim@cst.com.au> for this suggestion.
+
+Wed Mar 26 08:47:24 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/{ACE.cpp,Log_Msg.cppOS.cpp},
+ tests/{Message_Queue_Test.cpp,Naming_Test.cpp}:
+ Changed ::sprintf calls to ACE_OS::sprintf. Thanks to
+ Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ reporting this.
+
+ * netsvcs/lib/{Client_Logging_Handler.cpp,Name_Handler.cpp,
+ Server_Logging_Handler.cpp,TS_Service_Handler.cpp,
+ Token_Handler.cpp}: added template specializations.
+
+Tue Mar 25 06:47:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Moved config.h to the top of OS.h so that we don't
+ have to worry about not defining things in the right place.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
+ this out.
+
+Tue Mar 25 22:54:49 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/OS.i: Added UNICODE support for ACE_OS::chdir(). Thanks to
+ Ivan Murphy <Ivan.Murphy@med.siemens.de> for the code.
+
+Tue Mar 25 21:26:10 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/TTY_IO.{h,cpp},README, and these config files:
+ config-aix-*.h, config-hpux-*.h, config-irix5.*.h,
+ config-mvs.h, config-osf1-*.h, config-sun*.h (except for g++
+ and config-sunos5.5-sunc++-4.1.h), config-win*.h:
+ Added ACE_NEEDS_DEV_IO_CONVERSION to conditionally compile the
+ ACE_DEV_IO & conversion operator for ACE_TTY_IO, which is a
+ subclass of ACE_DEV_IO. Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> and Gonzalo Diethelm
+ <gonzo@ing.puc.cl> for reporting warnings without this on
+ Irix 6.2 with the mipsPro compiler.
+
+ * ace/OS.cpp (thr_create): on VxWorks, always pass 0 as first arg to
+ ::taskSpawn () so that VxWorks will generate the task ID.
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com>
+ for providing this fix, without which random task names would
+ be assigned.
+
+ * ace/ACE.cpp (get_bcast_addr): added return 0 at end of non-WIN32
+ code to avoid compile warning from g++.
+
+ * tests/IOStream_Test.cpp: removed extra "(%P|%t)" from output.
+ I couldn't get ACE_ERROR_RETURN to work on g++: it complained
+ about mismatched return types when returning an int from a
+ function that returns a void *, and about mismatched arguments
+ to an ACE_Log_Msg function if I cast the int to a void *. So,
+ I used ACE_ERROR instead.
+ Added ACE_UNUNSED_ARG (arg). Removed unused variables
+ error_at_server and error_at_client.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp: added another template
+ specialization.
+
+ * examples/Reactor/Multicast/client.cpp: Log_Wrapper::LOG_DEBUG
+ instead of LM_DEBUG.
+
+ * examples/Threads/context_switch_time.cpp: use ACE_Sched_Params
+ to get platform-dependent thread priorities. Also, moved #includes
+ so that config.h is read before testing for ACE_HAS_THREADS.
+
+ * examples/Threads/{auto_event.cpp,barrier2.cpp,future1.cpp,
+ future2.cpp,reader_writer.cpp,tss1.cpp,tss2.cpp}:
+ added template specializations.
+
+Tue Mar 25 10:01:05 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * config-linux.h: Added
+ ACE_HAS_{SVR4_DYNAMIC_LINKING,AUTOMATIC_INIT_FINI}. Thanks to
+ alex@aureus.sublink.org (Sandro Doro) for the change.
+
+ * platform_linux.GNU: Added -ldl to LIBS. Thanks to
+ alex@aureus.sublink.org (Sandro Doro) for the change.
+
+Tue Mar 25 16:01:34 1997 Carlos O'Ryan <coryan@charlie>
+
+ * ace/Svc_Handler.cpp:
+ I forgot to comment this: "operator delete" used to call ::delete
+ on a void*, on ANSI/C++ this is not allowed. Since "operator new"
+ calls ::new for a char[] I do a casting to char* and call
+ ::delete[] on the char pointer.
+
+ * ace/config-hpux-10.x-aCC.h:
+ HP-UX 10.10 supports CLOCK_GETTIME, my guess is that it should
+ work with g++ and HP/C++, but I won't mess with those files yet.
+
+ * ace/Connector.h:
+ The default address parameter for "connect" is a bit tricky, from
+ the comments in the file:
+ //
+ // If the compiler supports 'typename' we cannot use
+ //
+ // PEER_CONNECTOR::PEER_ADDR::sap_any
+ //
+ // because PEER_CONNECTOR::PEER_ADDR is not considered a
+ // type. But:
+ //
+ // typename PEER_CONNECTOR::PEER_ADDR::sap_any
+ //
+ // will not work either, because now we are declaring sap_any a
+ // type, further:
+ //
+ // (typename PEER_CONNECTOR::PEER_ADDR)::sap_any
+ //
+ // is considered a casting expression. All I can think of is
+ // using a typedef, I tried PEER_ADDR but that was a source of
+ // trouble on some platforms. I will try:
+ //
+ typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF;
+
+ * ace/OS.h:
+ The stock HP C++ compiler (cfront based) gives lots of warnings in
+ <net/if.h>. I used to define volatile to avoid this warnings. Now
+ I think I'll rather like to see them.
+
+ * ace/SPIPE_Stream.h:
+ * ace/SPIPE_Connector.h:
+ There was no meta-type info (PEER_ADDR) for SPIPE_Stream and
+ SPIPE_Connector.
+
+ * ace/Stream_Modules.h:
+ * ace/Stream_Modules.cpp:
+ Fixed a "bug" introduced in my last change: a couple of
+ ACE_ALLOC_HOOK_* were commented but shouldn't.
+
+ * examples/Connection/non-blocking/CPP-acceptor.cpp (open):
+ PR_AD cannot be used in this context, it expands to
+ _ACE_PEER_ACCEPTOR::PEER_ADDR (via ACE_PEER_ACCEPTOR_ADDR), but
+ the template parameter is _ACE_PEER_STREAM (aka PR_ST_1, aka
+ ACE_PEER_STREAM_1).
+ The right macro was ACE_PEER_STREAM_ADDR.
+
+ * ace/Connector.h:
+ * ace/Connector.cpp:
+ The typedef trick I used (PEER_ADDR) did not work on every
+ platform.
+ I also broke some examples since ACE_PEER_CONNECTOR_ADDR did not
+ include ACE_TYPENAME on its definition. Hopefully this new trick
+ will work everywhere.
+
+ * I finally sorted out the mistery of including "ace/Module.h"
+ into "ace/Task_T.cpp": when compiling "ace/Stream_Modules.cpp" you
+ get the following include sequence:
+ Stream_Modules.cpp
+ Stream_Modules.h
+ Task.h
+ Task.i
+ Task_T.h
+ Message_Queue.h (descendants removed)
+ Synch_T.h (descendants removed)
+ Task.h (already included).
+ Task_T.i
+ Task_T.cpp
+ Module.h
+ ACE.h (descendants removed)
+ Task.h (already included).
+ Module.i
+ Module.cpp
+
+ At this point Module.cpp uses ACE_Thru_Task declared on
+ Stream_Modules.h, but after the #include "ace/Task.h";
+ in fact Module.cpp tries to #include "ace/Stream_Modules.cpp" but
+ that second #include expands to nothing due to the canonical
+ protection on Stream_Modules.h.
+ That explains the removal of Module.h in Task_T.cpp.
+ If you are wondering why so long an explanation for this change
+ the answer is simple: just because I was curious on now it worked.
+
+Mon Mar 24 14:08:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Cleaned up the code a
+ bit.
+
+ * ace/ACE: Added a new method called get_bcast_addr() which will
+ get the broadcast address for a host. Thanks to Paul Han
+ <phan@CCGATE.HAC.COM> for suggesting this.
+
+ * ace/UNIX_Addr: Added another set method in UNIX_Addr class:
+
+ void set (const ACE_UNIX_Addr &sa);
+ // Creates an ACE_UNIX_Addr from another <ACE_UNIX_Addr>.
+
+ Thanks to Paul Han <phan@CCGATE.HAC.COM> for this.
+
+ * ace/SOCK_Dgram: Removed the #if defined (ACE_HAS_IP_MULTICAST)
+ since this is now handled at the ACE_OS level.
+
+ * ace/OS.h: Added support for IP multicast macros and structs even
+ on platforms that don't support it so that the tests will
+ compile without having lots of #ifdefs.
+
+ * tests/Future_Test.cpp: Added a check for platforms that lack
+ threads. Thanks to Hakan Kallberg <hk@simulina.se>
+ for reporting this.
+
+ * netsvcs/lib/Server_Logging_Handler.cpp: Added a check for
+ platforms that lack threads. Thanks to Hakan Kallberg
+ <hk@simulina.se> for reporting this.
+
+ * examples/Threads/context_switch_time.cpp: Added an #ifdef for
+ ACE_HAS_THREADS to this test so that it will compile on
+ platforms that don't have threading. Thanks to Scott Halstead
+ <scott.halstead@gs.com> for reporting this.
+
+ * tests/IOStream_Test.cpp: Fixed up this test so that it works
+ correctly on platforms that lack multi-threading. Thanks to
+ Scott Halstead <scott.halstead@gs.com> for reporting this.
+
+ * netsvcs/lib/Makefile: Reincluded the LIB target so that we'll
+ build a static library. Thanks to Scott Halstead
+ <scott.halstead@gs.com> for reporting this.
+
+ * ace/SOCK_Dgram.cpp (recv): Added a check to make sure that we
+ don't try to copy more into the recv buffer than we've really
+ got. Thanks to Alan_Cabrera@fp.cibc.com for this fix.
+
+ * ace/OS.cpp (readv): Added a check to make sure that we don't try
+ to copy more into the recv buffer than we've really got. Thanks
+ to Alan_Cabrera@fp.cibc.com for this fix.
+
+ * ace/Malloc.h: Modified the alignment strategy to define
+ ACE_MALLOC_ALIGN to a number of bytes. (it gets rounded to a
+ number of long's). This makes it easier to work with more
+ complex buffer alignment strategies (e.g., DMA). Thanks to Fred
+ LaBar <flabar@fallschurch.esys.com> for this.
+
+ * ace/OS.cpp (readv): Added several more changes for the readv()
+ emulation. Thanks to Alan Cabrera <Alan_Cabrera@fp.cibc.com>
+ and Adam Porter <aporter@cs.umd.edu> for these fixes.
+
+Mon Mar 24 14:22:17 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.cpp (thr_create): For VxWorks, fixed call to ::taskSpawn ().
+ ACE's arguments are in an array, not individual arguments.
+ Also, set flags to VX_FP_TASK if it's 0, to match behavior
+ of ::sp (). Thanks to Dave Mayerhoefer
+ <mayerhoefer@svappl36.mdc.com> for reporting these and providing
+ the fix.
+
+ * ace/High_Res_Timer.cpp (elapsed_time (struct timespec &):
+ fixed, using same approach as in elapsed_time
+ (ACE_hrtime_t &nanoseconds), to get nanosecond resolution.
+
+ * netsvcs/lib/TS_Clerk_Handler.cpp (handle_close): added
+ ACE_UNUSED_ARG (mask). Also, added template specializations.
+
+ * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
+ rearranged initializers to match declaration order.
+
+ * examples/IOStream/server/iostream_server.cpp,
+ client/iostream_client.cpp:
+ added template specializations.
+
+Mon Mar 24 13:21:31 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/High_Res_Timer.cpp (elapsed_time): Added an
+ ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanosecond)
+ method that returns the number of elapsed nanoseconds. This is
+ accomplished even with the scale factors converting to
+ microseconds. It also does not use floating point
+ calculations.
+
+Sun Mar 23 13:25:39 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/High_Res_Timer.h: Removed <scale_factor> from the
+ constructor of High_Res_Timer. All High_Res_Timers now use
+ global_scale_factor_ directly. Hopefully, this will not break
+ any existing code!
+
+Sat Mar 22 12:06:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.h: The include statement for config.h was too low. Some
+ defines for key_t, needed for NT, didn't work. Thanks to Alan
+ Cabrera <Alan_Cabrera@fp.cibc.com> for these fixes.
+
+ * examples/Reactor/Multicast: Improved the multicast client and
+ server programs to work better.
+
+ * ace/Connector.cpp: Modified the ACE_Connector::handle_close()
+ method to prevent recursive calls to itself. Thanks to Paul Han
+ <phan@CCGATE.HAC.COM> for reporting this.
+
+ * ace/Svc_Handler.cpp: Put the check (closing_ == 0) in the
+ destructor as well as in the destroy() method. This prevents a
+ possible core dump when the timer exists. The instruction
+ reactor::remove_handler in the shutdown method currently will be
+ called twice when ACE_Svc_Handler object is being deleted. Core
+ dump occurs when it tries to execute ACE_Reactor::remove_handler
+ method the second time because the ACE_Svc_Handler object
+ pointer has already been deleted by the previous instruction
+ ACE_Reactor::cancel_timer. Thanks to Paul Han
+ <phan@CCGATE.HAC.COM> for reporting this.
+
+ * ace/OS.cpp: Added new thread-safe implementations of writev()
+ and readv() for platforms that lack these functions.
+
+ * ace/SOCK_Dgram.cpp: Added new implementations of
+ ACE_SOCK_Dgram::{send,recv} that define methods for
+ send(iovec[], ...) and recv(iovec[], ...) for systems that
+ don't have sendmsg() and recvmsg(). Thanks to Alan Cabrera
+ <Alan_Cabrera@fp.cibc.com> for these fixes.
+
+ * apps/jaws/HTTP_Handler.cpp: Removed some problematic template
+ specializations that were left over from an earlier version of
+ JAWS. Thanks to Adam Porter <aporter@cs.umd.edu> for reporting
+ this.
+
+ * examples/Logger/Acceptor-server/server_loggerd.cpp: Revised the
+ code to use the new ACE_Svc_Handler logic that checks to ensure
+ that we don't recurse infinitely in handle_close().
+ Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
+ reporting this problem.
+
+ * examples/Logger/simple-server/Logging_Handler.cpp
+ (handle_close): Added a check to make sure we don't end up
+ recursively calling handle_close(). This will prevent
+ a segfault.
+
+Sat Mar 22 07:30:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/High_Res_Timer.*: Changed scale factor to convert
+ platform-dependent clock units to microseconds instead of
+ nanoseconds. That way, it should be greater than 1 for
+ all supported platforms. So, it's now an unsigned long
+ instead of a double.
+
+ * ace/OS.h: Changed ACE_hrtime_t to unsigned __int64 with
+ _MSC_VER. Also, fixed typo: "uint64" instead of "unit64"
+ without _MSC_VER.
+
+Fri Mar 21 08:37:34 1997 Carlos O'Ryan <coryan@charlie>
+
+ * makeinclude/rules.lib.GNU:
+ I use the macro SOEXT to support HP non-standard extension for
+ shared library names (.sl instead of .so).
+ I also changed the rule to build shared libraries: under HP-UX you
+ cannot pass extra libraries (-lXXX options) when building a shared
+ lib. Before HP-UX 10.10 it wasn't a problem because no library was
+ needed with ACE, but to support XLI the '-lxti' flag must be used
+ on binaries (but not on shared libs).
+
+ * include/makeinclude/platform_hpux.GNU:
+ The PIC option (+Z) was used always, clearly not intended.
+
+ * include/makeinclude/platform_hpux_gcc.GNU:
+ Added a config file for g++ under HP-UX.
+
+ * include/makeinclude/platform_hpux_aCC.GNU:
+ Added a config file for HP/aCC compiler under HP-UX.
+
+ * ace/Makefile:
+ * netsvcs/lib/Makefile:
+ Changed to support the SOEXT macro.
+
+ * config-hpux-10.x.h:
+ * config-hpux-10.x-aCC.h:
+ * config-hpux-10.x-g++.h:
+ I updated the files to HP-UX 10.10, AFAIK since that version HP-UX
+ uses fd_set instead of int in select(2) (so ACE_SELECT_USES_INT is
+ not needed) and the OS supports siginfo_t and ucontext_t so
+ ACE_HAS_SIGINFO_T and ACE_HAS_UCONTEXT_T are defined.
+ I *do not* have threads at my site nor the infamous PHSS_6246
+ patch so I couldn't test the threaded version nor the HP cfront
+ based one.
+ ACE compiled fine with g++ and HP/aCC though.
+
+ * ace/OS.h:
+ * ace/Malloc_T.h:
+ HP/aCC supports the typename keyword. I added a new config macro
+ 'ACE_HAS_TYPENAME_KEYWORD', when it is defined ACE_TYPENAME
+ expands to 'typename' when not it expands to nothing.
+ On the cases where HP/aCC requires the usage of 'typename' I added
+ a 'ACE_TYPENAME'.
+
+ * ace/OS.i:
+ * ace/OS.cpp:
+ ACE_OS::inet_aton cannot be inlined under HP-UX.
+
+ * ace/Connector.h:
+ * ace/Connector.cpp:
+ I have decided to use a typedef (PEER_ADDR) instead of
+ ACE_PEER_CONNECTOR_ADDR, mainly because the second form
+ requires a ACE_TYPENAME before each usage.
+
+ * ace/Event_Handler_T.i:
+ Much to my surprize ACE_TYPENAME is required when using a template
+ typedef as a return value.
+
+ * ace/Local_Name_Space_T.h:
+ HP/aCC does not like the usage of a private typedef from another
+ class.
+
+ * ace/Strategies_T.h:
+ * ace/Strategies_T.cpp:
+ ACE_Process_Strategy declared two defaults constructors:
+ ACE_Process_Strategy(void) and ACE_Process_Strategy(int = 1).
+ The constructor code was wrong, it called open() with parameters:
+ open(thr_mgr, thr_flags, n_threads)
+ none of which were defined, worse, open() receives just one
+ parameter (the number of processes) just as the constructor, I
+ believe that C-w programming is lurking here.
+
+ * ace/Signal.cpp:
+ Though the header file does not declare ACE_Sig_Handlers under
+ HP-UX (and the code is not defined too) some auxiliary functions
+ that use ACE_Sig_Handlers were defined. I removed their
+ definition.
+ Some day I'll try to take a look at the code, trying to find out
+ was wrong with them.
+
+ * ace/Stream_Modules.h:
+ * ace/Stream_Modules.cpp:
+ By mistake I commented out the ACE_ALLOC_HOOK_* macros; have to
+ fix it *real soon*.
+
+ * ace/Task_T.cpp:
+ No need to include "ace/Module.h" since only the template
+ declaration is used. When ACE_TEMPLATES_REQUIRE_SOURCE is defined
+ you end up using ACE_Thru_Task before it gets defined.
+ This is no problem unless your compiler checks template sintax
+ before instantiation as the HP/aCC compiler do.
+
+ * examples/Reactor/Misc/test_demuxing.cpp:
+ ACE_MT_SYNCH was used, but it is only defined if ACE_HAS_THREADS,
+ I used ACE_SYNCH instead, which is defined as ACE_MT_SYNCH if
+ ACE_HAS_THREADS and as ACE_NULL_SYNCH if not.
+ Maybe the semantics are wrong, but the thing compiles.
+
+Fri Mar 21 15:10:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Makefile (FILES): Moved Log_Msg to the beginning of the
+ source list in the ace Makefile. This is nice because it forces
+ the compilation of OS.i and that, obviously, is where you get
+ the complaints for the port. It's nice to have it at the
+ beginning so you catch the errors very early on before you've
+ compiled 30 or 40 files. Thanks to Scott Halstead
+ <scott.halstead@gs.com> for this suggestion.
+
+ * ace/Memory_Pool.cpp: Added #if !defined
+ (ACE_LACKS_SYSV_SHMEM) to handle systems like Chorus that
+ lack this feature.
+
+Thu Mar 20 18:58:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Svc_Handler.cpp (destroy): Added a state variable to keep
+ track of when we are closing down the Svc_Handler. This is
+ necessary to prevent endless recursive calls to handle_close()
+ due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks
+ to Bert Craytor <Bert_Craytor@peoplesoft.com> for reporting
+ this.
+
+ * tests/Conn_Test.cpp: Added a new test that makes sure the
+ Acceptor, Connector, and Svc_Handler are working correctly.
+
+ * ace: Added some more changes for Chorus. Thanks to Wei Chiang
+ <chiang@tele.nokia.fi> for these changes.
+
+ * ace/OS.h: Added #define for SIGSEGV for platforms that lack it
+ (e.g., Chorus).
+
+ * ace: Made a bunch of minor changes to support SunOS 4.x better.
+ Thanks to Scott Halstead <scott.halstead@gs.com> for reporting
+ these problems.
+
+ * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION
+ for the various templates used in this test. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
+
+ * ace/Connector.cpp (connector): Fixed some minor bugs that
+ prevented the ACE_Connector from compiling. Thanks to David
+ Levine for noticing this.
+
+ * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will
+ work on Win32. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for pointing this out.
+
+Thu Mar 20 22:38:27 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Timer_Heap.cpp: added template specializations.
+
+ * netsvcs/lib/Client_Logging_Handler.cpp,
+ Name_Handler.cpp
+ Server_Logging_Handler.cpp
+ TS_Clerk_Handler.cpp
+ TS_Server_Handler.cpp
+ Token_Handler.cpp: added template specializations.
+ There are still many missing from libnetsvcs.
+
+ * tests/Conn_Test.cpp,
+ Future_Test.cpp
+ IOStream_Test.cpp
+ Map_Manager_Test.cpp
+ Message_Block_Test.cpp
+ Message_Queue_Test.cpp
+ Reader_Writer_Test.cpp
+ SV_Shared_Memory_Test.cpp
+ Thread_Pool_Test.cpp}: added template specializations.
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
+ for providing these.
+
+ * ace/Log_Msg.cpp: removed commented-out template specialization.
+
+ * include/makeinclude/platform_{chorus,hpux,hpux_gcc}.GNU:
+ split out CFLAGS and CCFLAGS from CC and CXX.
+
+ * ace/config-aix-4.[12].x.h: added back ACE_HAS_THREAD_SELF and
+ and ACE_HAS_SVR4_DYNAMIC_LINKING; removed ACE_HAS_PTHREAD_T.
+ Thanks to Chris Lahey <CLahey@cccis.com> for figuring these out.
+
+Thu Mar 20 12:25:30 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/ace.{mak,mdp}: Build->Settings->Code Generation->Processor is
+ now set to "Pentium" instead of "Blend*" for Debug and Release
+ builds.
+
+ * ace/config-win32-msvc4.x.h:
+ * ace/config-win32-msvc2.0.h:
+ * ace/config-winnt-4.0-msvc4.x.h: Only define ACE_HAS_PENTIUM when
+ _M_IX86 == 500. Projects must specify Pentium in
+ Build->Settings->Code Generation->Processor to use the RDTSC
+ instruction in ACE_OS::gethrtime.
+
+ * ace/High_Res_Timer.{cpp,i}: By default, High_Res_Timer is
+ constructed with a scale_factor == 1. This allowed me to remove
+ all the checks for scale_factor == 0 in the code.
+
+ * ace/High_Res_Timer.h (static gettimeofday): If
+ global_scale_factor_ is not set, and we're on a platform that
+ requires global_scale_factor_ (e.g., Win32),
+ ACE_OS::gettimeofday will be used instead of ACE_OS::gethrtime.
+ This allows the scale_factor of 1 to still result in correct
+ values.
+
+Wed Mar 19 15:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace: Added zillions of minor changes so that ACE will compile on
+ the new aCC compiler for HPUX. Thanks to Gonzalo A. Diethelm
+ <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
+ help with this.
+
+ * ace/SOCK_Dgram_Mcast.cpp (subscribe): In addition to the
+ SO_REUSEADDR option, Irix has a SO_REUSEPORT option that must
+ also be set to allow multiple sockets to bind to the same
+ multicast address. Thanks to Robert V. Head <rhead@vtcs20a> for
+ reporting this.
+
+ * ace: Added a slew of changes to support CHORUS. Thanks to
+ Wei Chiang <chiang@tele.nokia.fi> for these changes.
+
+ * ace/config-sunos4.*.h: Added #define ACE_HAS_UNION_WAIT based
+ on the recommendation of Kumar Neelakantan
+ <kneelaka@painewebber.com>.
+
+ * ace/Log_Msg.cpp (log_hexdump): Replaced the use of ::sprintf()
+ with ACE_OS::sprintf() so that the return value would be correct
+ on SunOS 4.x!
+
+ * ace/OS: Added ACE_HAS_CHARPTR_SPRINTF and ACE_SPRINTF_ADAPTER
+ to ACE_OS::sprintf() for SunOS 4.x platforms. Thanks to Kumar
+ Neelakantan <kneelaka@painewebber.com> for reporting this.
+
+ * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): If the bound was
+ reached in the following loop, we should set this->num_ =
+ this->handles_.max_handle_ + 1 rather than go into the 2nd loop.
+ Thanks to Michael Newton <michaeln@in.ot.com.au> for reporting
+ this.
+
+ * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator):
+ ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator did not work
+ properly if called with a zero handleset, as there was no bounds
+ check on the first loop therein. Thanks to Michael Newton
+ <michaeln@in.ot.com.au> for reporting this.
+
+Wed Mar 19 16:06:32 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h,README: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER to wrap
+ #include of sys/socket.h with #undef/#define of __cplusplus.
+
+ * ace/config-aix-4.[12].x.h: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER,
+ ACE_HAS_PTHREAD_T, ACE_LACKS_TCP_H, and ACE_LACKS_SETSCHED.
+ Removed ACE_HAS_SVR4_DYNAMIC_LINKING and ACE_HAS_THREAD_SELF.
+
+ Thanks to Daniel Montalibet <daniel_montalibet@stortek.com> for
+ both of the above modifications.
+
+ * platform_{dgux4_epc,irix5.3_g++,linux*,m88k,osf1_3.2,sco*,
+ sunos4_g++,sunos5_centerline*,sunos5_g++,sunos5_sunc++*,
+ unixware_g++,vxworks5.2_g++}.GNU: split out CFLAGS and CCFLAGS.
+ Also, removed -lstdc++/-lm from g++ versions, because we now set
+ CXX to g++ instead of gcc, so those libraries are picked up.
+
+ * include/makeinclude/platform_osf1_4.0{,_g++}.GNU:
+ added -lrt to support ACE_Sched_Params. Thanks to
+ Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
+ suggesting this. Also, split out CFLAGS and CCFLAGS.
+
+ * ace/OS.h: removed SVR4_DYNAMIC_LINKING protection around
+ #define of RTLD_LAZY because it's used in ace/Parse_Node.cpp.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
+ this out.
+
+ * ace/OS.i (thr_setcanceltype): added ACE_UNUSED_ARGS for STHREADS
+ case. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
+ providing this fix.
+
+Tue Mar 18 21:53:03 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Modified the
+ SOCK_Dgram_Bcast class by adding a const char *host_name to the
+ contructor, and open, and mk_broadcast methods. If the user
+ passes in the host_name, then only the broadcast address of an
+ interface that has a matching ip address with the host will be
+ added to the if_list_. Otherwise, nothing changes. Thanks to
+ Paul <phan@CCGATE.HAC.COM> for this feature.
+
+Tue Mar 18 13:20:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ace.mdp: Reverted the change for DllMain as the entry point
+ to ace.dll. This is causing problems in multi-threaded
+ applications.
+
+ * netsvcs/lib/Client_Logging_Handler.cpp: Added a check in fini()
+ to make sure we have a valid handler. If the connect attempt
+ failed, this->handler_ will be set to 0.
+
+ * tests/Mem_Map_Test.cpp: Added code that removes all temporary
+ files created by the test.
+
+ * tests/Time_Service_Test.cpp: Made sure we remove the backing
+ store file left behind by a aborted clerk process.
+
+ * examples/Reactor/Ntalker/ntalker.cpp: The ntalker now uses
+ ACE::register_stdin_handler to register the STDIN. This function
+ allows for portability.
+
+Tue Mar 18 08:12:22 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Svc_Conf_y.cpp,Makefile: replaced "y.tab.c" string with
+ "Svc_Conf_y.cpp" to ease debugging. Thanks to Luca Priorelli
+ <lucapri@mbox.vol.it> for suggesting this.
+
+ * ace/IOStream.cpp (close): replaced call to
+ ACE_SOCK_Stream::close () with one to generic STREAM::close ().
+ Thanks to Kumar Neelakantan <kneelaka@painewebber.com> for
+ reporting this problem.
+
+ * ace/OS.h,README,config-*.h: removed ACE_HAS_RTLD_LAZY_V, and
+ replaced with #define of RTLD_LAZY macro only if it's not
+ already defined (and if ACE_HAS_SVR4_DYNAMIC_LINKING is defined).
+ Thanks to Chris Lahey <CLahey@cccis.com> for providing this fix.
+
+ * ace/OS.i (thr_setcancelstate, thr_setcanceltype, thr_cancel):
+ added ACE_UNUSED_ARG calls to avoid compiler warnings. Thanks
+ to Chuck Gehr <gehr@sweng.stortek.com> for suggesting them.
+
+ * ace/Local_Name_Space_T.h: moved #include of Local_Name_Space.h up
+ because this file needs declaration of ACE_NS_String. There
+ _shouldn't_ be a circular include problem because the #includes are
+ protected. Thanks to Daniel Montalibet
+ <daniel_montalibet@stortek.com> for reporting this problem and
+ providing the fix.
+
+ * ace/Local_Name_Space.h: removed #include of ace/Service_Config.h.
+
+ * include/makeinclude/wrapper_macros.GNU: put -I. before
+ -I$(WRAPPER_ROOT) instead of after.
+
+ * tests/IOStream_test.cpp: added checks for receipt of proper values.
+
+Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ace.mdp: Add DllMain as the entry point of ace.dll. This
+ allows us to call WSAStartup when ace.dll is loaded in and
+ WSACleanup when ace.dll is unloaded. People using ace as a
+ static library are still out in the cold with respect of getting
+ WSACleanup called before the process exits.
+
+ I am not sure of two cases: (1) What happens when an application
+ crashes and was not able to call WSACleanup and (2) if the
+ application wants to continue using sockets when ace.dll is
+ unloaded. I hope this solves more problems than it creates ;-)
+
+Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Parse_Node.cpp: Added END_OF_LINE characters to some
+ ACE_ERRORs.
+
+ * netsvcs/{lib,servers}: Fixed the project files to produce and
+ use the dll in the correct place (which is netsvcs/lib).
+
+ * ace/Log_Record.cpp: Corrected format string for fprintf().
+
+ * examples/Threads/test.mdp: Added context_switch_time.cpp to the
+ project.
+
+ All of the above bugs were reported by Luca Priorelli
+ <lucapri@mbox.vol.it>. Thanks for the contribution.
+
+Mon Mar 17 12:59:56 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,i}: added nanosleep (), currently supported only
+ on POSIX platforms (if ACE_HAS_CLOCK_GETTIME is defined).
+
+ * examples/Mem_Map/IO-tests/{IO_Test.cpp,test_io.cpp):
+ LM_ERROR instead of ACE_ERROR, and fixed call to ACE::basename ().
+
+ * ace/OS.cpp (sched_params): return -1 if not supported,
+ instead of ENOTSUP.
+
+ * ace/OS.cpp (fork): added ACE_UNUSED_ARG (program_name) for WIN32
+ and VxWorks.
+
+ * ace/Sched_Params.cpp (priority_min, priority_max, next_priority,
+ previous_priority): not supported on MVS, via ACE_LACKS_SETSCHED.
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for figuring this
+ out and providing the fix.
+
+ * tests/Timer_Queue_Test.cpp (test_performance): changed type of
+ local variable "i" to (signed) int to avoid signed/unsigned
+ comparison, and eventual seg fault because a loop would never
+ terminate.
+
+Sun Mar 16 11:31:46 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Timer_{List,Queue,Heap}.h: Defined copy constructors and
+ assignment operators in the private part of the class so that
+ users won't accidentally make mistakes.
+
+Sat Mar 15 21:44:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Timer_{Queue,List}.cpp (cancel): handle_close() should be
+ called only once (especially when handle_close() implements
+ "delete this;" ). Since it is possible that the EH will be
+ registered more than once, I changed the code to do the
+ following:
+
+ if (number_of_cancellations == 1)
+ // Call the close hook.
+ curr->handler_->handle_close (ACE_INVALID_HANDLE,
+ ACE_Event_Handler::TIMER_MASK);
+
+ Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com> for
+ suggesting this.
+
+ * examples/Mem_Map/IO-tests/test_io.cpp (run_tests): Removed all
+ uses of ::perror and replaced them with calls to ACE_ERROR
+ macros.
+
+ * ace/Mem_Map.i (unmap): The ACE_Mem_Map::close method does not
+ work properly if the value of file_mapping_ is equal to
+ ACE_INVALID_HANDLE. In this case the method calls a useless
+ close (-1). Therefore, I changed:
+
+ if (this->file_mapping_ != this->handle_)
+ ACE_OS::close (this->file_mapping_);
+
+ in:
+
+ if (this->file_mapping_ != this->handle_ &&
+ this->file_mapping_ != ACE_INVALID_HANDLE)
+ ACE_OS::close (this->file_mapping_);
+
+ Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
+ this.
+
+Thu Mar 13 18:21:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ReactorEx.h: Change protection of methods/variables of
+ ReactorEx from private to protected. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for suggesting this.
+
+Thu Mar 13 16:31:54 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.i (thr_getprio): Added missing ACE_NOTSUP_RETURN
+ for the case of pthreads && !defined (ACE_LACKS_SETSCHED).
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
+ reporting this.
+
+Thu Mar 13 00:12:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/Local_Name_Space_T.cpp (dump): Added ACE_UNUSED_ARG around
+ fake_this to stop the compiler from complaining about unused
+ variables.
+
+ * ace/Message_Block.cpp (ACE_Data_Block::size): Moved the copying
+ of the old base before freeing it up. Thanks to Dieter Quehl
+ (dietrich.quehl@med.siemens.de) for pointing this out.
+
+ * ace/Local_Name_Space_T.cpp: Added code to the list methods such
+ that structured exceptions are handled correctly. Thanks to
+ Karlheinz Dorn (karlheinz.dorn@med.siemens.de) for reporting
+ this.
+
+Wed Mar 12 21:31:51 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * examples/Reactor/Ntalker/ntalker.cpp: Made changes to the
+ program which allows it to run under Win32.
+
+ * ace/SOCK_Dgram_Mcast.cpp: Made changes to the setting of the
+ interface address so that it works correctly under Win32.
+ Thanks to Todd L. Montgomery (tmont@cs.wvu.edu), Anton van
+ Straaten (anton@appsolutions.com), Ole O. Johnsen
+ (Ole.Johnsen@gpi.telemax.no), Mike Flinn
+ (mike.flinn@smtpgate.aws.waii.com), Steve Weismuller
+ (spweismu@rsoc.rockwell.com) and others who helped out.
+
+Wed Mar 12 17:05:52 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/config-linux-lxpthreads.h: Added ACE_HAS_IP_MULTICAST.
+
+Wed Mar 12 16:07:07 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.i (gethrtime): Added support for VxWorks and
+ other platforms that support ACE_HAS_CLOCK_GETTIME.
+
+Tue Mar 11 21:38:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/OS.i (open): Improved support for passing flags through to
+ CreateFile ().
+
+Tue Mar 11 14:30:12 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SYS_NERR.
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting this.
+
+ * ace/OS.{i,cpp} (uname, hostname): added VxWorks support.
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ providing this. (Also, uninlined ACE_OS::uname on WIN32
+ and VxWorks because it contains string literals.)
+
+ * ace/High_Res_Timer.{i,cpp}: fixed interpretation of units:
+ ACE_hrtime_t is in nanoseconds, so it should be divided by
+ 1000000000 to get seconds. Fixed divs/mods to first divide
+ by 1000, then div/mod. Thanks to Luca Priorelli
+ <lucapri@mbox.vol.it> for identifying this problem.
+
+ Also, removed some casts that are no longer necessary, and
+ added some casts of ACE_hrtime_t values to longs to avoid
+ compiler warnings. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for pointing this out.
+
+ * ace/Reactor.cpp (unbind): cast "index" to int to avoid
+ signed/unsigned comparison. Thanks to Matthias Kerkhoff
+ <make@cs.tu-berlin.de> for pointing this out.
+
+ * ace/ReactorEx.cpp (bind): changed type of "current_size" to
+ size_t to avoid signed/unsigned comparison. Thanks to Matthias
+ Kerkhoff <make@cs.tu-berlin.de> for pointing this out.
+
+ * ace/Timer_Heap.cpp (ctor, grow_heap): cast unsigned value
+ (i + 1) to int before negating to avoid compiler warning.
+ Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
+ this out.
+
+ * examples/Threads/context_switch_time.cpp (main): added
+ ACE_SCOPE_PROCESS param to ACE_Sched_Params instances so
+ that the test works on WIN32. Thanks to Luca Priorelli
+ <lucapri@mbox.vol.it> for identifying this problem.
+
+ * ace/Registry.{h,cpp},Registry_Name_Space.{h,cpp},Svc_Conf_Tokens.h,
+ Svc_Conf_{l,y}.cpp,Timer_{Heap,List}.cpp,config-aix-4.2.x.h,
+ config-dgux-4.11-epc.h,config-mvs.h,config-sco-5.0.0-fsu-pthread.h,
+ config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0-nothread.h:
+ added CVS header (Id wrapped in $).
+
+ * netsvcs/clients/Logger/indirect_logging.cpp (main): declare loop
+ index as signed int to avoid signed/unsigned comparison.
+
+Tue Mar 11 07:34:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests/Timer_Queue_Test.cpp: Added some code to illustrate how
+ the new handle_close() hook for ACE_Timer_{Heap,List} work.
+
+ * ace/Timer_Heap.cpp (cancel): Modified the Timer_Heap and
+ Timer_Queue so that it will call the handle_close() hook when
+ Event_Handler's are cancelled. This is necessary to reclaim
+ resources. Thanks to Hamutal Yanay
+ <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
+
+ * ace/Event_Handler.h (signal): Added a TIMER_MASK, which is
+ passed to handle_close() when a timer is cancelled.
+
+ * ace/Log_Msg.cpp (log): Fixed a bug by setting LPTSTR lpMsgBuf =
+ 0 on line 524. Thanks to Mark Wright <markw@odi.com.au> for
+ reporting this.
+
+Sun Mar 10 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/Mem_Map/IO-tests: Fixed a small bug in "IO_Test.cpp"
+ file. In the "int Mmap1_Test::run_test" method I inserted an
+ lseek to rewind the output file. With this correction the speed
+ go up due to IO cache. Thanks to Sandro Doro
+ <alex@aureus.sublink.org> for reporting this.
+
+Sun Mar 9 18:24:37 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
+
+ * java/src/IOCntlMsg.java (IOCntlMsg): Added two new
+ classes/files, namely IOCntlCmds and IOCntlMsg.
+
+ * java/src/Task.java: Added accessors to get/set the flags of the
+ Task.
+
+Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Reactor: Fixed an evil bug where the expression
+
+ if (handle >= 0 || handle < this->max_handlep1_)
+
+ should be
+
+ if (handle >= 0 && handle < this->max_handlep1_)
+
+ Thanks to Mark Wright <markw@odi.com.au> for reporting this.
+
+Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * apps/Gateway: Updated the Peer and Gateway applications so that
+ they don't try to register ACE_STDIN with the Reactor on Win32.
+
+ * apps/Gateway: Changed a bunch of calls to
+ ACE_Reactor::remove_handler() so that it no longer tries to
+ remove descriptor 0, but instead uses ACE_STDIN. Naturally,
+ this doesn't work due to the way that Win32 implements select()
+ but at least it compiles... Thanks to Elliot Lau
+ <eeklau@post1.com> for reporting this.
+
+ * apps/Gateway/Gateway/File_Parser: Changed the enumerated type
+ ERROR to PARSE_ERROR to avoid a name clash with a symbol
+ reserved by Win32 (barf). Thanks to Elliot Lau
+ <eeklau@post1.com> for reporting this.
+
+Sat Mar 8 12:37:44 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Log_Msg.cpp: Changed the implementation of ACE_Log_Msg so
+ that all accesses to the lock_ are now through a Singleton.
+ This makes it possible to define multiple instances of
+ ACE_Log_Msg within the same thread. Thanks to Jeff Morgan
+ <jeff@audioactive.com> for helping track this down.
+
+ * Added support for SCO 5.0. Thanks to Auturo
+ <mitosys@colomsat.net.co> for these patches.
+
+Thu Mar 06 13:24:04 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.i (gettimeofday): moved declaration of "result" so
+ that it's not declared on VxWorks, where it's not needed;
+ (stat): added cast of file arg to char * for VxWorks;
+ (thr_getprio): added missing "#else" before ACE_NOTSUP_RETURN (-1).
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting these.
+
+ * ace/OS.cpp (sched_param): with STHREADS, map ACE_SCOPE_THREAD
+ to ACE_SCOPE_PROCESS'.
+
+ * ace/Svc_Conf_l.cpp: commented out YY_BREAK after ace_yyterminate ()
+ to avoid GHS compiler warning about unreachable statement.
+ Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
+ reporting this.
+
+ * ace/ace.mak: removed Thread_Priority and renamed Scheduling_Params
+ to Sched_Param.
+
+ * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
+ added "l" qualifier for sprintf of ACE_OS::getpid ().
+
+ * tests/Priority_Task_Test.cpp,
+ examples/Threads/{context_switch_time.cpp,Makefile}:
+ adapted to new thread priority/ACE_Sched_Params.
+
+Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/UNIX_Addr.cpp: Enhanced the implementation of set() so
+ that it works correctly on MVS, which has a different definition
+ of struct sockaddr_un:
+
+ struct sockaddr_un {
+ unsigned char sun_len;
+ unsigned char sun_family;
+ char sun_path[108];
+ };
+
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
+ this.
+
+Wed Mar 05 14:47:14 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,cpp},Makefile; also, renamed Scheduling_Params.* to
+ Sched_Params.* and removed Thread_Priority.*:
+
+ Major change in scheduling parameters interface:
+ The key change is that there is no longer a special thread priority
+ enum. Thread_Priority was changed to int, so applications can do
+ whatever they want. The ACE_Sched_Params class has some static
+ functions to help do this portably.
+
+ Here are the changes from the ACE 4.1.3:
+
+ 1) ACE_Thread_Priority: removed this class.
+
+ It contained "priority class" and "thread priority".
+ "Priority class" is platform-specific and doesn't
+ need to be visible in ACE; it is subsumed by scheduling policy,
+ see below. "Thread priority" is replaced by the global
+ ACE_Sched_Priority typedef in ace/OS.h, see next change.
+
+ 2) ace/OS.h: added ACE_Sched_Priority typedef (to int)
+ and ACE_SCOPE_THREAD.
+
+ 3) ace/OS.h: added scheduling policy #defines: ACE_SCHED_OTHER,
+ ACE_SCHED_FIFO, and ACE_SCHED_RR. There's an ACE_Sched_Params::
+ Policy typedef that can take one of these values.
+
+ 4) ACE_Sched_Params: added priority_min (), priority_max (),
+ next_priority (), and previous_priority () functions. All
+ require an ACE_Sched_Params::Policy argument and take an
+ optional scope argument (to support the distinct thread
+ and process priorities on DEC UNIX).
+
+ min_priority () and max_priority () have platform-specific
+ and policy-specific values, and direction (the min value may
+ be higher than the max value). The increment and decrement
+ operations allow applications to iterate over them, etc.,
+ without explicitly specifying the direction of the priority
+ (0 for high or low priority).
+
+ 5) The only way to apply ACE_Sched_Params is through
+ ACE_OS::sched_params (const ACE_Sched_Params &).
+ (This is not really a change, except for the name change from
+ ACE_OS::set_sched_params ().
+
+ It sets both policy and priority of current thread or
+ process (depending on the scope in ACE_Sched_Params).
+ Not all combinations of policy, priority, and scope are
+ legal on all platforms. Unfortunately, I see no way around
+ this, because the intersection of legal ranges
+ on our supported platforms is empty. If an illegal request
+ is made, ACE_OS::sched_params () sets errno to EINVAL and
+ returns -1.
+
+ 6) added ACE_OS::thr_setprio (const ACE_Sched_Priority prio)
+ to set the current thread's priority, only.
+
+ Many thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
+ for his careful review of this class design, thoughtful comments,
+ and assistance with implementation, especially for PTHREADS
+ platforms.
+
+Wed Mar 5 14:36:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * SString.cpp: Fixed ACE*String initialization bugs. Thanks to
+ jmorey@tbi.com (John Morey) for reporting this.
+
+Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i: Fixed a bug in gethrtime
+
+ const ACE_Time_Value now = ACE_OS::gettimeofday (void);
+
+ which should be
+
+ const ACE_Time_Value now = ACE_OS::gettimeofday ();
+
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
+ this.
+
+Tue Mar 4 16:37:26 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (main): Make life
+ easier by doing an unlink(rendezvous) before reopening the
+ UNIX-domain socket. Thanks to Jeff Morgan
+ <jeff@audioactive.com> for suggesting this.
+
+Sun Mar 02 19:58:00 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config*.h: removed #define of ACE_HAS_INLINED_OSCALLS
+ because it's no longer needed in the config files: it's
+ #defined in OS.h if needed.
+
+Sun Mar 2 17:14:29 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * include/makeinclude: Updated all the platform-*g++.GNU files so
+ that they no longer -D__ACE_INLINE__ (since this is handled in
+ the the config-*g++.h files).
+
+ * ace: Updated all the config-*g++.h files so that they now
+ #define __ACE_INLINE__ rather than having this set in the
+ platform_*.GNU file. This makes ACE easier to build and
+ integrate with other software packages.
+
+Fri Feb 28 02:22:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/SOCK_*: There were problems starting UDP broadcast servers
+ (all using the same well known port number) multiple times on
+ one machine (this is very useful test distributed applications
+ on one single machine). Setting the SO_REUSEADDR option for the
+ broadcast socket allows binding of a socket that is already in
+ use and thus allows us to start more than one broadcast servers
+ in parallel on one machine. Thanks to Dieter Quehl
+ <dietrich.quehl@med.siemens.de> for this fix.
+
+ Therefore, I patched ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram and
+ ACE_SOCK to include this feature. In addition, I also changed
+ ACE_SOCK_Connector/ACE_SOCK_Acceptor to use this feature instead
+ of calling setsockopt() there explicitly.
+
+ * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (main): Fixed up the
+ use of ACE_OS::fork() here to use the new "named" version.
+
+ * ace/OS.h: Added a clever new wrapper function called fork (const
+ char *program_name), which calls fork() and then automatically
+ calls ACE_LOG_MSG->sync (program_name) to sync up the program
+ name. This eliminates a common source of error when forking
+ children and using ACE_Log_Msg::log().
+
+ * examples/IPC_SAP/SOCK_SAP/FD-un{client,server}.cpp: Updated the
+ FD client and FD server programs so that it is now a concurrent
+ server.
+
+ * ace/config-mvs.h: Added #define ACE_LACKS_TCP_H for MVS. Thanks
+ to Chuck Gehr for pointing this out.
+
+ * ace/OS.h: Added a new #define ACE_LACKS_TCP_H that skips the
+ inclusion of the netinet/tcp.h file if it isn't on the platform.
+
+ * ace/OS.i (thr_cancel): Changed the line
+
+ ACE_UNUSED_ARG (t_id);
+
+ to
+
+ ACE_UNUSED_ARG (thr_id);
+
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
+ this.
+
+ * ace/SString.cpp: Fixed up all the ACE_[CSW]String code so that
+ always allocates a rep_ even in the null constructor. This
+ saves us from having to handle odd special cases later on...
+ Thanks to John Morey <JMOREY@tbi.com> for reporting this.
+
+ * ace/Service_Repository.cpp (close): Changed the order in which
+ services are destroyed when the Service Configurator is closed.
+ Currently, services are destroyed in the order in which they are
+ created according to the svc.conf file. Now, we shut them down
+ in reverse order. This makes more sense when services are
+ related, i.e., one service has to be started before another.
+ Thanks to Karlheinz for this suggestion.
+
+Fri Feb 28 12:13:09 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: fixed definition of ACE_TIMER_SKEW. Thanks
+ to Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
+
+Thu Feb 27 21:36:28 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{i,cpp} (gethrtime): support on all platforms by
+ using ACE_OS::gettimeofday () if there is no native high
+ resolution timer. Moved ACE_OS::getimeofday () definition
+ toward top of OS.i so that it is always defined before
+ being called. Finally, expanded gethrtime () support from
+ linux to __GNUC__ with ACE_HAS_PENTIUM; it should work on
+ platforms such as VxWorks with gcc on Pentiums.
+
+ * ace/config-osf1-4.0-{,g++}.h: added ACE_HAS_CLOCK_GETTIME.
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
+ for pointing this out.
+
+Thu Feb 27 17:06:12 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/High_Res_Timer.h (get_env_global_scale_factor): This static
+ method will set the global_scale_factor to the value in an
+ environment variable (ACE_SCALE_FACTOR by default).
+
+ * ace/High_Res_Timer.*: Changed all calculations to divide by
+ scale_factor before doing / and %. This must be done before the
+ mod for correctness.
+
+ * ace/Profile_Timer.i (start): Changed start and stop methods to
+ call ACE_High_Res_Timer::gettimeofday. This should allow
+ greater timing accurracy.
+
+ * ace/High_Res_Timer.h (global_scale_factor): Added a static
+ global_scale_factor that allows applications to set one scale
+ factor for all high res timers. This is important for platforms
+ like intel where the scale factor will vary based on the
+ processor clock speed.
+
+ * ace/High_Res_Timer.i (gettimeofday): This static method calls
+ ACE_OS::gethrtime and converts to an ACE_Time_Value based on the
+ global_static_factor.
+
+Wed Feb 26 18:28:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ACE-install.sh: Added some fixes for the ACE-install.sh script.
+ Thanks to Eugene R. Somdahl <gene@endo.com> for reporting these.
+
+ * ace/Connector.cpp (handle_close): Added a test to see if the
+ reactor_ is NULL and if it is, don't bother trying to use it to
+ clean up. Thanks to Paul Han <phan@CCGATE.HAC.COM> for this
+ suggestion.
+
+Tue Feb 25 21:19:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h,config-sunos*.h: default ACE_TIMER_SKEW to 0,
+ and override to 10 ms in all Solaris config files.
+
+ * ace/Svc_Conf_l.cpp,Makefile: #undef ACE_HAS_TERM_IOCTLS
+ so that /usr/include/sys/termios.h won't be included; it
+ #defines ECHO, and Svc_Conf_l.cpp has an ECHO symbol.
+
+ * ace/ACE.cpp (sock_error): added ACE_UNUSED_ARG (error);.
+
+ * ace/Timer_Queue.cpp (ctor): rearranged initializers to
+ match declaration order.
+
+Tue Feb 25 19:57:54 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/Timer_Queue.cpp (gettimeofday): Added gettimeofday accessors
+ on the Timer_Queue. The default implementation calls
+ ACE_OS::gettimeofday. Applications can specify, via pointers to
+ functions, that a timer queue use an alternate gettimeofday
+ implementation (e.g., a high resolution timer).
+
+ * ace/Reactor.cpp (schedule_timer): The Reactor no longer calls
+ ACE_OS::gettimeofday. Instead, it calls
+ Timer_Queue::gettimeofday.
+
+ * ace/ReactorEx.cpp (schedule_timer): The ReactorEx no longer calls
+ ACE_OS::gettimeofday. Instead, it calls
+ Timer_Queue::gettimeofday.
+
+Tue Feb 25 17:40:57 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Log_Msg.cpp: Updated the 'p' option of the log() method to
+ use the new ACE::sock_error() method for cases where
+ FormatMessage() fails.
+
+ * ace/ACE: Added a new sock_error() method to class ACE which
+ returns the appropriate message for each WinSock error code.
+ This makes up for an apparent oversight in Win32. Thanks to
+ Michael R. MacFaden" <mrm@cisco.com> for this.
+
+Tue Feb 25 01:33:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Moved <netinet/tcp.h> outside of the VXWORKS #ifdef
+ since it seems to be available on other platforms (e.g.,
+ Solaris). If people find this not to be the case on all
+ platforms please let me know and I'll #ifdef it. Thanks to
+ Sumedh Mungee <sumedh@cs.wustl.edu> for reporting this.
+
+Tue Feb 25 16:20:29 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * examples/Connection/non_blocking/CPP-acceptor.cpp: Added a
+ specific checl for timeouts. Also, changed
+ ACE_PEER_ACCEPTOR_ADDR to ACE_PEER_STREAM_ADDR
+
+ * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New
+ project files for Win32.
+
+ * ace/Log_Msg.cpp: Minor changes.
+
+Mon Feb 24 17:16:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Log_Msg.cpp (ACE_Log_Msg): Enable the thread-specific
+ tracing flag by default. This ensures that tracing will work
+ "out of the box."
+
+ * ace/config-sunos5.[45]-g++.h: Added a #define for
+ ACE_HAS_TERM_IOCTLS. Thanks to Joey Zhu <joey.zhu@wcom.com> for
+ reporting this.
+
+ * ace/Synch.cpp (acquire): Simplified the recursive mutex logic
+ for acquire(). Thanks to Arthur J. Lewis" <hfdh99a@prodigy.com>
+ for reporting this.
+
+ * examples/Connection/non_blocking/CPP-acceptor.cpp (init): Added
+ a #ifdef for ACE_WIN32 so that we don't register the signal
+ handler for SIGPIPE since it's not supported on Win32. Thanks
+ to Ivan Murphy <Ivan.Murphy@med.siemens.de> for reporting this
+ problem.
+
+ * examples/Connection/non_blocking: The SPIPE examples in
+ (test_spipe_{acceptor,connector}.cpp) aren't ported to Win32
+ yet. They currently don't work because ACE_SPIPE*'s can't be
+ registered with the ACE_Reactor (which only works with sockets).
+ I've #ifdef'd these examples so that they don't get compiled on
+ Win32. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for
+ reporting this problem.
+
+Mon Feb 24 20:28:10 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++
+ won't convert unsigned __int64 to double. Thanks to Irfan
+ <irfan@cs.wustl.edu> for reporting this.
+
+ * include/makeinclude/platform_{irix5.3_g++,linux*,m88k,
+ osf1_4.0_g++,sco-nothread,sunos*g++,unixware_g++}.GNU:
+ changed C++ compiler (CXX) from gcc to g++ so that libg++
+ will be linked in. Thanks to James CE Johnson <jcej@lads.com>
+ for suggesting this.
+
+ * examples/IOStream/{client,server}/Makefile,tests/Makefile:
+ removed -lg++, when gcc is the compiler, because it's no
+ longer needed with g++ as the compiler.
+
+Sat Feb 22 23:03:45 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.i: restored version 4.89 and 4.90 changes that
+ were lost in version 4.91.
+
+ * ace/OS.{i,cpp},config-linux*.h: added ACE_OS::gethrtime ()
+ support for Linux on Pentiums.
+
+ * ace/High_Res_Timer.*: changed scale_factor type from
+ u_long to double so that it can be less than 1.
+
+ * ace/Thread_Priority.cpp: "linux" instead of "LINUX".
+
+ * tests/Priority_Task_Test.cpp (open): set this->priority_ because
+ an assertion uses it. Also, use ACE_NORMAL_PRIORITY_CLASS so that
+ root doesn't have to run the test on Solaris.
+
+Sat Feb 22 22:07:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * tests/Priority_Task_Test.cpp (open): Now use
+ ACE_Thread_Priority while setting the priority of the new
+ thread.
+
+ * ace/Thread_Priority.cpp (convert_to_os_priority): Changed
+ return type for this to 'int' from 'long' on Linux. Thanks
+ to James CE Johnson <jjohnson@lads.com> for pointing this
+ out!
+
+ * ace/OS.i (thr_cancel): Corrected erroneous macro argument.
+ Thanks to James CE Johnson <jjohnson@lads.com> for pointing
+ this out!
+
+Sat Feb 22 17:00:59 1997 <harrison@samba.cs.wustl.edu>
+
+ * ace/OS.i (gethrtime): Added support for intel's RDTSC
+ instruction for pentium architectures.
+
+Sat Feb 22 10:57:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Stream.cpp (open): Make sure that if we allocate the Tasks
+ in the Stream head and the Stream tail that we set the M_DELETE
+ flag so that the close() method will clean up the memory.
+ Thanks to David Levine and Purify for noticing this problem.
+
+Fri Feb 21 08:06:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i: Yikes, it looks like the Solaris and the POSIX version
+ of sigwait() are different! The Solaris version returns the
+ signal number, whereas the POSIX version returns 0 on success,
+ errno on failure, and sets a parameter with the signal on
+ success. I've fixed the ACE_OS C++ wrapper so that the right
+ thing happens, i.e., errno is always set to the error (if
+ sigwait() returns -1) and the signum is always returned as the
+ argument and the return value on success ... Thanks to Harry
+ Gunnarsson <hg@carmenta.se> for reporting this.
+
+Fri Feb 21 11:01:22 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Thread_Priority.cpp: fixed return type of
+ convert_to_os_priority () for Linux. Thanks to
+ James CE Johnson <jcej@lads.com> for pointing this out.
+
+ * examples/Shared_Malloc/test_malloc.cpp,
+ examples/System_V_IPC/SV_Message_Queues/{T,}MQ_Server.cpp (main):
+ added ACE_UNUSED_ARG (sa);.
+
+Fri Feb 21 04:12:31 1997 <irfan@TWOSTEP>
+
+ * ace/OS.h: Added ACE_SEH_FINALLY.
+
+ * ace/ReactorEx.h: Added ACE_ReactorEx_Test as a friend class. I
+ think we should have one such friend class for all classes in
+ ACE.
+
+ * examples/Reactor/ReactorEx/test_exceptions.cpp: New test which
+ checks how ReactorEx deals with structured exceptions thrown by
+ user code
+
+ * ace/ReactorEx.cpp (safe_dispatch): Added protection against
+ structured exceptions caused by user code when dispatching
+ handles
+
+Thu Feb 20 17:32:54 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * apps/Gateway: Added a new -v flag to the peerd and gatewayd
+ applications so that they will print out the strings that are
+ passed to them. This makes it easier to debug and see what's
+ happening.
+
+Wed Feb 19 19:39:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp (recv): Removed
+ the VERBOSE #ifdefs since they weren't used and were causing
+ compile errors. Thanks to Bert Craytor
+ <Bert_Craytor@peoplesoft.com> for reporting this.
+
+Wed Feb 19 00:39:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * examples/ASX/Event_Server: Updated the README file a bit to
+ clarify some loose ends. The documentation now explains
+ precisely how to start up the transceivers correctly. Thanks to
+ Patty Genuald <genualdp@agcs.com> for suggesting this.
+
+ * include/makeinclude: Removed the default symlink for
+ platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to
+ Amos Shapira <amos@dsi.co.il> for reporting this.
+
+Wed Feb 19 14:41:18 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/Reactor.cpp: Modified to use timer_queue_->gettimeofday().
+
+ * ace/Proactor.cpp: Modified to use timer_queue_->gettimeofday().
+
+ * ace/ReactorEx.cpp: Modified to use
+ timer_queue_->gettimeofday(). Also had to modify the
+ ReactorEx_Notify mechanism to use the ReactorEx's timer queue to
+ call gettimeofday.
+
+ * ace/Timer_Queue.h: Added a gettimeofday method. This allows
+ applications to replace the timer mechanism used by the
+ Reactors. The default implementation returns
+ ACE_OS::gettimeofday. However, a real-time application can
+ inherit from Timer_Queue and override gettimeofday to return a
+ value from a high resolution timer.
+
+ * STL/bool.h: Changed the defines for type bool. First, bool is no
+ longer defined for WIN32 since yvals.h typedefs it already.
+ Also, I moved the defines out the namespace. I'm not sure if
+ that's the right thing to do.
+
+Tue Feb 18 16:41:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * include/makeinclude: Added minor enhancements to rules.local.GNU
+ and wrapper_macros.GNU so that it works with MVS. Thanks to
+ Chuck Gehr <gehr@sweng.stortek.com> for this.
+
+ * include/makeinclude: Added a new platform_mvs.GNU file that
+ supports builds on MVS! Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for this.
+
+ * tests/TSS_Test.cpp (worker): To get TSS_Test.cpp to compile on
+ MVS we changed line 69 from:
+
+ ACE_thread_key_t key = 0;
+
+ to:
+
+ ACE_thread_key_t key = ACE_OS::NULL_key;
+
+ and line 122 from:
+
+ key = 0;
+
+ to:
+
+ key = ACE_OS::NULL_key;
+
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
+ this.
+
+ * ace/Reactor.cpp (dispatch): Fixed the dispatching logic so that
+ we bail out as soon as we discover that our state has changed.
+ Thus, we'll recompute the fd_sets used for select().
+
+Tue Feb 18 19:02:53 1997 <irfan@cha-cha.cs.wustl.edu>
+
+ * ace/ReactorEx:
+
+ (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay
+ <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
+
+ (b) Change closed_for_business_ to open_for_business_. Also made
+ sure that open and close can potentially be called multiple
+ times from multiple threads.
+
+ (c) Changed unbind and unbind_all such that they iterate through
+ all the handles.
+
+ (d) Added a check to see if the handle has been scheduled for
+ deletion before dispatching it.
+
+Tue Feb 18 21:24:57 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/IOStream.h,README: replaced ACE_WIN32 conditional with
+ ACE_LACKS_IOSTREAM_FX.
+
+ * ace/config-{mvs,win*}.h: added #define ACE_LACKS_IOSTREAM_FX.
+ Thanks to Chuck Gehr <gehr@sweng.stortek.com> for pointing
+ out the need for this support for MVS.
+
+ * examples/Reactor/Misc/test_demuxing.cpp: removed unused
+ variable "done".
+
+ * examples/Reactor/Misc/test_signals_1.cpp (main),
+ examples/Reactor/Ntalker/ntalker.cpp (main):
+ added ACE_UNUSED_ARG (sig);.
+
+Tue Feb 18 17:15:24 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/ace.mdp, ace/mak: Modified release configuration to build
+ acer.dll.
+
+Tue Feb 18 11:43:04 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Log_Msg.cpp: removed destructor because it's not declared
+ and it's empty.
+
+ * ace/OS.i (thr_setprio): added another case (that is NOTSUP)
+ for platforms with Pthreads and with LACK_SETSCHED. Thanks to
+ Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
+
+ * tests/Reactor_Notify_Test.cpp (main): added shutdown flag so
+ that normal termination reaches ACE_END_TEST.
+
+ * tests/Reactors_Test.cpp (worker): changed "timeout" message to
+ "Reactor shutdown" because that indicates normal termination,
+ and won't fool the one-button test.
+
+ * examples/Mem_Map/IO-tests/test_io.cpp (main): added
+ ACE_UNUSED_ARG (sa);.
+
+ * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG
+ for sig1 and sig2.
+
+Tue Feb 18 03:50:10 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ReactorEx:
+
+ (a) Added a closed_for_business_ flag so that handle_events()
+ cannot be called after the ReactorEx has been closed down.
+
+ (b) Transfer of ownership of the ReactorEx to a new owner has
+ changed. The transfer will not complete until all threads
+ are ready for it (just like the handle set).
+ ReactorEx->update_state() now looks out for changes in
+ ownership.
+
+ * examples/Reactor/ReactorEx/test_MT.cpp:
+
+ (a) The test now terminates and number of iterations can be
+ specified on the command line.
+
+ (b) Graceful shutdown of ReactorEx is now exercised in the
+ test. This is a change for the earlier infinite loop. This
+ also shows how to gracefully close ReactorEx which is being
+ shared by multiple threads.
+
+ (c) Timers were added to the test.
+
+ * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF.
+
+Mon Feb 17 22:37:35 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
+
+ * ace/Log_Msg.h (ACE_RETURN): Modified all ACE_RETURN macros to
+ use ACE_OS::last_error instead of errno. This makes these more
+ portable to Win32.
+
+ * ace/Log_Msg.cpp (log): Modified Win32 version to use
+ FormatMessage if errnum is greater than sys_nerr.
+
+ * ace/OS.i (last_error): Modified Win32 version to return
+ GetLastError if errno == 0.
+
+Mon Feb 17 18:32:29 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.h: Protected the #ifdef for CLOCK_REALTIME so that it
+ won't conflict with an existing macro in AIX. Thanks to Chris
+ Lahey <CLahey@cccis.com> for this.
+
+ * ace/Local_Name_Space_T.h: Added Local_Name_Space.h to
+ Local_Name_Space_T.h so that templates will work correctly on
+ AIX. Thanks to Chris Lahey <CLahey@cccis.com> for this.
+
+ * tests: Added a new test, Reactor_Notify_Test.cpp, which tests
+ out the new max_notify_iterations() method on the Reactor.
+
+ * ace/Reactor: Finished rewriting and testing the new dispatching
+ logic of the Reactor. The new implementation guards against
+ pathological cases where ACE_Event_Handler::handle_*() methods
+ remove registered ACE_Event_Handler objects whose handles are
+ pending in the dispatch_set. Previously there was no good way
+ to guard against this. Now, it should be handled automatically.
+
+ * ace: Added many minor fixes to remove warnings with the SGI C++
+ compiler. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for
+ suggesting this.
+
+ * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all
+ the warnings for the SGI C++ compiler. Thanks to Gonzalo
+ Diethelm <gonzo@ing.puc.cl> for suggesting this.
+
+Mon Feb 17 20:59:47 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/IOStream.h: added null ipfx (), etc., methods for ACE_WIN32
+ because its iostream class doesn't have them.
+
+ * ace/OS.h: added #include of <netinet/tcp.h> on VxWorks.
+
+ * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that
+ OS.h #includes <netinet/tcp.h>.
+
+ * ace/ReactorEx.h: made ACE_ReactorEx_Handler_Repository destructor
+ virtual because the class has other virtual functions.
+
+ * tests/IOStream_Test.cpp: removed ACE_WIN32 #ifndef, and
+ removed q_char bool conversion operator because it shouldn't
+ be needed.
+
+ * examples/Reactor/Misc/pingpong.cpp (handle_input): cast buf_len
+ to ssize_t to avoid signed/unsigned comparison.
+
+ * examples/Service_Configurator/IPC-tests/client/\
+ remote_dgram_client_test.cpp (main): cast mmap.size () to
+ ssize_t to avoid signed/unsigned comparison.
+
+Mon Feb 17 09:25:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/config-linux-lxpthreads.h: Bumped the Linux kernel version
+ number assigned to the symbol LINUX. Also added conditional
+ defines for PTHREAD_{MAX,MIN}_PRIORITY when using Xavier Leroy's
+ LinuxThreads.
+
+ * ace/Thread_Priority.cpp: Added convert_to_os_priority() for Linux.
+
+Mon Feb 17 03:15:48 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * tests/SOCK_Test.cpp (server): Changed recv_n() to recv().
+
+ * tests/tests.{mak,mdp}: Added two new tests: IOStream and
+ Reactor_Notify.
+
+ * ace/Reactor: Removed all special checks for setting
+ ACE_Reactor::max_notify_iterations_ on WIN32 to be 1. This was
+ made possible after we figured out that the errno was being
+ reset after the recv() call in handle_input(). This allows
+ ACE_Reactor_Notify::handle_input() to serve upto
+ ACE_Reactor::max_notify_iterations_ notifications in one shot
+ rather than just 1 on WIN32. This should speed up the Reactor on
+ WIN32 platforms.
+
+Sun Feb 16 12:23:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Reactor.cpp: Totally rewrote the ACE_Reactor's dispatching
+ mechanism so that it now keeps track of whether the state of the
+ wait_set_ has changed during a dispatch (i.e., whenever
+ register_handler_i() or remove_handler_i() is called). If the
+ wait_set_ state *has* changed, then we bail out and rerun
+ select() in order to get the latest changes.
+
+ * ace/Reactor.cpp: Changed the implementation of the
+ ACE_Reactor_Notify class so that (1) it short-circuits a trip
+ through the ACE_Reactor::notify_handle() method (after all, it's
+ just going to call its own handle_input() method back) and (2)
+ the ACE_Reactor_Notify::handle_input() method now returns a
+ count of the number of handlers that it dispatched.
+
+ * ace/Log_Msg.h: Added a (%P|%t) so that we now print out the
+ process id and thread number for failed ACE_ASSERT() calls.
+
+ * tests: Removed the unnecessary template specializations of
+ ACE_Atomic_Op<ACE_Thread_Mutex, int> since this is already done
+ in libACE.
+
+ * ace/Reactor.cpp: Removed the #ifdef preventing the enabling of
+ non-blocking mode for the recv() side of the Reactor's
+ notification pipe (socket) for Win32. I believe that with the
+ new max_notify_iterations scheme we should be all set.
+
+ * ace/ReactorEx.cpp: Added an identical API for bounding the
+ max_notify_iterations() for ReactorEx.
+
+ * ace/Reactor.cpp: Enhanced the Reactor's notify() mechanism so
+ that it is now possible to set the max_notify_iterations(),
+ which limits the number of times that the
+ ACE_Reactor_Notify::handle_input() method will iterate and
+ dispatch the ACE_Event_Handlers that are passed in via the
+ notify pipe before breaking out of its recv() loop. This is
+ necessary to keep from starving out other Event_Handlers.
+ Thanks to Rod Skinner <rods@in.ot.com.au> for pointing out the
+ need for this.
+
+ * ace/Reactor.cpp: Fixed a bug in the WIN32
+ ACE_Reactor_Notify::handle_input() logic. We were calling
+ requeue_position(0) when we should have been calling renew().
+
+Sat Feb 15 11:46:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/ACE.cpp: It appears that VxWorks doesn't support fcntl().
+ However, it does seem to support ioctl(). Therefore, that's how
+ we'll set the descriptors into non-blocking mode. Thanks to
+ Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
+
+ * ace/SOCK_Stream.h: Corrected the documentation for
+ ACE_SOCK_Stream::recv_n (void *buf, size_t len, int flags, const
+ ACE_Time_Value *timeout). Thanks to Paul Roman
+ <proman@npac.syr.edu> for reporting this.
+
+ * ace/SOCK_Stream.i (recv_n): Fixed a minor bug in the
+ SOCK_Stream.i line 38:
+
+ ACE_TRACE ("ACE_SOCK_Stream::send_n");
+
+ should be
+
+ ACE_TRACE ("ACE_SOCK_Stream::recv_n");
+
+ Thanks to Paul Roman <proman@npac.syr.edu> for reporting this.
+
+Fri Feb 14 00:40:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/TTY_IO.cpp (control): Moved the drop out timer value from
+ the ACE struct to the WinNT struct. Thanks to Brad Flood
+ <BFLOOD@tcs.lmco.com> for this fix.
+
+Thu Feb 13 21:24:17 1997 <irfan@cha-cha.cs.wustl.edu>
+
+ * ace/OS.i (event_wait): Fixed the missing check for success.
+
+ * ace/Synch: Fixed problems with multiple removal of
+ resources. Thanks to Bert (Bcraytor@aol.com) for pointing this
+ out.
+
+ * examples/Threads/test.{mdp,mak}: Reorganized project so that it
+ is easier to use.
+
+ * examples/Threads: Small changes to make tests run faster.
+
+Thu Feb 13 01:49:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/OS.i (stat): Added stat() to ACE_OS.
+
+ * apps/jaws: The ACE web server has now been ported to Win32.
+
+ * ace/ReactorEx: Add a new version of remove_handler().
+
+ * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only
+ <concurrent_threads> are activated.
+
+Wed Feb 12 22:58:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/ReactorEx: Made minor changes to the ReactorEx.
+
+ * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new
+ ReactorEx test to use ACE_Tasks.
+
+Wed Feb 12 00:08:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ReactorEx: Finished a complete rewrite of
+ ReactorEx. The new version allows multiple threads of
+ control to wait simultaneously in
+ ::WaitForMultipleObjects(). This was difficult because the
+ set of ACE_HANDLEs used in ReactorEx->handle_events() is
+ shared between all threads. We devised a clever protocol
+ that ensures all changes to the handle set are
+ serialized. This serialization was achieved by using
+ multiple (auto and manual) events and mutexes and by taking
+ advantage of the "waitAll" semantics of
+ WaitForMultipleObjects().
+
+ Concept of "owner" thread is introduced in ReactorEx. We
+ need to keep track of the "owner" because we don't want
+ multiple threads to try to expire timers. Therefore the
+ "owner" thread is the only one allowed to expire
+ timers. Also, the owner thread is the only thread which
+ waits on the internal notify handle (which is used to
+ dispatch explicit calls to
+ ACE_ReactorEx::notify(). Initially, the creator thread of
+ ReactorEx becomes the "owner" thread. Ownership can later be
+ transferred among threads, just as with the standard
+ ACE_Reactor.
+
+ We also updated the Handler Repository since it now
+ keeps track of <handle, event_handler> tuples to be added
+ and deleted from the current handle set at the appropriate
+ time (i.e., when all threads are out of
+ WaitForMultipleObjects() and have completed all necessary
+ dispatching). The Handler_Repository implements the update
+ protocol that is used to serialize changes to its internal
+ state.
+
+ Two slots were added to the <size> parameter in the
+ constructor and open methods of ReactorEx that will store
+ handles used for internal management. Therefore, users can add
+ upto MAXIMUM_WAIT_OBJECTS - 2 handles into ReactorEx. On
+ current WinNT platforms (e.g., 3.51 and 4.0)
+ MAXIMUM_WAIT_OBJECTS is 64.
+
+ Note that the interface to ReactorEx did not change in this
+ process. Your existing code should work without changes.
+ Moreover, we've optimized the implementation so that if only
+ 1 thread calls ACE_ReactorEx::handle_events() the code is
+ very efficient. Moreover, you can dynamically add or remove
+ threads without having to register them with the ReactorEx.
+
+ * examples/Reactor/ReactorEx/test_MT.cpp: This application tests
+ multiple threads simultaneously calling
+ ReactorEx->handle_events(). It also shows how different threads
+ can update the state of ReactorEx.
+
+Wed Feb 12 00:08:42 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
+
+ * ace/Synch: Added a remove() call to ~ACE_Thread_Mutex so that it
+ will be removed (and resources cleaned up) automatically when an
+ ACE_Thread_Mutex object goes out of scope. Thanks to Jay
+ Denkberg <jay_denkberg@mail.icomverse.com> for reporting this.
+
+ * ace: Added a new config file (config-irix6.2-sgic++-nothreads.h)
+ that works for non-Pthread versions of SGI 6.2. Thanks to Fred
+ LaBar <flabar@fallschurch.esys.com> for this.
+
+ * ace/XtReactor: Fixed a bunch of minor bugs that crept into the
+ ACE_XtReactor. Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> for reporting this.
+
+ * ace/OS.i (thr_getprio): Fixed a typo in the #ifdefs so that we
+ return ACE_NOTSUP_RETURN(-1) if threading isn't enabled. Thanks
+ to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
+
+Tue Feb 11 11:26:03 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,i},config-vxworks*.h,README: added ACE_HAS_CLOCK_GETTIME,
+ and only support ACE_OS::clock_gettime if that's defined.
+ It can be supported on Solaris 2.5, but -lposix4 is then required.
+
+ * ace/Thread_Priority.*: added increment () and decrement ()
+ operations.
+
+ * include/makeinclude/platform_sunos5_sunc++_4.1.GNU:
+ added -pta back to avoid link problems with template classes
+ that have virtual functions that are all inline, if inlining
+ is disabled. Though we don't see the problem, other 4.1 users do.
+ Thanks to mscallinan@CCGATE.HAC.COM for reporting this.
+
+ * examples/Logger/simple-server/Logging_Handler.cpp (handle_input):
+ cast "len" to ssize_t to prevent mixed signed/unsigned comparison.
+
+ * examples/Logger/simple-server/server_loggerd.cpp (main):
+ added ACE_UNUSED_ARG (sa);.
+
+ * examples/Reactor/Misc/notification.cpp (Thread_Handler ctor):
+ changed type of n_threads argument from int to size_t to avoid
+ signed/unsigned comparison.
+
+Mon Feb 10 15:27:02 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Timer_Queue: Added a virtual destructor so that subclasses
+ deleted via ACE_Timer_Queue *'s will call the right destructor.
+ Thanks to Stuart Powell <stuartp@in.ot.com.au> for reporting
+ this.
+
+ * ace/Timer_Heap.cpp: Added support for automatically growing
+ ACE_Timer_Heaps. This allows heaps to grow automatically as new
+ ACE_Event_Handlers are added dynamically. Thanks to Stuart
+ Powell <stuartp@in.ot.com.au> for this enhancement.
+
+ * ace/Memory_Pool: Added support that allows flags to be passed in
+ to the MMAP_Memory_Pool. This can be used to set the
+ appropriate type of backing store semantics (e.g., MAP_PRIVATE
+ and MAP_SHARED). Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> for providing this.
+
+Sun Feb 9 11:56:37 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
+
+ * ace/Map_Manager.cpp (bind_i): A recent change to Map_Manager
+ broke the Connector since errno was getting set to ENOENT rather
+ than EWOULDBLOCK. Thanks to Mark Rabotnikov
+ <mark@usp.elscintcorp.co.il> for finding this.
+
+Sun Feb 09 21:44:34 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/ACE.{h,cpp}: added static u_long is_prime ().
+
+ * ace/{OS.cpp,Thread_Priority.cpp}: added comment about thread
+ priorities only being tested for 1003.1C version of Pthreads.
+ Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
+ for suggesting this.
+
+ * ace/OS.{h,i}: added ACE_OS::clock_gettime (). It allows
+ applications to get high-resolution time on POSIX systems.
+
+ * ace/Future.cpp (dump): cast ref_count_ to an int because
+ g++ doesn't figure it out (it's an ACE_Atomic_Op<ACE_Thread_Mutex,
+ int>, which does have an int conversion operator).
+
+ * ace/Timer_List.cpp (constructor): added initializer for
+ timer_id_ to prevent unitialized memory read report from Purify.
+
+ * tests/IOStream_Test.cpp,Makefile: added IOStream_Test,
+ complements of James CE Johnson <jcej@lads.com>. Very cool!
+
+ * tests/Future_Test.cpp: replaced call to ::sin ()
+ with one to ACE::is_prime () to remove dependency on libm.
+
+ * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1, peer2): removed
+ unused variables c_addr and serv_addr: they were replaced by
+ a global.
+
+ * examples/Threads/future{1,2}.cpp: replaced call to ::sin ()
+ with one to ACE::is_prime () to remove dependency on libm.
+
+ * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: removed
+ #include of math.h, it wasn't needed.
+
+Sat Feb 08 15:19:50 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/ReactorEx.h: commented out ACE_ReactorEx_Notify::message_queue_
+ declaration if not ACE_WIN32 because Sun C++ chokes on it.
+
+ * examples/IPC_SAP/{FILE,SPIPE}_SAP/client.cpp: declare "len" as
+ ssize_t to avoid signed/unsigned comparison.
+
+Fri Feb 7 01:13:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i (select): Simplified Chris' fixes for the weird
+ Linux select() semantics.
+
+ * ace/OS: Added a new accessor method called waiters() in
+ ACE_cond_t that returns the number of waiters on the condition
+ variable. Thanks to Karlheinz for suggesting this.
+
+ * ace/OS: Changed all the ACE_cont_t, ACE_rwlock_t, etc. so that
+ their fields are private, but made class ACE_OS a friend.
+ Applications should not be mucking with these fields since they
+ may change.
+
+ * ace/OS.h: Fixed a minor typo where friend class ACE_rwlock_t
+ should be friend class ACE_OS. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for reporting this.
+
+ * ace/Log_Msg.cpp: Added a destructor to ACE_Log_Msg and changed
+ ACE_TSS_cleanup so that it calls delete (ACE_Log_Msg *) ptr.
+ Thanks to Per Anderson <Per.Andersson@hfera.ericsson.se> for
+ reporting this.
+
+ * tests/Map_Manager_Test.cpp: Create a file Map_Manager_Test_Key.h
+ and move the class Key into the include file. Include this *.h
+ file in Map_Manager_Test.cpp. This is needed for template
+ generation on AIX. Thanks to Chris Lahey <CLahey@cccis.com> for
+ pointing this out.
+
+Fri Feb 7 17:29:40 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.cpp (set_sched_params): added support for POSIX
+ threads. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for figuring it out and
+ for providing the code.
+
+ * tests/Naming_Test.cpp (test_find): Changed final delete[] to
+ not try to delete a static buffer. :-(
+
+ * tests/SOCK_Test.cpp (server): Added assertion test for
+ modified select timeval.
+
+Fri Feb 07 13:56:24 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority
+ support for Digital Unix. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for figuring the priorities
+ and priority classes out and for providing the code.
+
+ * ace/High_Res_Timer.{h,cpp},config-linux*.h,README:
+ use struct timespec instead of timespec_t, because not all
+ platforms have the timespec_t typedef. Thanks to
+ Marius Kjeldahl <marius@funcom.com> for reporting this on Linux
+ and Chris Lahey <CLahey@cccis.com> for reporting it on AIX.
+
+ * ace/IOStream.h: use "ssize_t send (...)", etc., instead of exact
+ function prototypes.
+
+ * examples/IPC_SAP/TLI_SAP/db-server.cpp: declare struct member as
+ const char * instead of const char [] because it's not static and
+ the struct doesn't have constructors.
+
+ * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
+ reordered initializers to match declaration order.
+
+Fri Feb 07 05:08:51 1997 <irfan@cha-cha.cs.wustl.edu>
+
+ * ace/Synch.cpp (dump): Fixed access error.
+
+ * ace/OS.h: Fixed ACE_rwlock_t friend declaration.
+
+ * ace/OS.i: Moved ACE_cond_t::waiters() such that it is now
+ visiable to NT. Also fixed ACE_OS::cond_timed_wait by returning
+ the correct return value on a TIMEOUT. Also fixed typo in
+ ACE_OS::sema_wait.
+
+Thu Feb 6 20:25:13 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/OS.i (select): Adapted ACE_OS::select methods for use on
+ platforms (such as Linux) that allow select(2) to modify its
+ struct timeval arg. New behavior is triggered by the define
+ ACE_HAS_NONCONST_SELECT_TIMEVAL. Thanks to Jorn Jensen
+ <jornj@funcom.com> for reporting this!
+
+Thu Feb 06 09:48:43 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos-sun*.h,README: added
+ ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR.
+
+ * ace/IOStream.{h,cpp}: support
+ ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR
+ so that this builds with SunC++.
+
+ * examples/IOStream/client/iostream_client.cpp:
+ reordered args and fixed argv indexes.
+
+ * examples/IOStream/server/iostream_server.cpp:
+ use ACE_DEFAULT_SERVER_PORT for default port.
+
+ * tests/Naming_Test.cpp (randomize): changed type of "size" arg to
+ size_t to avoid compiler warnings about signed/unsigned comparison.
+
+Thu Feb 06 09:40:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * ace/config-linux*.h: added typedef of timespec_t.
+
+Wed Feb 5 01:45:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i: Changed the Win32 implementation of all methods that call
+ WaitForMultipleObjects() so that errno is set to
+ WAIT_ABANDONED if the mutex is abandoned. This makes it
+ possible for users to understand why ACE_OS methods that use
+ synchronization operations fail. Thanks to Ivan Murphy
+ <Ivan.Murphy@med.siemens.de> for reporting this problem.
+
+ * ace/IOStream.cpp (ACE_Streambuf): Moved the const initialization
+ from the header file to the constructor since this is the only
+ portable way to do this. Thanks to Michael Maxie
+ <maxie@acm.org> for reporting this.
+
+ * ace/OS.i: Updated the call to thr_setprio() for pthreads so that
+ it first determines the existing scheduling parameters and then
+ updates the priority. Thanks to Thilo Kielmann
+ <kielmann@informatik.uni-siegen.de> for help with this.
+
+ * ace/config-osf1-4.0*.h: Updated ACE_NEEDS_HUGE_THREAD_STACKSIZE
+ to be 1 mega to minimize porting surprises. Thanks to Thilo
+ Kielmann <kielmann@informatik.uni-siegen.de> for help with this.
+
+ * tests/Naming_Test.cpp: Cleaned up a few minor things related to
+ int i = 0 vs. size_t i = 0.
+
+ * ace/SOCK_Dgram.cpp: Added a new macro called
+ ACE_HAS_SOCKADDR_MSG_NAME, which is used on platforms (e.g.,
+ DG/UX) that require a cast to (struct sockaddr *) for the
+ msg_name field of struct msghdr.
+
+Wed Feb 05 10:45:41 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/IOStream.h: replaced __*manip with expanded types, because
+ Sun C++ doesn't have those typedefs; and added complete prototypes
+ for send, recv, send_n, and recv_n.
+
+ * ace/IOStream.cpp: fixed "#define ACE_IOSTREAM_C" to keep g++ sane.
+
+ * ace/Hash_Map_Manager.{h,cpp},Map_Manager.{h,cpp}: replaced
+ DEFAULT_SIZE with ACE_DEFAULT_MAP_SIZE so that Naming_Test runs
+ on SunC++ 4.1.
+
+ * ace/High_Res_Timer.*: added optional scale factor.
+
+ * examples/IOStream/{client,server}/Makefile: addd -g++ if building
+ with gcc.
+
+ * tests/Naming_Test.cpp: moved declaration of "i" out of for loop
+ because it is used after the loop.
+
+ * examples/ASX/UPIPE_Event_server/{Consumer,Supplier}_Router.cpp
+ (open): return 1 if init () succeeds. There's a commented-out
+ call to activate the objects that would (should?) return a value.
+
+ * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp (main): declare n
+ as ssize_t instead of size_t to avoid compiler warning about
+ signed/unsigned comparison.
+
+Tue Feb 4 19:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Signal.cpp: Fixed all the ACE_Sig_Handler[s] methods so that
+ they now use ACE_Guard, rather than ACE_TSS_Guard, *unless* they
+ are actually performing callbacks to user-code. Not only is
+ this faster, but it also avoids thread-specific storage key
+ leaks on platforms like Solaris!
+
+ * ace/OS.cpp (thr_keyfree): Added a new #ifdef for
+ ACE_HAS_THR_KEYDELETE, which is defined for UNIXWARE. This
+ fixes a nasty problem with leaking thread-specific keys. Thanks
+ to Nigel Owen <Nigel@voicelink.co.nz> for reporting this.
+
+ * ace/Message_Block.cpp: Added a #include for
+ "ace/Service_Config.h".
+
+ * ace/Malloc.i: Fixed a few warnings by removing the names of
+ unused parameters.
+
+ * ace: Added many minor changes to ACE so that it will work on
+ DG/UX. Thanks to Michael Maxie <maxie@acm.org> for all these.
+
+ * ace/LSOCK_Stream.cpp: Applied the same fix as to LSOCK.cpp.
+
+ * ace/LSOCK.cpp: Removed the cast of 0 to (char *) for msg_name
+ since some platforms use (struct sockaddr *). By omitting the
+ cast the compiler will figure it out correctly. Thanks to
+ Michael Maxie <maxie@acm.org> for this.
+
+ * ace/IOStream: Added a new template adapter for creating an
+ iostream-like object using an ACE IPC Stream for the actual I/O.
+ Thanks to James CE Johnson <jcej@lads.com> for this.
+
+ * examples/Misc/test_iostreams.cpp: Added a test that illustrates
+ how the new ACE_iostreams mechanism works. Thanks to James CE
+ Johnson <jcej@lads.com> for this.
+
+ * ace/Message_Block: Updated the ACE_Message_Block implementation
+ to use ACE_Service_Config::alloc() if the user doesn't supply a
+ customize version. This also means that we never delete the
+ allocator_strategy_, so we can remove this flag and reduce the
+ amount of storage by 4 bytes. Thanks to Irfan for noticing that
+ we can do this.
+
+ * ace/platform_dgux4_epc.h: Added a new platform config file
+ for DG/UX. Thanks to Michael Maxie <maxie@acm.org> for
+ this.
+
+ * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX.
+ Thanks to Michael Maxie <maxie@acm.org> for this.
+
+Tue Feb 04 18:26:01 1997 <irfan@cha-cha.cs.wustl.edu>
+
+ * ace/Service_Config.cpp (alloc): The implementation now creates a
+ ACE_New_Allocator rather than a ACE_Allocator_Adaptor. If
+ you still want the old behavior, simply provide your own
+ custom allocator singleton for ACE_Service_Config.
+
+ * ace/OS.i (mktemp): Added the missing ACE_INLINE directive.
+
+ * ace/OS.h: ACE_HAS_INLINED_OSCALLS is now automatically defined
+ when __ACE_INLINE__ is defined. This avoids mysterious linking
+ problems that occur otherwise.
+
+ * ace/Malloc: Added a virtual destructor to ACE_Allocator. Also
+ added a new class ACE_New_Allocator which is a sub-class of
+ ACE_Allocator. This class uses the new/delete operators to
+ allocate and free up memory. Please note that the only methods
+ that are supported are malloc() and free(). All other
+ methods are no-ops. If you require more functionality, please use:
+ ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL,
+ MUTEX>> This will allow you to use the added functionality of
+ bind/find/etc. while using the new/delete operators.
+
+Mon Feb 3 15:35:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/config-aix-*.h: Added a (char *) cast to
+ ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby
+ <John.D.Cosby@cpmx.saic.com> for reporting this.
+
+ * ace/OS.cpp: Added a new set() method that sets the Time_Value
+ from a double. Thanks to Brad Flood for this suggestion.
+
+ * ace/OS: Changed ACE_OS::flock_t to ACE_OS::ace_flock_t to avoid
+ a name clash on DG/UX. Thanks to Michael Maxie <maxie@acm.org>
+ for reporting this.
+
+Tue Feb 4 03:02:52 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * tests/Naming_Test.cpp: Added timing and made debug print outs
+ optional. Also added randomization of the test data.
+
+ * ace/OS.h: Fixed prototype for gethrtime ()
+
+Mon Feb 03 21:00:56 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD
+ even if ACE_HAS_THREADS is not defined. Thanks to
+ Michael Maxie <maxie@acm.org> for pointing this out.
+
+ * examples/Threads/{process_mutex.cpp,process_semaphore.cpp,
+ task_three.cpp,thread_manager.cpp,thread_specific.cpp} (main):
+ added ACE_UNUSED_ARG (sa);.
+
+ * examples/Threads/reader_writer.cpp: fixed declaration of
+ "shared_data" to be "static volatile" instead of "volatile
+ static", and removed unused variable "n".
+
+ * examples/Threads/thread_pool.cpp: removed unused variable "result".
+
+Sun Feb 02 21:24:02 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: changed hrtime_t to ACE_hrtime_t.
+
+ * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to
+ enable gethrtime () support.
+
+ * ace/High_Res_Time.{h,i,cpp}: removed platform-specific #ifdef's,
+ instead added "unsupported ()" static member function; changed
+ changed signature of elapsed_time to take time reference as
+ argument instead of return value; added elapsed_time
+ (ACE_Time_Value &) and elapsed_time_incr (ACE_Time_Value &).
+
+ * examples/Thread/context_switch.cpp: use ACE_High_Res_Timer
+ instead of the old Timer adapter.
+
+ * ace/config-aix-4.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T.
+
+ * ace/config-aix-4.2.x.h: added #define ACE_HAS_LONGLONG_T.
+
+ * ace/Thread_Priority.{h,cpp}: moved #include of OS.h from .cpp
+ to .h file.
+
+Sun Feb 02 10:30:29 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Local_Name_Space.cpp: removed ACE_Map_Manager, ACE_Map_Iterator,
+ and ACE_Map_Entry: they don't appear to be used and, without
+ including their headers, this file won't compile.
+
+ * ace/Hash_Map_Manager.cpp (Hash_Map_Manager (ACE_Allocator *)):
+ reordered initializers to match declaration order.
+
+Sat Feb 1 15:11:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro
+ flag since it is no longer needed. Thanks to Rob Jordan
+ <jordan@hursley.ibm.com> for reporting this.
+
+Sat Feb 1 03:25:21 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/SString.cpp: Added two methods to the wide string
+ implementation for high-performance. Even though these methods
+ are somewhat ugly and not the "OO" way of doing things,
+ performance was at stake here.
+
+ * ace/Registry_Name_Space.cpp (resolve): Fixed the implementation
+ by correctly figuring out the size of the value in the
+ Registry. This allows us to dynamically allocated the correct
+ amount of memory.
+
+ * ace/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the
+ maximum path length.
+
+ * ace/Naming_Context.cpp: Fixed various memory leaks.
+
+ * ace/Local_Name_Space_T.h: Replaced the simple-minded Map_Manager
+ with the new (improved) Hash_Map_Manager.
+
+ * ace/Local_Name_Space.cpp: Added new methods operator!= and hash
+ required by the map.
+
+ * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra
+ constructor.
+
+ * tests/Naming_Test.cpp: Removed memory leaks.
+
+Fri Jan 31 19:39:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Hash_Map_Manager.cpp (ctor): reordered initializers
+ to match declaration order.
+
+ * tests/Time_Value_Test.cpp: cast double argument to long
+ because there no longer is a constructor that takes a double.
+
+ * ace/Hash_Map_Manager.{h,cpp}: removed #include of
+ ace/Hash_Map_Manager.i because it doesn't exist.
+ Protected .cpp file against multiple includes. Moved
+ #include of "ace/Malloc.h" from .h to .cpp file.
+
+ * ace/Map_Manager.cpp (current_size, total_size): cast -1 to
+ size_t to avoid warning about signed-to-unsigned conversion.
+
+ * ace/OS.h: moved hrtime_t typedef for ACE_WIN32 so it doesn't
+ get defined twice.
+
+ * ace/OS.i (getservbyname): one last ACE_HAS_NONCONST_GETBY change:
+ missed "lproto" to "proto".
+
+ * bin/create_ace_build: added checks for existing symlinks, so
+ now the script can be re-run safely at any time on a build
+ tree to update it.
+
+Fri Jan 31 02:16:30 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/config-aix-*.h: Made the default value for
+ ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions
+ with AIX. Thanks to Rob Jordan <jordan@hursley.ibm.com> for
+ this.
+
+ * examples/Map_Manager: Added a new example of the
+ Hash_Map_Manager.
+
+ * tests/Map_Manager: Integrated the Hash_Map_Manager into the
+ Map_Manager test and greatly improved the test (e.g., by adding
+ timing).
+
+ * ace: Added a new implementation of the Map_Manager called
+ Hash_Map_Manager. This, of course, uses hashing rather than
+ linear search. The result should be a much faster
+ implementation for many types of applications.
+
+Thu Jan 30 13:55:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Map_Manager: Changed the return type of total_size() and
+ current_size() to size_t.
+
+ * ace/OS: Had to remove the ACE_Time_Value (double) constructor
+ since it caused ambiguities with ACE_Time_Value (long). Thanks
+ to Per Andersson for figuring this out.
+
+ * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Added
+ -D_REENTRANT to make things work correctly in MT programs.
+ Thanks to Marius for this fix.
+
+ * ace/OS.h: Added several extra constructors for ACE_Time_Value so
+ that it won't cause problems with the new ACE_Time_Value
+ (double) constructor.
+
+ * ace/Log_Record.cpp (ACE_Log_Record): Added an "L" to the 0
+ initial value used for time_stamp_. Thanks to Marius for
+ reporting this.
+
+ * ace: Added the new config-aix-4.2.x.h file, which supports the
+ AIX4.2 platform. Thanks to Rob Jordan <jordan@hursley.ibm.com>
+ for this.
+
+ * include/makeinclude/platform_aix4.2.GNU: Added support for the
+ new AIX4.2 platform. Thanks to Rob Jordan
+ <jordan@hursley.ibm.com> for this.
+
+ * ace/OS.h: It's now possible to override ACE_DEFAULT_BASE_ADDR in
+ a config.h file. This is important for platforms that need to
+ put shared memory segments at particular address ranges. Thanks
+ to Rob Jordan <jordan@hursley.ibm.com> for suggesting this.
+
+Thu Jan 30 16:01:37 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/{config-aix-4.1.x.h,README}: added ACE_HAS_AIX_HIRES_TIMER,
+ see change to gettimeofday in OS.i below; and ACE_HAS_LONGLONG_T.
+
+ * ace/OS.i (gettimeofday, gethrtime): use read_real_time () if
+ ACE_HAS_AIX_HIRES_TIMER. Thanks to Bob Olson
+ <olson@mcs.anl.gov> for this suggestion.
+
+ * ace/OS.h: define hrtime_t as long long if ACE_HAS_AIX_HIRES_TIMER.
+
+ * ace/OS.{i,cpp}: uninlined ACE_OS::gethostbyname (),
+ and ACE_OS::inet_ntoa () on VxWorks, because they have
+ static char arrays.
+
+ * ace/OS.i (gethostbyaddr, getservbyname, gethostbyaddr,
+ gethostbyname, getservbyname_r): with ACE_HAS_NONCONST_GETBY,
+ instead of copying the const argument, just cast it to (char *).
+ Thanks to Michael Maxie <maxie@acm.org> for pointing out the
+ problem with the nonstatic char arrays with sizes determined at
+ runtime.
+
+ * ace/High_Res_Timer.*: added ACE_HAS_AIX_HIRES_TIMER support.
+ Also, renamed get_time () to elapsed_microseconds ().
+
+ * examples/Threads/{Timer.h,context_switch_time.cpp}:
+ ACE_High_Res_Timer::elapsed_microseconds () instead of
+ ACE_High_Res_Timer::get_time ().
+
+ * bin/create_ace_build: added this script: it creates an ACE build
+ tree in directory "build/<build name>" below the current
+ directory, which must be a ACE "top level" directory (such as
+ $WRAPPER_ROOT). The build tree directory structure mirrors that
+ of the ACE top level directory structure, except that instead of
+ containing any plain files, it contains only symlinks to the files
+ in the ACE top level structure.
+
+Thu Jan 30 06:57:50 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Thread_Priority.cpp (convert_to_os_priority): changed
+ switch (priority_class) to switch (priority_class_).
+ Thanks to Chris Lahey <CLahey@cccis.com> for pointing this out.
+ Also, return -1 on other than Solaris, Win32, and VxWorks.
+
+Wed Jan 29 22:05:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests/Naming_Test.cpp: Added the prefix "test_" to the bind(),
+ find(), rebind(), and unbind() functions. This avoids name
+ clashes with the bind() call from the socket API. Thanks to
+ Marius for this info.
+
+ * ace/OS.cpp (ACE_Time_Value): Added a new constructor that makes
+ it possible to construct an ACE_Time_Value from a double.
+ Thanks to Brad Flood <BFLOOD@tcs.lmco.com> for this.
+
+ * ace/OS.i (thr_join): If ACE_HAS_THREADS is defined, but none of
+ the threading APIs match (e.g., AIX) then we'll return
+ ACE_NOTSUP_RETURN(-1). Thanks to Chris Lahey for help with
+ this.
+
+ * include/makeinclude/platform_aix.GNU: Made some changes to the
+ type of dynamic linker and libraries used by AIX 4.1. Thanks to
+ Chris Lahey for help with this.
+
+ * ace/config-aix-4.1.x.h: Changed from BSD 4.3 to 4.4. Thanks
+ to Chris Lahey for help with this.
+
+Wed Jan 29 09:03:48 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: moved ACE_id_t and ACE_pri_t typedefs out of the
+ ACE_HAS_THREADS section.
+
+ * ace/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks.
+
+ * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated
+ comments.
+
+ * examples/Threads/{context_switch_time.cpp,Timer.h,Makefile}:
+ added context switch timing test. Currently only works on
+ Suns because that's the only platform for which ACE has a
+ high-resolution timer.
+
+ * Makefile: added chmod of VERSION file in TIMESTAMP macro.
+
+Wed Jan 29 00:59:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Removed
+ the -D_MIT_POSIX_PTHREADS symbol since we're using Xavier's
+ threads instead. Thanks to Marius Kjeldahl <marius@funcom.com,
+ mariusk@sn.no> for reporting this.
+
+ * ace/config-linux-lxpthreads.h: Removed the _MIT_POSIX_PTHREADS
+ symbol since we're using Xavier's threads instead. Thanks to
+ Marius Kjeldahl <marius@funcom.com, mariusk@sn.no> for reporting
+ this.
+
+Tue Jan 28 23:32:58 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/SString: Added hash() methods to each ACE String class so
+ that we can use this with the new ACE_Hash_Set implementation of
+ ACE_Map_Manager.
+
+ * ace/ACE.h (ACE): Added a UNICODE version of hash_pjw() so that
+ we can use it to hash ACE_WString.
+
+ * ace/OS.i (thr_setprio): Fixed a typo that was left over from a
+ previous change. Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> for reporting this.
+
+ * apps/Gateway/Gateway/{proxy_config,consumer_config}: Added
+ comments to these config files so they are easier to understand.
+ Thanks to Chuck Gehr for motivating this.
+
+ * apps/Gateway/Peer/Peer.cpp: Changed the name from connection_id_
+ to proxy_id_, which is more accurate.
+
+ * apps/Gateway/Peer/Peer.cpp: Added a destructor to Peer_Handler
+ so that it can clean itself up properly when shutdown with a
+ signal. This fixes a nasty bug.
+
+ * ace/config-win32-msvc4.x.h (ACE_HAS_MFC): By default, ACE now
+ enables ACE_HAS_MFC. This makes it possible to use
+ AfxBeginThread() with the ACE_THR_AFX flag.
+
+ * ace/OS.cpp: Fixed a typo in the call to ::AfxBeginThread()
+ function. Thanks to Karlheinz for reporting this.
+
+ * apps/Gateway/Peer/Peer.cpp: Removed all uses of the Map_Manager
+ from the Peer. There's only ever one connection from a Gateway
+ per-Peer, so what was this doing here anyway?! It was causing
+ problems due to multiple deletions, so removing it improves
+ robustness of the tests.
+
+ * ace/OS.i: Commented out the "extern char **_sys_siglist"
+ definition since this was conflicting with the definition in
+ Solaris. If some platforms needs this, we'll need to add a
+ specific #ifdef.
+
+Tue Jan 28 21:57:45 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.{h,cpp}: added ACE_OS::set_sched_params (). It permits
+ platform-independent setting of thread priorities and
+ priority classes. It is currently supported on Solaris,
+ Win32, and VxWorks.
+
+ * ace/Scheduling_Parameters.{h,i,cpp},
+ ace/Thread_Priority.{h,i,cpp}, ace/Makefile:
+ Added these two classes to support ACE_OS::set_sched_params ().
+
+Tue Jan 28 12:42:39 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags.
+
+ * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe.
+
+ * tests/Pipe_Test.cpp (main): Added an iteration count to control
+ the number of children created by the main process.
+
+ * ace/Memory_Pool.cpp (init_acquire): cast this->minimum_bytes_ to
+ size_t to avoid compiler warning if size_t is unsigned.
+
+ * ace/OS.h: Added strncat to the OS class.
+
+Tue Jan 28 09:13:00 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/ACE.cpp (ACE::ldfind),
+ ace/Local_Name_Space_T.cpp,
+ ace/Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry),
+ ace/Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find),
+ Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool),
+ ace/Naming_Context.cpp (ACE_Naming_Context::open),
+ ace/Parse_Node.cpp (ACE_Location_Node::open_handle),
+ ace/Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
+ ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
+ ACE_Registry::Binding_Iterator::Context_Iteration::next_n),
+ tests/UPIPE_SAP_Test.cpp:
+ changed "sizeof char" to "sizeof (char)" because g++ and Sun C++
+ (properly) choked on it.
+
+ * ace/Local_Name_Space_T.cpp (create_manager_i):
+ -- ::strncat () instead of ACE_OS::strcat ()
+ -- "lock_name_for_backing_store" instead of
+ "lock_name_for_local_name_space"
+
+ * ace/Naming_Context.cpp (both constructors): reordered
+ initializers to match declaration order.
+
+ * include/makeinclude/platform_sunos5_g++.GNU: removed
+ -fno-strict-prototypes because it's not needed with SunOS 5.5.1.
+
+Mon Jan 27 21:33:00 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * tests/Naming_Test.cpp (main): Made modifications to the test to
+ make it more dynamic. Also made it work with UNICODE and
+ ACE_Naming_Context.
+
+ * ace/Local_Name_Space_T.cpp (create_manager_i): Added a better
+ naming scheme for the locks.
+
+ * ace: Changed the calculations of string lengths such that the
+ size of the character type is carefully considered.
+
+ The following were affected:
+
+ ACE.cpp (ACE::ldfind)
+ Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry)
+ Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find)
+ Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool)
+ Naming_Context.cpp (ACE_Naming_Context::open)
+ Parse_Node.cpp (ACE_Location_Node::open_handle)
+ Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
+ ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
+ ACE_Registry::Binding_Iterator::Context_Iteration::next_n)
+
+ * ace/OS.h: Added UNICODE support for ACE_DEFAULT_LOCALNAME.
+
+ * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to:
+
+ /* Proactor */
+ ACE_Overlapped_File::ACE_Overlapped_File
+ ACE_Overlapped_File::open
+
+ * ace/Registry_Name_Space.h: Changed the order of #include and
+ #define as that the correct set of MACROS are defined for the
+ include files.
+
+ * tests/MM_Shared_Memory_Test.cpp: Added UNICODE support.
+
+Mon Jan 27 09:16:03 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU,
+ include/makeinclude/platform_sunos5_sunc++_orbix.GNU,
+ ace/config-sunos5.5-sunc++-4.x-orbix.h
+ ace/config-sunos5.5-sunc++-4.x.h:
+ disabled exception handling by commenting out ACE_HAS_EXCEPTIONS
+ in the config files and adding -noex to the platform files,
+ because it causes trouble, at least on MP machines.
+
+Mon Jan 27 14:54:31 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Memory_Pool.h: Added code to ACE_MMAP_Memory_Pool_Options to
+ take a minimum_bytes parameter. This is needed to prevent mmap
+ remapping when a large segment is requested. Thanks to Fred
+ LaBar <flabar@fallschurch.esys.com> for this.
+
+Sun Jan 26 13:39:13 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i: Changed the typo sis_siglist to sys_siglist. Also,
+ changed the logic from #if !defined (ACE_HAS_SYS_SIGLIST) to
+ #if defined (ACE_HAS_SYS_SIGLIST) since this makes more sense...
+ Thanks to Nanbor Wang <nw1@cs.wustl.edu> for noticing this.
+
+Sat Jan 25 20:30:23 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos5.5-sunc++-4.1.h: commented out ACE_HAS_EXCEPTIONS
+ #define because -noex is required with it, and that causes core
+ dump during thread exit on multiprocessor UltraSparcs.
+
+ * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: added -noex
+ back because of core dump during thread exit on
+ multiprocessor UltraSparcs.
+
+ * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp,
+ examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp (control):
+ added "default" case to switch statement to eliminate compiler
+ warnings about enumeration values not being handled in switch.
+
+ * examples/ASX/UPIPE_Event_Server/event_server.cpp (consumer):
+ removed unused variable "iter".
+
+Sat Jan 25 12:50:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.i: Updated all the cond_timedwait() and cond_wait()
+ methods so that they decrement the count of waiters by one even
+ when errors occur. Thanks to Irfan for finding this.
+
+ * ace/Map_Manager.cpp: Updated the ACE_Map_Iterator code so that
+ it no longer crashes if the Map has been closed. Thanks to
+ Slawomir Kuzniar <kuzniar@Bear.COM> for reporting this.
+
+Sat Jan 25 11:34:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
+
+ * ace/SOCK_Connector.cpp (complete): Added a sleep of zero seconds
+ which allows non-blocking connects to work properly on NT.
+
+ * ace/config-winnt-4.0-msvc4.x.h and config-win32-msvc4.x.h:
+ Added ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS.
+
+ * ace/OS.i: Moved out all code for Time_Value from #if region. It
+ is common to all.
+
+ * ace/Reactor: Added helper routines to stop the VC++ compiler from
+ bitching about destructors in exception handling code.
+
+ * ace/ace.{mak,mdp}: Removed Time_Value.cpp from project.
+
+ * tests/tests.{mak,mdp}: Corrected the creation of SOCK_Test and
+ Message_Blob_Test executables and temporary files.
+
+Fri Jan 24 09:01:50 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * examples/Connection/misc/Connection_Handler.cpp: added
+ specialization of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+ so that subproject will build with g++ without optimization.
+
+ * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations
+ of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH> and
+ ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+ so that subproject will build with g++ without optimization.
+
+ * tests/Reactor_Exceptions_Test.cpp (main): added ACE_UNUSED_ARG
+ for argc and argv when ACE_HAS_EXCEPTIONS is not defined.
+
+ * performance-tests/Misc/test_mutex.cpp: made destructor of
+ Thread_Mutex_Derived virtual because the class has other virtual
+ functions.
+
+Thu Jan 23 11:51:45 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/config-sunos5.5-g++.h: commented out ACE_HAS_EXCEPTIONS because
+ -fhandle-exceptions is broken in g++ 2.7.2 (and is required in order
+ to use exception handling); also, added ACE_HAS_INLINED_OSCALLS, if
+ __ACE_INLINE__ is #defined.
+
+ * ace/config-sunos5.5-sunc++-4.1.h: added ACE_HAS_INLINED_OSCALLS,
+ if __ACE_INLINE__ is #defined.
+
+Wed Jan 22 15:04:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Moved the ACE_TIMER_SKEW macro to below the #inclusion
+ of config.h and updated it so that it can be overridden in the
+ config.h file if necessary. Thanks to Bob Olson
+ <olson@mcs.anl.gov> for motivating this.
+
+ * ace/OS.cpp: Fixed the implementation of
+ ACE_Thread_ID::operator== so that it works correctly when thread
+ ids and thread handles aren't ints. Thanks to Chuck Gehr for
+ reporting this.
+
+ * ace/OS.i (thr_getprio): Moved a stray #else into the right
+ place. Thanks to Chuck Gehr for reporting this.
+
+ * ace/OS.i (sema_post): this->count_++ should have been
+ s->count_++. Thanks to Chuck Gehr for reporting this.
+
+ * ace/Synch_T.cpp: Added an extern "C" definition for
+ ACE_TSS_C_cleanup(). Thanks to Chuck Gehr for reporting this.
+
+ * ace: Added a new #define called ACE_LACKS_SYS_NERR to the
+ config files for MVS and VxWorks. This is used in OS.cpp
+ as follows:
+
+ #if defined (ACE_LACKS_SYS_NERR)
+ int sys_nerr = ERRMAX + 1;
+ #endif /* ACE_LACKS_SYS_NERR */
+
+ Thanks to Chuck Gehr for reporting this.
+
+ * Removed all #inclusions of "ace/Time_Value.h." This file
+ no longer contains anything besides a #include "ace/OS.h"
+ and is only kept around due to backwards compatibility.
+
+ * ace: Moved the contents of Time_Value.h into OS.h to reduce the
+ confusion that arises from the #inclusion of "config.h" in
+ Time_Value.h. Also merged the contents of Time_Value.{i,cpp}
+ into OS.{i,cpp}. Thanks to the MDA guys for motivating this.
+
+ * tests/Reactor_Exceptions_Test.cpp: Added a new test that
+ exercises the Reactor with C++ exceptions. Thanks to Luca for
+ the test.
+
+ * ace/Reactor.cpp (handle_events): Added Win32 structured
+ exception handling support to the ACE_Reactor::handle_events()
+ method so that it correctly releases the token lock when Win32
+ SEH occur in callback routines. Thanks to Luca for reporting
+ this problem.
+
+ * ace: Added a new macro called ACE_HAS_EXCEPTIONS, which
+ indicates that the compiler supports C++ exception handling.
+
+ * include/makeinclude/platform_sunos5_sunc++*.GNU: Commented out
+ the -noex flag for now. Hopefully, things will work correctly
+ now.
+
+ * ace/Thread_Manager.cpp (exit): Removed the final acquire() on
+ ace_mon, which is no longer necessary since the Guard classes
+ now keep track of whether they are "owned". Thanks to Karlheinz
+ and Detlef for this fix.
+
+Wed Jan 22 09:05:31 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Makefile,VERSION: modified top-level Makefile (and VERSION)
+ to add a timestamp to the VERSION file if creating a release
+ from the /project/adaptive/ACE_wrappers directory. If it
+ causes problems, this will disable it:
+ % make TIMESTAMP= release.
+
+ * ace/Local_Tokens.cpp (dump): replaced "ACE_TSS<ACE_TPQ_Entry>"
+ with "ACE_TPQ_ENTRY" so that ACE_NO_TSS_TOKENS is supported.
+
+ * ace/Synch.h: fixed typo in comment header for ACE_Thread_Semaphore
+
+ * ace/config-vxworks-ghs-1.8.h,config-vxworks5.2-g++.h,
+ config-unixware-2.01-g++.h:
+ protect ACE_HAS_INLINED_OSCALLS #defined with
+ #if defined (__ACE_INLINE__).
+
+ * apps/Gateway/Gateway/Event_Channel.cpp (open): added
+ ACE_UNUSED_ARG (sig);.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.h:
+ declared a friend of class Peer_Router_Context because it
+ has a private destructor, to eliminate compiler warning
+ about not having any friends.
+
+ * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
+ (open): added return 0 in "true" branch of if statement so
+ that the function always returns a value.
+
+Tue Jan 21 09:19:44 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * tests/Reader_Writer_Test.cpp (reader): commented out unused
+ variable "n"; also, commented out unused function
+ print_usage_and_die.
+
+ * tests/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added
+ ACE_UNUSED_ARG (sa);.
+
+ * tests/Thread_Pool_Test.cpp (open): added return 0 at end.
+
+Tue Jan 21 11:00:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * apps/Gateway/Gateway/Gateway.cpp (parse_args): There was a small
+ bug in parse_args (latest beta), it mixed proxy and consumer
+ conf files. Thanks to Per Andersson
+ <Per.Andersson@hfera.ericsson.se> for reporting this.
+
+Mon Jan 20 13:29:28 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.i, ace/Task.h, and ace/Thread_Manager.h: changed a few
+ occurrences of NULL to 0 (for other than Win32 platforms),
+ primarily to avoid compiler warnings on VxWorks if ACE.h isn't
+ #included before stddef.h.
+
+ * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
+ (handle_input): replaced %d format with %hu for u_short arg.
+
+ * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
+ (run_writer): initialized variable "t" to avoid compiler warning.
+
+ * examples/Connection/misc/Connection_Handler.cpp (handle_timeout):
+ added ACE_UNUSED_ARG (tv); also, added explicit int return type
+ to definition of Connection_Handler::close (u_long).
+
+ * examples/Threads/task_four.cpp (Invoker_Task::svc):
+ moved declaration of "task" out of for loop because it is
+ also used after the for loop.
+
+ * netsvcs/lib/Name_Handler.cpp, Server_Logging_Handler.cpp,
+ TS_Clerk_Handler.cpp, TS_Server_Handler.cpp, Token_Handler.cpp:
+ added ACE_UNUSED_ARG (sig);.
+
+Sun Jan 19 11:10:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU,
+ platform_sunos5_sunc++_4.1.GNU:
+ added comment about compiler warnings with +w option.
+ Also, added +w to platform_sunos5_sunc++_4.1.GNU. With the
+ other changes in this ChangeLog entry, there no longer should
+ be significant warnings from Sun C++ when building ACE.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
+ (Peer_Handler::put): added ACE_UNUSED_ARG (tv);.
+
+ * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main),
+ netsvcs/clients/Tokens/invariant/invariant.cpp (main):
+ commented out argc and argv.
+
+ * examples/Mem_Map/file-reverse/file-reverse.cpp (main):
+ removed unused variable "cp".
+
+ * netsvcs/clients/Tokens/manual/manual.cpp (handle_input,
+ handle_exception): added ACE_UNUSED_ARG (fd); and
+ (create_proxy): added return statement at end: even
+ though it should never be reached, it eliminates a
+ compiler warning.
+
+ * examples/OS/Process/process.cpp,
+ examples/Reactor/Misc/test_reactors.cpp,
+ netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp,
+ netsvcs/clients/Tokens/mutex/test_mutex.cpp,
+ netsvcs/clients/Tokens/rw_lock/rw_locks.cpp,
+ performance-tests/TTCP/ORBeline/ttcp_i.cpp,
+ performance-tests/TTCP/Orbix/ttcp_i.cpp (main):
+ return 0 instead of 42.
+
+Sat Jan 18 10:54:25 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
+
+ * java/src/README: Updated the README file to indicate how
+ documentation for Java ACE cab be automatically generated.
+
+Fri Jan 17 11:47:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/OS.h: Added an equivalent set of
+ ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the
+ ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm
+ <gonzo@ing.puc.cl> for suggesting this.
+
+ * ace/OS.cpp (ACE_Thread_Adapter): Added a new feature that allows
+ logging features to be inherited by threads. It works with
+ those OSs (e.g., Win32) that use ACE_Thread_Adapter class. At
+ some point, we might do this for all the OSs. Thanks to Luca
+ for this.
+
+ * examples/Connection/misc/Connection_Handler.cpp: Added a
+ new example that illustrates how to use the Acceptor pattern
+ to create multiple threads, each running its own Reactor.
+
+ * ace/Log_Msg.cpp (dump): Some of the variables in the dump()
+ method have the wrong format specification type. These are:
+ restart_ (%d), flags_ (%x), priority_mask_ (%d). They are now
+ fixed, thanks to Luca.
+
+ * tests/Priority_Task_Test.cpp (open): Add an ACE_ASSERT to make
+ sure that the tasks activate() correctly. Thanks to David for
+ finding this.
+
+ * ace/config-linux-lxpthreads.h: Added #defines for
+ ACE_HAS_AUTOMATIC_INIT_FINI and ACE_HAS_SVR4_DYNAMIC_LINKING.
+ Thanks to Marius for this.
+
+ * ace/Malloc.h: Changed the typedef of ACE_Malloc_Align to a macro
+ called ACE_MALLOC_ALIGN to allow users to override this value in
+ their config.h file. This is necessary for platforms that don't
+ have "long" word alignments. Thanks to Fred LaBar
+ <flabar@fallschurch.esys.com> for this suggestion.
+
+ * ace/OS.h: Added an #ifdef check for ACE_HAS_IRIX62_THREADS and
+ if so, we'll use the if (&a) /* null */; } form of the
+ ACE_UNUSED_ARG macro to avoid unnecessary warnings. Thanks to
+ Fred LaBar <flabar@fallschurch.esys.com> for testing this out.
+
+Fri Jan 17 16:33:25 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/High_Res_Timer.*: added elapsed_time () and get_time ().
+
+ * netsvcs/clients/Tokens/collection/collection.cpp, rw_locks.cpp:
+ commented out unused variables to avoid compiler warnings; and
+ return 0 from main ().
+
+ * include/makeinclude/rules.local.GNU,
+ netsvcs/lib/Makefile,
+ examples/Service_Configurator/IPC-tests/server/Makefile:
+ fixed ESOBUILD mechanism to work on all platforms, not just Linux.
+ Thanks to Marius Kjeldahl <marius@funcom.com> for this fix.
+
+ * ace/OS.i and OS.cpp: uninlined functions that use varargs, because
+ they usually won't get inlined anyways.
+
+ * ace/OS.cpp (thr_create): added #else clause to be sure that
+ always sparam.sched_priority always get set to the priority argument.
+
+ * netsvcs/clients/Naming/Client/Client_Test.cpp: commented out
+ unused parameters and wrapped combined assignments/conditional
+ values to avoid compiler (g++) warnings.
+
+ * tests/Priority_Task_Test.cpp: added check for successful thread
+ spawn, and ACE_NEW_THREAD to svc () so that messages get logged.
+
+Thu Jan 16 17:03:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * include/makeinclude: Added support for shared object files
+ on Linux. Thanks to Marius Kjeldahl <mariusk@sn.no,
+ marius@funcom.com> for his help with this.
+
+ * ace: Merged in the IRIX support, mainly the missing netdb
+ reentrant functions. Thanks to Gonzalo Diethelm
+ <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
+ their help.
+
+ * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to
+ avoid name clashes with STL (ugh).
+
+ * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things
+ will link. Thanks to John Morey for reporting this.
+
+ * ace/Synch_T.h: Fixed: class ACE_Write_Guard: method:
+ tryacquire_write so that it will call
+ ...->lock_->tryacquire_write() and not
+ ...->lock_->acquire_write(). Thanks to Alexandre Karev
+ <Alexandre.Karev@cern.ch> for this fix.
+
+Thu Jan 16 15:51:16 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * Dump.cpp (register_object): initialized "slot" so that g++ doesn't
+ complain about uninitialized use.
+
+ * Reactor.cpp (initialized): use ACE_GUARD_RETURN instead of
+ ACE_GUARD because the function returns a value;
+ (find): initialize "i" if handle is out of range so that g++
+ doesn't complain about uninitialized use.
+
+ * Service_Repository.cpp (remove): removed unused variable "handle".
+
+ * Thread_Manager.h: made destructor virtual now that spawn_i () is
+ virtual.
+
+ * Timer_Heap.cpp: changed some int loop indicies to size_t to
+ make sure that comparisons are consistently signed or unsigned.
+
+ * OS.h, config-vxworks*.h: removed ACE_HAS_GREENHILLS_SOCKETS
+ ACE macro because the code it wrapped applies to all VxWorks
+ compilers, not just GreenHills.
+
+Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/ACE.cpp (round_to_pagesize): If _SC_PAGESIZE is enabled then
+ we set the ACE::pagesize_ variable using sysconf(2). Thanks to
+ James Mansion for this suggestion.
+
+Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Timer_Queue.cpp (expire): Changed a line of code from
+
+ ACE_Timer_Queue_Iterator &iterator (this->iterator ());
+
+ to
+
+ ACE_Timer_Queue_Iterator &iterator = this->iterator ();
+
+ so that the Visual C++ compiler can grok it. Thanks to John
+ Morey for reporting this.
+
+ * ace/Reactor.cpp: Modified the close() method so that it can be
+ called multiple times with no bad side-effects.
+
+ * ace/Pipe.cpp: Modified the close() method so that it can be
+ called multiple times with no bad side-effects.
+
+ * ace/Reactor: Added an initialized() method that indicates
+ whether the Reactor was successfully initialized. Also
+ rearranged the code in ACE_Reactor::open() so that initialized_
+ is only set at the end of the method when everything succeeds.
+ If things *don't* succeed, we call close() on the way out.
+ Thanks to Luca for these suggestions.
+
+ * ace/Reactor.cpp (close): When closing down the ACE_Reactor, we
+ now set initialized_ back to 0 so that it can be reopened again
+ later.
+
+ * tests/Reader_Writer_Test.cpp: There were some problems with this
+ test due to the fact that on many pthreads platforms pthread_t
+ isn't an int (it's a struct). Thanks to Chuck Gehr
+ <gehr@sweng.stortek.com> for the fix.
+
+ * ace/OS.i (exit): In WIN32 when the process exits through an
+ ExitProcess() call, some process resources (e.g., file handles)
+ are freed before the static variable destructors are
+ called. This results in an application error when tracing is
+ enabled. Removing the ACE_TRACE call in ~ACE_Event_Handler
+ seems to fix this. Thanks to Luca for this fix.
+
+ * ace/OS: Fixed the implementation of semaphores for the POSIX
+ port (POSIX lacks semaphores). The trick was to add a "waiters"
+ field, along with the semaphore count. Thanks to John Bossom
+ <John.Bossom@Cognos.COM> for reporting this.
+
+ * examples/Threads/wfmo.cpp: Added a new test program that seems
+ to indicate that the Win32 WaitForMultipleObjects() function can
+ be called in multiple threads, all of which wait on the same set
+ of HANDLEs. Note that the dispatching of the threads is
+ relatively "fair" (i.e., everyone gets a chance to process the
+ various HANDLEs as they become active). Thanks to Ari Erev
+ <Ari_Erev@comverse.com> for suggesting this and providing the
+ initial code.
+
+ * ace/Thread_Manager.h: Made the spawn_i() method virtual and
+ moved it into the protected section of the class so that it can
+ be over-ridden by subclasses. Thanks to Tim Harrison for
+ suggesting this.
+
+Tue Jan 14 15:57:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.h: Changed the default size of ACE_DEFAULT_TIMERS to
+ _SC_TIMER_MAX (which is typically around 40 or so).
+ Thanks to Stuart Powell <stuartp@in.ot.com.au> for
+ suggesting this.
+
+ * tests/Timer_Queue_Test.cpp (main): Added some additional logic
+ so that we can test the performance of the preallocated and
+ non-preallocated ACE_Timer_Heap.
+
+ * ace/Timer_Heap: Added a new "preallocate nodes" mechanism to the
+ ACE_Timer_Heap. If this is enabled by the constructor, then we
+ preallocate as many ACE_Timer_Nodes as there are slots in the
+ heap. This allows us to completely remove the need for dynamic
+ memory allocation, which is important for real-time systems.
+
+ * ace/Thread_Manager.cpp (remove_thr): Optimized the code just a
+ tad by decrementing the current_count_ *first*. Thanks to Per
+ Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
+
+ * ace/ReactorEx: Updated the implementation so that the
+ handle_events() method now in fact *does* return the number of
+ event handler's dispatched (i.e., the implementation matches the
+ documentation...). Thanks to Hamutal Yanay
+ <Hamutal_Yanay@mail.icomverse.com> for reporting this.
+
+ * ace/Service_Repository.cpp (remove): Removed an extra call to
+ ACE_OS::dlclose(). This is already being called in the
+ destructor of ACE_Service_Record. Thanks to Karlheinz for
+ reporting this.
+
+ * man: Updated all the nroff and html documentation.
+
+ * ace/Timer_Heap: Implemented the spiffy new timer cancellation
+ algorithm that requires only O(log N) time to remove a timer
+ from the ACE_Timer_Heap. This is about 50 to 100 times faster
+ than using the ACE_Timer_List implementation.
+
+Tue Jan 14 21:01:36 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: Replace "Linux" preprocessor symbol with "linux".
+
+Mon Jan 13 17:57:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Synch: Added lock() accessor methods to both
+ ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal
+ Yanay <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
+
+ * ace/config-mvs.h: Added a #define for ACE_HAS_GETPAGESIZE.
+ Thanks to Chuck Gehr for this information.
+
+ * ace/LSOCK_Stream.h: Added a new typedef for PEER_ADDR that is
+ associated with ACE_UNIX_Addr. Thanks to Mark Rabotnikov
+ <mark@usp.elscintcorp.co.il> for suggesting this.
+
+Mon Jan 13 22:24:09 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/OS.h: Added #undefs of sigemptyset and sigfillset on Linux
+ when __OPTIMIZE__ is enabled. Yes, the system header on Linux
+ really #defines them when optimizing! Thanks to an anonymous
+ ACE user for pointing this out.
+
+ * tests/tests_config.h: Dropped ACE_MAX_ITERATIONS back to 10.
+
+Sun Jan 12 16:59:52 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/Timer_List.cpp (schedule): Cleanup the code so that (1)
+ timer_id never == -1 (in order to distinguish it from error
+ return values and (2) so that we avoid an unnecessary check for
+ operator new failure.
+
+ * ace/OS.h: Added a new #define called ACE_DEFAULT_MAX_TIMERS,
+ which specifies the maximum number of ACE_Event_Handlers
+ supported by ACE_Timer_Heap.
+
+ * ace/Proactor.cpp (ACE_Proactor): Updated the allocation of
+ ACE_Timer_Queue so that it really points to an ACE_Timer_List by
+ default. Naturally, this can be overridden by users.
+
+ * ace/ReactorEx.cpp (open): Updated the allocation of
+ ACE_Timer_Queue so that it really points to an ACE_Timer_List by
+ default. Naturally, this can be overridden by users.
+
+ * ace/Reactor.cpp (open): Updated the allocation of
+ ACE_Timer_Queue so that it really points to an ACE_Timer_List by
+ default. Naturally, this can be overridden by users.
+
+ * ace: Added two new classes called ACE_Timer_List and
+ ACE_Timer_Heap, which derive from ACE_Timer_Queue.
+ ACE_Timer_List is essentially the old behavior of
+ ACE_Timer_Queue, i.e., it uses an implementation of a linked
+ list of ACE_Timer_Nodes. ACE_Timer_Heap, on the other hand,
+ uses a heap-based callout queue, which is more appropriate for
+ certain real-time applications.
+
+ * ace/Timer_Queue: Revised the ACE_Timer_Queue implementation so
+ that it's now an abstract base class with most of the
+ implementation details pushed into the ACE_Timer_List and
+ ACE_Timer_Heap subclasses.
+
+ * ace/Timer_Queue.h: Made all the ACE_Timer_Queue methods public
+ so that we can override them in a subclass (e.g., the new
+ ACE_Timer_Heap).
+
+ * examples/Logger/Acceptor-server/server_loggerd.cpp: Fixed this
+ example application so that it only uses a single Reactor (the
+ REACTOR::instance()) rather than two Reactors. Thanks to Sandro
+ Doro <alex@aureus.sublink.org> for reporting this.
+
+ * netsvcs/lib/Logging_Strategy.cpp: Fixed the #include of
+ fstream.h and iostream.h to use the '<' '>' notation rather than
+ the '"' and '"' notation. This avoids problems with running
+ "make depend". Thanks to Rino Simioni <sir@necsy.it> for
+ reporting this fix.
+
+Sun Jan 12 18:20:49 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/ACE.cpp (round_to_pagesize): fixed typo in reference to
+ ACE::pagesize_.
+
+ * ace/ACE.cpp: initialize ACE::pagesize_ to 0.
+
+ * ace/config-irix*.h and config-win*.h: removed ACE_PAGE_SIZE
+ definition because these platforms no longer use it.
+
+ * tests/UNIX*.conf and Win32server.conf: replaced net_svcs
+ with netsvcs.
+
+Sat Jan 11 15:11:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * ace/OS.i (thr_setprio): The POSIX implementation of
+ ACE_OS:thr_setprio did not set the priority. It calls:
+
+ pthread_setschedparam( thr_id, &policy, &param )
+
+ and then does
+
+ prio = param.sched_priority.
+
+ instead of
+
+ param.sched_priority = prio;
+
+ This is now fixed. Thanks to John Bossom <John.Bossom@Cognos.COM>
+ for reporting this.
+
+ * ace/config-irix*.h: Modified all the IRIX config files to
+ use the new ACE_HAS_GETPAGESIZE feature since this is necessary
+ to differentiate between IRIX and IRIX64.
+ Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
+ reporting this.
+
+ * ace/ACE.cpp: Modified the round_to_pagesize() so that if
+ a config.h file enables ACE_HAS_GETPAGESIZE then we use
+ that function in preference to the value in config.h.
+ Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
+ suggesting this.
+
+ * ace/ACE.cpp: Modified the round_to_pagesize() so that on
+ platforms that allow the page size to be obtained dynamically
+ we'll get that rather than replying on what it set in the
+ config.h file. We'll cache this value in a static variable
+ to speedup searches. Thanks to James Mansion for suggesting
+ this.
+
+ * apps/Gateway/Gateway: Finished adding support for thread-safe
+ reference counting to the uses of ACE_Message_Block.
+
+ * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced
+ the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile
+ correctly on non-MT platforms.
+
+Fri Jan 10 12:38:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+
+ * Added a COPYING file that explicitly states the copyright status
+ of ACE.
+
+ * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h:
+ By default, we'll revert to *not* enabling
+ ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is
+ well-support by the compiler since it breaks some application
+ code that expects to use 3 template parameters for
+ ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM
+ macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr"
+ tuple) in order to achieve portability in either case. Thanks
+ to Karlheinz for pointing out the need for backwards
+ compatibility.
+
+Wed Jan 8 01:00:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests/Message_Block_Test.cpp: Enhanced the torture test of the
+ ACE_Message_Block so that it stresses the reference counting
+ implementation in a multi-threaded environment.
+
+Wed Jan 08 10:26:45 1997 David L. Levine <levine@cs.wustl.edu>
+
+ * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to
+ allocator_strategry_ after deleting it; fixed template
+ specializations (for g++) by using macros instead of class names;
+ commented out template specializations because Service_Record.cpp
+ already has them, and they should only appear once in the library
+ in order to avoid link clashes
+
+ * ace/Service_Object.cpp (ACE_Service_Object): reordered
+ initializations in constructor
+
+ * ace/Service_Record.cpp (ACE_Service_Record): reordered
+ initializations in constructor
+
+ * ace/config-linux-lxpthreads.h: added
+ ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to
+ James CE Johnson <jcej@lads.com> for tracking down this
+ problem and testing the fix.
+
+Tue Jan 7 13:03:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Message_Block: Continued to improve the
+ ACE_Message_Block/ACE_Data_Block implementation.
+
+ * ace/Message_Block: Added a new constructor to ACE_Message_Block
+ that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for
+ this idea.
+
+ * ace/Log_Msg.cpp: Now that we've prevented signal handlers from
+ occurring within critical sections of ACE_Log_Msg::log() we
+ don't need to use the ACE_Recursive_Thread_Mutex anymore.
+ Instead, we just need ACE_Thread_Mutex.
+
+ * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in
+ ACE_Log_Msg::log() that acquires the mutex that serializes
+ output. This prevents nasty problems with recursive to
+ ACE_Log_Msg::log() from within signal handlers.
+
+ * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout
+ of ACE_Time_Value::zero to the ACE_Reactor::notify() method when
+ called in the ACE_Service_Config::end_reactor_event_loop().
+ This prevents the Reactor from blocking indefinitely if there's
+ no longer a thread to receive from the notification pipe.
+
+ * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal
+ nametest.cpp and nametest.h files. I'm not sure why they were
+ still there, but they shouldn't have been!
+
+ * ace/Synch.i (remove): this->owner_ should be set to -1 before
+ calling this->release(). Thanks to Per Andersson
+ <Per.Andersson@hfera.ericsson.se> for suggesting this.
+
+ * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit"
+ to the ACE_Thread_Control::exit() method. This controls whether
+ we call ACE_OS::thr_exit() after removing the thread from the
+ Thread Manager's internal table. This is necessary to work
+ around pthread bugs on certain platforms (e.g., AIX and Linux).
+
+ * ace/Synch.h: Removed the
+ ACE_Recursive_Thread_Mutex::set_nesting() method since this
+ isn't being used and is potentially dangerous. Thanks to Per
+ Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
+
+ * ace/XtReactor: Updated the XtReactor so that it uses the next
+ internal Reactor implementation. Thanks to Mark Rabotnikov
+ <mark@usp.elscintcorp.co.il> for reporting this.
+
+ * ace/Task.i: Updated the grp_id(int) method to cache the group id
+ in the task and then set it in the Thread_Manager, if there is
+ one. Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com>
+ for suggesting this.
+
+ * ace/Log_Record.h: Updated the ACE_Log_Record class to use the
+ new ACE_MAXLOGMSGLEN macro.
+
+ * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By
+ default this is 4k. However, you can reset it in the config.h
+ file if you'd like to increase or decrease the size. Thanks to
+ Anthony McConnell for suggesting this.
+
+ * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and
+ tss2.cpp examples and improved the comments. Thanks to Luca for
+ suggesting this.
+
+ * ace/Service_Object.cpp (fini): Added the "virtual" keyword to
+ the new destructor of ACE_Service_Type. Thanks to David for
+ reporting this.
+
+ * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block
+ and ACE_Message_Block locking_strategy() methods so that they'd
+ be defined as inline before being used. Thanks to David for
+ reporting this.
+
+Mon Jan 6 16:46:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Service_Manager.cpp (fini): Only try to remove the
+ ACE_Service_Manager from the Reactor if it's actually been
+ registered in the first place (i.e., if it's get_handle() method
+ does not return ACE_INVALID_HANDLE).
+
+ * netsvcs/servers/svc.conf: Changed the name of the net services
+ .so file from libnet_svcs to netsvcs so that it will work
+ correctly with our new "cross-platform" svc.conf ACE::ldfind()
+ strategy. Thanks to Marius Kjeldahl <marius@funcom.com> for
+ reporting this.
+
+ * ace/Reactor.cpp (find): Added a strategic break and a check for
+ handle_in_range(). Thanks to Tim for this help!
+
+ * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part
+ from the executable shared object file names in the svc.conf
+ file so that it will work with the new "cross-platform" svc.conf
+ ACE::ldfind() strategy. Thanks to Marius Kjeldahl
+ <marius@funcom.com> for reporting this.
+
+ * ace/Service_Record.cpp (fini): Added an extra assignment to a
+ temporary const void *obj to avoid problems with MSVC++ and it's
+ cast mechanism.
+
+ * ace/ReactorEx.h: Added a default parameter to
+ ACE_ReactorEx::notify(). Thanks to Tim for noticing this.
+
+Sun Jan 5 10:48:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * tests: Added a new test for ACE_Message_Block, which is called
+ Message_Block_Test.cpp (no surprise there ;-)). This test
+ exercises the reference counting mechanisms.
+
+ * ace/Message_Block.h: Made the destructors for ACE_Message_Block
+ and ACE_Data_Block virtual, so that these classes can be
+ subclassed and ACE_Message_Blocks can delete these
+ subclasses (either via release() or delete). Thanks to Tilo
+ Christ for suggesting this.
+
+ * ace/Message_Block.cpp: Modified the implementation
+ of ACE_Message_Block/ACE_Data_Block so that we always create
+ an allocator_strategy_. By default, this strategy will be
+ ACE_Allocator_Adapter <ACE_Malloc <ACE_Local_Memory_Pool, ACE_Null_Mutex> >;
+ This greatly simplifies the code.
+
+ * ace/Message_Block.h: It's now possible to assign a
+ Message_Block's priority when you create it.
+
+ * ace/Reactor: Sped things up some more by merging the Reactor's
+ any_ready() and fill_in_ready() methods together. This reduces
+ redundant computations.
+
+ * ace/Reactor: Changed the name of ACE_Reactor::detach() to
+ ACE_Reactor::remove_handler_i() and changed the name of
+ ACE_Reactor::attach() to ACE_Reactor::register_handler_i().
+ This is more consistent with the other naming schemes.
+
+ * ace/Reactor.cpp: Reworked the implementation of the Handler
+ Repository's unbind() method in order to simplfy the logic.
+ Also merged in all the Reactor's detach() functionality into the
+ unbind() method in order to localize all the handler removal
+ processing.
+
+ * ace/Reactor[Ex].cpp: Added more descriptive errno entries for
+ failed operations in the handler repository.
+
+ * ace/Reactor.cpp: Modified the implementation of the Handler
+ Repository's bind() method so that it reports an error if you
+ try to register an Event_Handler for an invalid HANDLE.
+
+ * ace/Reactor.cpp: Reimplemented the internals of the Reactor to
+ prepare for the upcoming merge of the Reactor and ReactorEx to
+ use a single code base.
+
+ * ace/Timer_Queue.cpp: Modified the behavior of the expire()
+ methods so that they return the number of ACE_Event_Handlers
+ whose handle_timeout() method was called.
+
+Sat Jan 4 11:47:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will
+ be recast as a strategy in subsequent implementations.
+
+ * ace/Reactor.cpp: Added a new call,
+ ACE_Handler_Repository::handle_in_range(), which checks to make
+ sure that the HANDLE is within the range of 0 .. max_handlep1_.
+ This factors out some redundant code.
+
+ * ace/Reactor.cpp: Sped up the performance of the Reactor by
+ removing redundant calls to
+ ACE_Handler_Repository::invalid_handle() and
+ ACE_Handler_Repository::find().
+
+ * tests/Reactors_Test.cpp: Added a test for
+ the new Reactor::notify() method with timeouts.
+
+ * examples/Reactor/Misc/notification.cpp (svc): Added a test for
+ the new Reactor::notify() method with timeouts.
+
+ * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they
+ use timed send() operations for their notify() methods. This
+ makes it possible for users to bound the amount of time they're
+ willing to wait to try and notify the Reactor. This is mostly
+ useful to avoid infinite blocking if there is congestion in the
+ Reactor's notification mechanism.
+
+ * ace/ACE.cpp: Added a new timed send() method that uses the
+ write() system call on UNIX and the socket send() call on Win32.
+ This new method is used in the new ACE_Reactor::notify() method,
+ which now supported timed notifications.
+
+ * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code
+ and reduce unnecessary #ifdefs, I've merged the max_handlep1_
+ and cur_size_ fields (which are now called max_handlep1_).
+
+Fri Jan 3 10:47:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace: Replaced all uses of "delete mb" with mb->release ();
+
+ * ace/Stream_Modules.cpp: Replaced the use of explicit bit
+ twiddling with the ACE_BIT* macros.
+
+ * ace/Message_Block.cpp: Make sure that we use the
+ allocator_strategy_ to create the memory for the reference count
+ since this may need to go into shared memory if that's the
+ memory pool where the Message_Block allocations are coming from.
+
+ * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and
+ ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW,
+ except that these
+
+ * ace/Message_Block.cpp (release): Make sure to "delete this"
+ outside the scope of the locking_strategy_.
+
+ * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type.
+ Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
+ suggesting this.
+
+ * ace/Service_Object.i: Be smarter about how we reassign the name_
+ pointer, i.e., delete the old one and make a copy. Thanks to
+ Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
+ this.
+
+ * ace/Module.cpp (open): Rearranged the assignments to
+ reader_q->mod_ and writer_q->mod_ so that we don't try to
+ initialize through NULL pointers. Thanks to
+ Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
+ this.
+
+ * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_
+ to NULL so that the following change works correctly now.
+ Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
+ reporting this.
+
+ * ace/Service_Record.i (name): Make sure to delete [] (char *)
+ this->name_ before allocating a new one. Thanks to
+ Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
+ this.
+
+ * ace/Message_Block: Reworked the reference counting implemention
+ so that reference counts are shared correctly amongst their
+ various owners. This requires making a deep copy the "header"
+ portion, but a shallow copy of the "data."
+
+ * ace/Message_Block.cpp (ACE_Message_Block): Updated all three
+ ACE_Message_Block constructors so that they all call the init()
+ method. This centralizes all the initialization logic in one
+ place.
+
+Thu Jan 2 00:42:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the
+ cont_ field to 0 after "releasing" it so that we don't
+ mistakenly think it's still around later on. This problem arose
+ in the ACE_Message_Queue::close() method, which was trying to
+ count the number of bytes being freed.
+
+ * ace/Message_Queue.cpp (close): Fixed a subtle bug where we
+ weren't actually deleting messages from the
+ ACE_Message_Queue::close() routine. This should work now...
+
+ * ace/Message_Queue.cpp (close): Replaced the use of "delete mb"
+ with "mb->release()" since the Message_Blocks are now reference
+ counted.
+
+ * ace/Message_Block: Enhanced the reference counting scheme so
+ that you can increment and decrement the count by an arbitrary
+ amount. This is particular useful when you know you'll be
+ sending the same Message_Block to N consumers.
+
+ * ace/Singleton: The dump() must be used same as instance()
+ (without supplying an object) so it must be declarated *static*,
+ i.e.,
+
+ static void dump (void);
+
+ Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
+ this.
+
+ * examples/ASX/Event_Server: Completely rewrote and retested the
+ ACE Event Server example. The new code is *much* easier to
+ understand, has many more comments, is more robust, and compiles
+ much faster since I removed many of the templates.
+
+ * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the
+ tranceiver so that it shuts down correctly when the Event_Server
+ exits.
+
+ * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a
+ problem where we were trying to select() on ACE_STDIN on Win32.
+ Naturally, this doesn't work, so we used the
+ ACE::register_stdin_handler() to fix this. Thanks to
+ Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com>
+ for reporting this.
+
+ * examples/ASX/Event_Server/Event_Server/Options: Changed the
+ Options class to be a Singleton...
+
+ * ace/Task.h: Added "const" method qualifier to accessor methods
+ like is_reader() and is_writer().
+
+Wed Jan 1 00:10:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+
+ * ace/Message_Block: Added a new static release() method that
+ behaves like the non-static method release(), except that it
+ checks if <mb> is 0. This is similar to CORBA::release(), which
+ is useful if you want to eliminate lots of checks for NULL
+ pointers before calling release() on them.
+
+ * Updated all places in ACE where we use
+ ACE_Event_Handler::READ_MASK when we should be using
+ ACE_Event_Handler::ACCEPT_MASK.
+
+ * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
+ Changed the name of the acceptor class from Handle_Thr_Stream to
+ Handle_Thr_Acceptor, which is more accurate.
+
+ * ace/Reactor: Since we've now got an
+ ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept
+ connections asynchronously using Win32 overlapped I/O) we can
+ now use this with the ACE_Reactor, as well. In particular, any
+ time that we are registering a "passive-mode" socket acceptor we
+ can now specify ACE_Event_Handler::ACCEPT_MASK. This is much
+ more intuitive than using the READ_MASK (which never made any
+ sense...). The ACE_Reactor now treats the ACCEPT_MASK as a
+ READ_MASK internally, so you can still use READ_MASK if you'd
+ like (i.e., this change doesn't break any existing code).
+
+ * ace/Event_Handler: Changed "get_priority" and "set_priority" to
+ simply "priority(void)" and "priority(int)" to be more
+ consistent with other parts of ACE.
+
+ * apps/Gateway/Gateway: Updated the Gateway so that the
+ concurrency strategies can now be specified on the
+ command-line (or in the svc.conf file), rather than being
+ determined at compile-time. This is much more flexible.
+ See the ./apps/Gateway/Gateway/README file for details.
+
+ * apps/Gateway/Gateway: Verified that all the multi-threading
+ strategies still work.
+
+ * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we
+ "release" the continuation field, rather than delete it, since
+ its reference count may be > 1.
+
+ * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that
+ we always print a message to stderr if we're exiting,
+ regardless... Thanks to David Levine for pointing this out.
+
+ * apps/Gateway/Gateway: Moved all of the configuration file
+ parsing logic *outside* of the Event_Channel into the Gateway
+ class so that we wouldn't have unnecessary dependencies.
+
+ * apps/Gateway/Gateway: Redesigned the Gateway so that the
+ Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy)
+ most of their work to the Event_Channel. This "lightweight
+ proxy" design is an improvement since it is now possible to
+ emulate the COS Event Channel semantics within the Event_Channel
+ "kernel."
+
+ * Happy new year! Let's start a new ChangeLog to celebrate the
+ new year.