diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-07-02 18:43:26 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-07-02 18:43:26 +0000 |
commit | 9ed171fb922bc079a27294c5d6b6c440d5e93b60 (patch) | |
tree | eb6b8fb8b8205e6968bb93f35cd1ae7288dc02bc /ChangeLog-97a | |
parent | 73e41eebfb697d1ff20c21c312db6430496f8734 (diff) | |
download | ATCD-9ed171fb922bc079a27294c5d6b6c440d5e93b60.tar.gz |
ChangeLogTag:Mon Jul 2 13:18:14 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
Diffstat (limited to 'ChangeLog-97a')
-rw-r--r-- | ChangeLog-97a | 9203 |
1 files changed, 0 insertions, 9203 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a deleted file mode 100644 index d845fc33c31..00000000000 --- a/ChangeLog-97a +++ /dev/null @@ -1,9203 +0,0 @@ -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. |