diff options
Diffstat (limited to 'ACE/ChangeLogs/ChangeLog-97a')
-rw-r--r-- | ACE/ChangeLogs/ChangeLog-97a | 9203 |
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, ¶m ) + + and then does + + prio = param.sched_priority. + + instead of + + param.sched_priority = prio; + + This is now fixed. Thanks to John Bossom <John.Bossom@Cognos.COM> + for reporting this. + + * ace/config-irix*.h: Modified all the IRIX config files to + use the new ACE_HAS_GETPAGESIZE feature since this is necessary + to differentiate between IRIX and IRIX64. + Thanks to Fred LaBar <flabar@fallschurch.esys.com> for + reporting this. + + * ace/ACE.cpp: Modified the round_to_pagesize() so that if + a config.h file enables ACE_HAS_GETPAGESIZE then we use + that function in preference to the value in config.h. + Thanks to Fred LaBar <flabar@fallschurch.esys.com> for + suggesting this. + + * ace/ACE.cpp: Modified the round_to_pagesize() so that on + platforms that allow the page size to be obtained dynamically + we'll get that rather than replying on what it set in the + config.h file. We'll cache this value in a static variable + to speedup searches. Thanks to James Mansion for suggesting + this. + + * apps/Gateway/Gateway: Finished adding support for thread-safe + reference counting to the uses of ACE_Message_Block. + + * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced + the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile + correctly on non-MT platforms. + +Fri Jan 10 12:38:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + + * Added a COPYING file that explicitly states the copyright status + of ACE. + + * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h: + By default, we'll revert to *not* enabling + ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is + well-support by the compiler since it breaks some application + code that expects to use 3 template parameters for + ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM + macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr" + tuple) in order to achieve portability in either case. Thanks + to Karlheinz for pointing out the need for backwards + compatibility. + +Wed Jan 8 01:00:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * tests/Message_Block_Test.cpp: Enhanced the torture test of the + ACE_Message_Block so that it stresses the reference counting + implementation in a multi-threaded environment. + +Wed Jan 08 10:26:45 1997 David L. Levine <levine@cs.wustl.edu> + + * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to + allocator_strategry_ after deleting it; fixed template + specializations (for g++) by using macros instead of class names; + commented out template specializations because Service_Record.cpp + already has them, and they should only appear once in the library + in order to avoid link clashes + + * ace/Service_Object.cpp (ACE_Service_Object): reordered + initializations in constructor + + * ace/Service_Record.cpp (ACE_Service_Record): reordered + initializations in constructor + + * ace/config-linux-lxpthreads.h: added + ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to + James CE Johnson <jcej@lads.com> for tracking down this + problem and testing the fix. + +Tue Jan 7 13:03:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/Message_Block: Continued to improve the + ACE_Message_Block/ACE_Data_Block implementation. + + * ace/Message_Block: Added a new constructor to ACE_Message_Block + that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for + this idea. + + * ace/Log_Msg.cpp: Now that we've prevented signal handlers from + occurring within critical sections of ACE_Log_Msg::log() we + don't need to use the ACE_Recursive_Thread_Mutex anymore. + Instead, we just need ACE_Thread_Mutex. + + * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in + ACE_Log_Msg::log() that acquires the mutex that serializes + output. This prevents nasty problems with recursive to + ACE_Log_Msg::log() from within signal handlers. + + * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout + of ACE_Time_Value::zero to the ACE_Reactor::notify() method when + called in the ACE_Service_Config::end_reactor_event_loop(). + This prevents the Reactor from blocking indefinitely if there's + no longer a thread to receive from the notification pipe. + + * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal + nametest.cpp and nametest.h files. I'm not sure why they were + still there, but they shouldn't have been! + + * ace/Synch.i (remove): this->owner_ should be set to -1 before + calling this->release(). Thanks to Per Andersson + <Per.Andersson@hfera.ericsson.se> for suggesting this. + + * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit" + to the ACE_Thread_Control::exit() method. This controls whether + we call ACE_OS::thr_exit() after removing the thread from the + Thread Manager's internal table. This is necessary to work + around pthread bugs on certain platforms (e.g., AIX and Linux). + + * ace/Synch.h: Removed the + ACE_Recursive_Thread_Mutex::set_nesting() method since this + isn't being used and is potentially dangerous. Thanks to Per + Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this. + + * ace/XtReactor: Updated the XtReactor so that it uses the next + internal Reactor implementation. Thanks to Mark Rabotnikov + <mark@usp.elscintcorp.co.il> for reporting this. + + * ace/Task.i: Updated the grp_id(int) method to cache the group id + in the task and then set it in the Thread_Manager, if there is + one. Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com> + for suggesting this. + + * ace/Log_Record.h: Updated the ACE_Log_Record class to use the + new ACE_MAXLOGMSGLEN macro. + + * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By + default this is 4k. However, you can reset it in the config.h + file if you'd like to increase or decrease the size. Thanks to + Anthony McConnell for suggesting this. + + * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and + tss2.cpp examples and improved the comments. Thanks to Luca for + suggesting this. + + * ace/Service_Object.cpp (fini): Added the "virtual" keyword to + the new destructor of ACE_Service_Type. Thanks to David for + reporting this. + + * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block + and ACE_Message_Block locking_strategy() methods so that they'd + be defined as inline before being used. Thanks to David for + reporting this. + +Mon Jan 6 16:46:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/Service_Manager.cpp (fini): Only try to remove the + ACE_Service_Manager from the Reactor if it's actually been + registered in the first place (i.e., if it's get_handle() method + does not return ACE_INVALID_HANDLE). + + * netsvcs/servers/svc.conf: Changed the name of the net services + .so file from libnet_svcs to netsvcs so that it will work + correctly with our new "cross-platform" svc.conf ACE::ldfind() + strategy. Thanks to Marius Kjeldahl <marius@funcom.com> for + reporting this. + + * ace/Reactor.cpp (find): Added a strategic break and a check for + handle_in_range(). Thanks to Tim for this help! + + * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part + from the executable shared object file names in the svc.conf + file so that it will work with the new "cross-platform" svc.conf + ACE::ldfind() strategy. Thanks to Marius Kjeldahl + <marius@funcom.com> for reporting this. + + * ace/Service_Record.cpp (fini): Added an extra assignment to a + temporary const void *obj to avoid problems with MSVC++ and it's + cast mechanism. + + * ace/ReactorEx.h: Added a default parameter to + ACE_ReactorEx::notify(). Thanks to Tim for noticing this. + +Sun Jan 5 10:48:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * tests: Added a new test for ACE_Message_Block, which is called + Message_Block_Test.cpp (no surprise there ;-)). This test + exercises the reference counting mechanisms. + + * ace/Message_Block.h: Made the destructors for ACE_Message_Block + and ACE_Data_Block virtual, so that these classes can be + subclassed and ACE_Message_Blocks can delete these + subclasses (either via release() or delete). Thanks to Tilo + Christ for suggesting this. + + * ace/Message_Block.cpp: Modified the implementation + of ACE_Message_Block/ACE_Data_Block so that we always create + an allocator_strategy_. By default, this strategy will be + ACE_Allocator_Adapter <ACE_Malloc <ACE_Local_Memory_Pool, ACE_Null_Mutex> >; + This greatly simplifies the code. + + * ace/Message_Block.h: It's now possible to assign a + Message_Block's priority when you create it. + + * ace/Reactor: Sped things up some more by merging the Reactor's + any_ready() and fill_in_ready() methods together. This reduces + redundant computations. + + * ace/Reactor: Changed the name of ACE_Reactor::detach() to + ACE_Reactor::remove_handler_i() and changed the name of + ACE_Reactor::attach() to ACE_Reactor::register_handler_i(). + This is more consistent with the other naming schemes. + + * ace/Reactor.cpp: Reworked the implementation of the Handler + Repository's unbind() method in order to simplfy the logic. + Also merged in all the Reactor's detach() functionality into the + unbind() method in order to localize all the handler removal + processing. + + * ace/Reactor[Ex].cpp: Added more descriptive errno entries for + failed operations in the handler repository. + + * ace/Reactor.cpp: Modified the implementation of the Handler + Repository's bind() method so that it reports an error if you + try to register an Event_Handler for an invalid HANDLE. + + * ace/Reactor.cpp: Reimplemented the internals of the Reactor to + prepare for the upcoming merge of the Reactor and ReactorEx to + use a single code base. + + * ace/Timer_Queue.cpp: Modified the behavior of the expire() + methods so that they return the number of ACE_Event_Handlers + whose handle_timeout() method was called. + +Sat Jan 4 11:47:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will + be recast as a strategy in subsequent implementations. + + * ace/Reactor.cpp: Added a new call, + ACE_Handler_Repository::handle_in_range(), which checks to make + sure that the HANDLE is within the range of 0 .. max_handlep1_. + This factors out some redundant code. + + * ace/Reactor.cpp: Sped up the performance of the Reactor by + removing redundant calls to + ACE_Handler_Repository::invalid_handle() and + ACE_Handler_Repository::find(). + + * tests/Reactors_Test.cpp: Added a test for + the new Reactor::notify() method with timeouts. + + * examples/Reactor/Misc/notification.cpp (svc): Added a test for + the new Reactor::notify() method with timeouts. + + * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they + use timed send() operations for their notify() methods. This + makes it possible for users to bound the amount of time they're + willing to wait to try and notify the Reactor. This is mostly + useful to avoid infinite blocking if there is congestion in the + Reactor's notification mechanism. + + * ace/ACE.cpp: Added a new timed send() method that uses the + write() system call on UNIX and the socket send() call on Win32. + This new method is used in the new ACE_Reactor::notify() method, + which now supported timed notifications. + + * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code + and reduce unnecessary #ifdefs, I've merged the max_handlep1_ + and cur_size_ fields (which are now called max_handlep1_). + +Fri Jan 3 10:47:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace: Replaced all uses of "delete mb" with mb->release (); + + * ace/Stream_Modules.cpp: Replaced the use of explicit bit + twiddling with the ACE_BIT* macros. + + * ace/Message_Block.cpp: Make sure that we use the + allocator_strategy_ to create the memory for the reference count + since this may need to go into shared memory if that's the + memory pool where the Message_Block allocations are coming from. + + * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and + ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW, + except that these + + * ace/Message_Block.cpp (release): Make sure to "delete this" + outside the scope of the locking_strategy_. + + * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type. + Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for + suggesting this. + + * ace/Service_Object.i: Be smarter about how we reassign the name_ + pointer, i.e., delete the old one and make a copy. Thanks to + Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting + this. + + * ace/Module.cpp (open): Rearranged the assignments to + reader_q->mod_ and writer_q->mod_ so that we don't try to + initialize through NULL pointers. Thanks to + Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting + this. + + * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_ + to NULL so that the following change works correctly now. + Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for + reporting this. + + * ace/Service_Record.i (name): Make sure to delete [] (char *) + this->name_ before allocating a new one. Thanks to + Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting + this. + + * ace/Message_Block: Reworked the reference counting implemention + so that reference counts are shared correctly amongst their + various owners. This requires making a deep copy the "header" + portion, but a shallow copy of the "data." + + * ace/Message_Block.cpp (ACE_Message_Block): Updated all three + ACE_Message_Block constructors so that they all call the init() + method. This centralizes all the initialization logic in one + place. + +Thu Jan 2 00:42:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the + cont_ field to 0 after "releasing" it so that we don't + mistakenly think it's still around later on. This problem arose + in the ACE_Message_Queue::close() method, which was trying to + count the number of bytes being freed. + + * ace/Message_Queue.cpp (close): Fixed a subtle bug where we + weren't actually deleting messages from the + ACE_Message_Queue::close() routine. This should work now... + + * ace/Message_Queue.cpp (close): Replaced the use of "delete mb" + with "mb->release()" since the Message_Blocks are now reference + counted. + + * ace/Message_Block: Enhanced the reference counting scheme so + that you can increment and decrement the count by an arbitrary + amount. This is particular useful when you know you'll be + sending the same Message_Block to N consumers. + + * ace/Singleton: The dump() must be used same as instance() + (without supplying an object) so it must be declarated *static*, + i.e., + + static void dump (void); + + Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting + this. + + * examples/ASX/Event_Server: Completely rewrote and retested the + ACE Event Server example. The new code is *much* easier to + understand, has many more comments, is more robust, and compiles + much faster since I removed many of the templates. + + * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the + tranceiver so that it shuts down correctly when the Event_Server + exits. + + * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a + problem where we were trying to select() on ACE_STDIN on Win32. + Naturally, this doesn't work, so we used the + ACE::register_stdin_handler() to fix this. Thanks to + Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com> + for reporting this. + + * examples/ASX/Event_Server/Event_Server/Options: Changed the + Options class to be a Singleton... + + * ace/Task.h: Added "const" method qualifier to accessor methods + like is_reader() and is_writer(). + +Wed Jan 1 00:10:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * ace/Message_Block: Added a new static release() method that + behaves like the non-static method release(), except that it + checks if <mb> is 0. This is similar to CORBA::release(), which + is useful if you want to eliminate lots of checks for NULL + pointers before calling release() on them. + + * Updated all places in ACE where we use + ACE_Event_Handler::READ_MASK when we should be using + ACE_Event_Handler::ACCEPT_MASK. + + * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: + Changed the name of the acceptor class from Handle_Thr_Stream to + Handle_Thr_Acceptor, which is more accurate. + + * ace/Reactor: Since we've now got an + ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept + connections asynchronously using Win32 overlapped I/O) we can + now use this with the ACE_Reactor, as well. In particular, any + time that we are registering a "passive-mode" socket acceptor we + can now specify ACE_Event_Handler::ACCEPT_MASK. This is much + more intuitive than using the READ_MASK (which never made any + sense...). The ACE_Reactor now treats the ACCEPT_MASK as a + READ_MASK internally, so you can still use READ_MASK if you'd + like (i.e., this change doesn't break any existing code). + + * ace/Event_Handler: Changed "get_priority" and "set_priority" to + simply "priority(void)" and "priority(int)" to be more + consistent with other parts of ACE. + + * apps/Gateway/Gateway: Updated the Gateway so that the + concurrency strategies can now be specified on the + command-line (or in the svc.conf file), rather than being + determined at compile-time. This is much more flexible. + See the ./apps/Gateway/Gateway/README file for details. + + * apps/Gateway/Gateway: Verified that all the multi-threading + strategies still work. + + * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we + "release" the continuation field, rather than delete it, since + its reference count may be > 1. + + * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that + we always print a message to stderr if we're exiting, + regardless... Thanks to David Levine for pointing this out. + + * apps/Gateway/Gateway: Moved all of the configuration file + parsing logic *outside* of the Event_Channel into the Gateway + class so that we wouldn't have unnecessary dependencies. + + * apps/Gateway/Gateway: Redesigned the Gateway so that the + Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy) + most of their work to the Event_Channel. This "lightweight + proxy" design is an improvement since it is now possible to + emulate the COS Event Channel semantics within the Event_Channel + "kernel." + + * Happy new year! Let's start a new ChangeLog to celebrate the + new year. |