diff options
56 files changed, 7916 insertions, 7855 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a index 0563ae1c093..d8a4de991ba 100644 --- a/ChangeLog-97a +++ b/ChangeLog-97a @@ -1,2763 +1,2763 @@ 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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/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/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/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: 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/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. + * 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. + * 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. + * 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. + * 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. + * 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(). + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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. + * 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_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/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/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/{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/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/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/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/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/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". + * 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.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. + * platform_vxworks5.x_g{++,hs}.GNU: renamed 5.x instead of 5.2. - * netsvcs/lib/Token_Handler.cpp: reordered initializers to match - declaration order. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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 + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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.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/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/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/Parse_Node.{h, cpp}: Use new ACE_SHLIB_HANDLE where appropriate. - * ace/Strategies_T.cpp: Use new ACE_SHLIB_HANDLE type. + * 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.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. + * 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 (). + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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. + * 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. + * 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). + * 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. + * 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/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/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/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. + * 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. + * 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. + * 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/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() + * 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. + * ace/OS.cpp (fork_exec): Fixed the usage of ACE_WIDE_STRING. - * test_registry_iterator.cpp (main): 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. + * 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/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/{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. + * ace/Connector.cpp && ace/Acceptor.cpp (info): Fixed sizeof bug. - * examples/Connection/blocking/SPIPE: Added UNICODE support for - this example. + * examples/Connection/blocking/SPIPE: Added UNICODE support for + this example. - * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING. + * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING. - * ace/ACE.cpp (terminate_process): Fixed unused args errors. + * 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. + * 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/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/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/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.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/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. + * 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. + * 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. + * 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. + * 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: 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/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: 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/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. + * 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. + * 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): 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. + * 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. + * 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/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. + * 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: 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. + * 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. + * 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. + * 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. + * 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/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. + * 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.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/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. + * 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) + * 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. + * 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. + * 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. - + * 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/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/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_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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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/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. + * 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/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. + * 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.{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. + * 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/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. + * 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.{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/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/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.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. + * 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/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. + * 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/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. + * 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 + * 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. + * ACE.cpp (count_interfaces): Two bugs were corrected here. Both + were typo. - * tests/Timer_Queue_Test.cpp: Added include file ace/Timer_Queue.h + * 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/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. + * 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. + * 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/Makefile: Updated to reflect newly added files - * ace/Proactor.cpp: Removed template specializations. + * ace/Proactor.cpp: Removed template specializations. - * ace/Reactor.cpp: Removed some template specializations. + * ace/Reactor.cpp: Removed some template specializations. - * ace/Timer_Hash.h: Added an include for Timer_Heap. + * 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_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_{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.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_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. + * 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/README: Revised. - * examples/Log_Msg/test_log_msg.cpp: Revised program output so - that it's clearer to explain. + * 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. + * 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. + * 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 + * ace/OS.i (set): There was a typo here where - ((long) (d - (double) l)) * 1000000 + ((long) (d - (double) l)) * 1000000 - should be + should be - (long) ((d - (double) l) * 1000000) + (long) ((d - (double) l) * 1000000) - since otherwise the values are always 0. Thanks to Jim Crossley - <jim@lads.com> for reporting this. + 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. + * 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. + * 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. + * examples/Log_Msg/README: Added a README file. - * tests/Sigset_Ops_Test.cpp (main): bug fixed. + * 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/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 + * ace/ACE: Added a new method called - int get_ip_interfaces(count, address_array) + 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. + 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. + * 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. + * 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. + * 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. + * 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. + * 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++. + * 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. + * 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/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. + * 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/Reactor.cpp: added template specializations. - * ace/Timer_Queue_T.cpp (ACE_Timer_Queue_T ctor): rearranged - initializers to match declaration order. + * 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. + * 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-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. + * 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. + * 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 + * 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/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/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. + * 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,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. + * 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.*: + * 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 + 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.*: + * ace/Timer_Queue_T.*: - Changed iterator accessor to public + 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) + 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 + 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*: + * ace/Timer_Heap*: - Added upcall functor deletion() support + Added upcall functor deletion() support - Added remove_first () method that removes and returns the - earliest timer in the queue - - * ace/Timer_List*: + 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 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) - 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 + Added upcall functor deletion() support - * 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 - Added HighRes timer support + 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 - Added upcall functor deletion() support + * 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 - Added earliest_pos_ variable to keep track of the list with the - earliest node + Created an expire that is specialized for ACE_Timer_Wheel - 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 - 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*: - * 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 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 HighRes timer support + Added upcall functor deletion() support - Added upcall functor deletion() support + Created an expire that is specialized for ACE_Timer_Hash - 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 - 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.* - * 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). - 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: - * ace/OS.h: + Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant - Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant + Added ACE_DEFAULT_FREE_LIST_* constants - Added ACE_DEFAULT_FREE_LIST_* constants + * ace/Proactor.*: - * 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. - 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: - * tests/Timer_Queue_Test.cpp: + Added HighRes timer support - Added HighRes timer support + Changed the array of timer queues into a list (to more easily + add/remove/comment out an entry) - 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 + 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 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. + * 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. + * 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. + * 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 + * 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. + 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + (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. + (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. + * 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. + * 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.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/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/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/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). + * 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 + * 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. + (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. + (initiate_connection): Removed the code that did + rescheduling. The proxies are responsible for this. - * apps/Gateway/Gateway/Event_Channel.cpp + * apps/Gateway/Gateway/Event_Channel.cpp - (initiate_proxy_connection): Must *always* use the correct synch - options while connecting. + (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. + (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. + 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. + (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/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. + * 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. + * tests/UPIPE_SAP_Test.cpp: Fixed output message. - * Handle_Set.i (operator): Fixed typo. + * 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". + * 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. + * 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. + * 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. + * 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/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/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. + * 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/*.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. + * 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. + * 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. + * 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. + * 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. + 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 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. + 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<> + 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. + * 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. + * 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. + * 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. + * 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/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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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/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.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/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. + * 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. + * 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.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.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/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. + * 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. + * 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. + * 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. + 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. + 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. + * 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 + * ace/config-hpux-9.x.h: Added - #define ACE_HAS_BROKEN_ENUMS - #define ACE_HAS_IP_MULTICAST - #define ACE_LACKS_GETPGID + #define ACE_HAS_BROKEN_ENUMS + #define ACE_HAS_IP_MULTICAST + #define ACE_LACKS_GETPGID - Thanks to Neil Cohen for reporting these. + 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. + * 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. + * 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. + * 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/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. + * 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. + * 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/{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/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 (). + * 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. + * 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} (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. + * 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. + * 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/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. + * 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. + * 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. + * 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_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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/{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/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. + * 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/{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/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. + * 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/config-freebsd.h (ACE_HAS_BROKEN_TIMESPEC_MEMBERS): - * ace/OS.i (set, timestruct_t, nanosleep): + * ace/OS.i (set, timestruct_t, nanosleep): - * ace/High_Res_Timer.cpp (elapsed_time): + * 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. + * 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/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: + * apps/Gateway/Gateway/Gateway.cpp: - - Added necessary DLL build macros. + - Added necessary DLL build macros. - - Removed error checking for Reactor::remove_handler() for STDIN - as STDIN is never registered with the Reactor on Win32. + - Removed error checking for Reactor::remove_handler() for STDIN + as STDIN is never registered with the Reactor on Win32. - - Fixed the registration of SIGINT. + - Fixed the registration of SIGINT. - - blocking_semantics_ should be 1 when blocking is on and not 0. + - 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. + - 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: + * apps/Gateway/Gateway/Event_Channel.cpp: - - Only if socket_queue_size > 0, do we set a new value. + - 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. + - 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/Gateway/Concrete_Proxy_Handlers.cpp: Added + necessary DLL build macros. - * apps/Gateway/Peer/Peer.cpp: + * apps/Gateway/Peer/Peer.cpp: - - Added include file and necessary DLL build macros. + - 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. + - Removed error checking for Reactor::remove_handler() for STDIN + as STDIN is never registered with the Reactor on Win32. - - Fixed the registration of SIGINT. + - Fixed the registration of SIGINT. - * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles. + * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles. - * ace/ACE.cpp (read_adapter): Handle for the read_adapter should - always be STDIN. + * 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. - + * 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. + * 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_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/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/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. + * 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. + * 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. + * 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/config-irix6.2-sgic++-nothread.h: Added the following: - ACE_LACKS_LINEBUFFERED_STREAMBUF - ACE_HAS_SETOWN - ACE_HAS_SYSENT_H - ACE_HAS_SYSINFO + ACE_LACKS_LINEBUFFERED_STREAMBUF + ACE_HAS_SETOWN + ACE_HAS_SYSENT_H + ACE_HAS_SYSINFO - Thanks to Torbjorn Lindgren <tl@funcom.com> for reporting - this. + 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/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/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/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! + * 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_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_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_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. + * 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. + * 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. + * 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. + * 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). + * 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. + * 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. + * 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_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. + * 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/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. + * 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. + * 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/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_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_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.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/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 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. + * 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. + * 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). + * 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/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.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/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/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/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" + * 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/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. + * 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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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.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/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/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/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/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/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. + * 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. + * 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/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed code. - * examples/Naming: Replaced multiple makefiles with one makefile. + * examples/Naming: Replaced multiple makefiles with one makefile. - * ace/OS.h: Added UNICODE support for some #defines. + * ace/OS.h: Added UNICODE support for some #defines. - * OS.i (vsprintf): Added support for this in ACE_OS. + * 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. + * 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: + Also added a (handy) sprintf that has the following prototype: - sprintf (wchar_t *buf, const char *format, ...) + sprintf (wchar_t *buf, const char *format, ...) - * ace/Process: UNICODE fixes. + * ace/Process: UNICODE fixes. - * tests: Fixed the following such that they work with UNICODE: + * 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 + 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. + * 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.h: To make C++ compilers happy I added + the following changes by modifying - ACE_IOStream & operator>>( ACE_Time_Value *& tv ); + ACE_IOStream & operator>>( ACE_Time_Value *& tv ); - to be + to be - ACE_IOStream<STREAM> & operator>>( ACE_Time_Value *& tv ); + ACE_IOStream<STREAM> & operator>>( ACE_Time_Value *& tv ); - Thanks to Chuck Gehr for this fix. + 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 []. + * 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. + * 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. + * 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/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. + * 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: 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/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. + * 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. + * 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. + 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[]). + * 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/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. + * 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_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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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. + * 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. + * 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.*: 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. + * 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. + * 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. + * 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/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. + * 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. + * 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: + * 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 + #define ACE_LACKS_SETSCHED + #define ACE_LACKS_RWLOCK_T + #define ACE_LACKS_GETPGID - Thanks to Tom Dobridge <dobridge@persimmon.com> for reporting - this. + 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.h: added DEC_CXX. - * ace/config-osf1-4.0-g++.h: removed commented-out - ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS. + * 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. + 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. + * 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. + * 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. + * 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. + * 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 - + * 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. + * 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) + * include/makeinclude/platform_aix4.2.GNU (LLIBS): Changed + + LLIBS = -lC_r -lC -lpthreads -lbsd -ltli_r -ldl -lc_r -lm -lc $(ACELIB) - to + to - LLIBS = -ltli_r -ldl $(ACELIB) + LLIBS = -ltli_r -ldl $(ACELIB) - MakeC++SharedLib_r includes all the other libs automatically in - the search. + 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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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/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/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/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/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/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/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. + * 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. + * 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. + * 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: 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/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/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: 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." + * 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_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/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. + * 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: 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/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. + * 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 + * 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. + * 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. + 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/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 + * 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. + * 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/{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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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.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/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. + * 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. + * 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. + * 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 (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. + * 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 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: 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. + * 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. + * 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/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/config-vxworks-ghs-1.8.h: added ACE_LACKS_SIGNED_CHAR. - * ace/Containers.cpp (dequeue_head): fixed typos in variable names. + * 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. + * 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. + * 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): + * 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. @@ -2793,8 +2793,8 @@ Tue May 6 17:02:54 1997 James C Hu <jxh@polka.cs.wustl.edu> 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. + * 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> @@ -2803,447 +2803,447 @@ Mon May 5 22:17:15 1997 Sumedh Mungee <sumedh@cs.wustl.edu> 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. + * 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/ace.{mak,mdp}: Readded IOStream.cpp to the makefile. - * ace/Synch_T.h: Added ACE_SYNCH_RECURSIVE_MUTEX. + * 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. + * 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 (). + 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: 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/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.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/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: 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/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/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: 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/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 ;-). + * 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: + 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. + * 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/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: 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/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/config-hpux-10.*.h: Applied a number of patches courtesy of + Carlos O'Ryan. - * ace/Dump.cpp: Changed a cast from + * ace/Dump.cpp: Changed a cast from - delete (ACE_Dumpable_Ptr *) this->dumper_; + delete (ACE_Dumpable_Ptr *) this->dumper_; - to + to - delete (ACE_Dumpable *) this->dumper_; + delete (ACE_Dumpable *) this->dumper_; - This fixes a potential bug. Thanks to Carlos O'Ryan for this - bug report. + 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/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/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: 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. + * 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. + * 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. + * 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): + * ace/Stack.* (ACE_Unbounded_Queue): - 1) made peek () const. - 2) added another peek (u_int index = 0) function that can peek + 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 (). + 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. + * 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. + * 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/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: 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/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/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/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 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/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/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. + * 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. + * 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 ;-). + * 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! + * 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! + * 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. + * 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/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/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: 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_. + * 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. + * 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/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>::operator =): typo: fs instead of bs. - * ace/Set.cpp (ACE_Fixed_Set<T, SIZE>::find): typo: index instead of i. + * 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". + * 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. + * 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/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 + * 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. + 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/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 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: 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/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/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/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*.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. + * 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/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/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. + * 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. + 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. + * 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. + * 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. + * 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. + * 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/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 + * 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 &); + // = 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> &); + 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. + 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.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. + * 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(). + * 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/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/OS.i: cleaned up ACE_LACKS_PWD_FUNCTIONS comments a bit. - * ace/Array.{h,i}: added const operator []. + * ace/Array.{h,i}: added const operator []. - * ace/Array.cpp (ctors): reordered initializers to match declaration - order. + * 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. + * 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 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 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. + * 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/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/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. + * 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. + * 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> @@ -3254,386 +3254,386 @@ Tue Apr 29 20:03:38 1997 <sumedh@cs.wustl.edu> 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. + * 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 + * 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/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/Token_Handler.cpp (init): Removed the registration + of the Acceptor for SIGINTs. - * netsvcs/lib/TS_Server_Handler.cpp (init): Same as above. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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/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. + * 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. + * 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. + * 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(). + * 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! + * 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. + * 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. + * 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 + * 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 + 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 + Added the following files -- + HTTP_Response.cpp HTTP_Response.h Parse_Headers.cpp + Parse_Headers.h - Removed the file -- - JXH_String.h + Removed the file -- + JXH_String.h - * JAWS/stress_testing: Changed the Makefile to link in the math - library (-lm). + * JAWS/stress_testing: Changed the Makefile to link in the math + library (-lm). - * ace/OS.h and ace/OS.i: Added support for memmove(). + * 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/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.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. + * 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. + * 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. + * 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/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: 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}). + * 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. + * 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 + * 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/Event_Server/Peer_Router.cpp: Added + template specializations. - * examples/ASX/Event_Server/Transceiver/transceiver.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. + * 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 (). + * 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. + * 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... + * 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. + * ace/Proactor.h: Added Timer_Wheel support. -Sun Apr 27 18:13:24 1997 Sumedh Mungee <sumedh@cs.wustl.edu> +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}. @@ -3643,242 +3643,242 @@ Sun Apr 27 18:13:24 1997 Sumedh Mungee <sumedh@cs.wustl.edu> 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_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: added newline at end of file. - * ace/Timer_Wheel_T.cpp (ACE_Timer_Wheel_T ctor): reordered - initializers to match declaration order. + * 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! + * 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. + * 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/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/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. + * 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/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. + * 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. + * 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/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/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/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); + 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. + 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: 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. + * 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: + * 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 + 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. + * 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/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_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/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/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. + * 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. + * 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/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/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. + * 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. + * 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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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> @@ -3889,481 +3889,481 @@ Wed Apr 23 22:56:57 1997 Sumedh Mungee <sumedh@cs.wustl.edu> 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/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. - + * 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. + * 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). + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + 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.) + 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. + * 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/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. + * 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. + * 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. + * 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 + This also affected ACE_Timer_List and ACE_Timer_Heap - * ace/Strategies: Added ACE_Upcall_Strategy. + * ace/Strategies: Added ACE_Upcall_Strategy. - * ace/Proactor: Added timing support to the <handle_event> calls. + * ace/Proactor: Added timing support to the <handle_event> calls. - * ace/Asynch_IO: ACE_Handler now supports handle_timeout. + * 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. + * 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 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 + 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. + * 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. + * 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/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. + * 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. + * 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> +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/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 - + * 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. + * 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. + * 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: 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. + * 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. + * 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 (). + * (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. + * 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. + * 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: + * 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_); + return ACE_OS::cond_wait (&this->cond_, &mutex_.lock_); - Thanks to Ashish Singhai <Ashish.Singhai@ACM.ORG> for reporting - this. + 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. + * 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. + * 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.) + (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. + * 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! + * 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. + * 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. + * 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. + * 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 + * 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 + this->handles_.mask_.fds_bits[this->index_] == 0 + && this->num_ < ACE_Handle_Set::MAXSIZE - was backwards. It should be: + was backwards. It should be: - this->index_ < ACE_Handle_Set::NUM_WORDS + 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. + 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. + * 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: Added test to batch files and + MSVC++ Makefiles. - * tests/Process_Strategy_Test.cpp (open): Added UNICODE support. + * tests/Process_Strategy_Test.cpp (open): Added UNICODE support. - * ace/OS.h: Added SIGCHLD to Win32 section. + * 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. + * 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_. + * 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. + * 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. + * 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. + * 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. + * 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: + * 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. + - 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. + - 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 + * 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 + to - LIBS += -lsocket -lnsl -ldl + LIBS += -lsocket -lnsl -ldl - Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this. + 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/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. + * 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. + * 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... + * 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. + * 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> @@ -4386,1191 +4386,1191 @@ Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu> * 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. + 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. + 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. + * 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. + * 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. + * 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. + * 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. + * 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/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.h (WNOHANG): Added WNOHANG to OS.h for Win32. - * ace/OS.i (getpgid): Fixed extra return. + * 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. + * 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/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. + * 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. + 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/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. + * 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. + * 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/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. + * 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. + * 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.) + * 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. + * 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: + * 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; + Event_Transceiver transceiver, *tp = &transceiver; - connector.connect (tp, ACE_INET_Addr (port_number, host_name)); + connector.connect (tp, ACE_INET_Addr (port_number, host_name)); - Thanks to David Levine for reporting this problem. + 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. + * 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. + * 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 (). + * 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. + * 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/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/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/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/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.) + * 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. + * 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. + + * 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. + * 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. + * 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/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. + * 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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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: 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.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/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/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/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.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: 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/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/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. + * 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. + * 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. + * 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. + * 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! + * 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. + * 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/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 #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[-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/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/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>. + * 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). + * 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-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/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. + * 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 + * 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. + * 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/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/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/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 + + 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: + Deleted the following definitions: - + #define ACE_HAS_SYS_SIGLIST (Irix's compiler only has a - _sys_siglist array when compiling their own internal - functions). + + #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. + 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/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/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/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/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/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/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. + * 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: + * 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 + % make clean; make purify=1 - These options assume that purify or quantify are in your PATH. + 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.{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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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 + * ace/XtReactor.cpp (register_handler_i): Added the - if (mask & ACE_Event_Handler::ACCEPT_MASK) - ACE_SET_BITS (condition, XtInputReadMask); + if (mask & ACE_Event_Handler::ACCEPT_MASK) + ACE_SET_BITS (condition, XtInputReadMask); - Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for - reporting this. + 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/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/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: 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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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! + * 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.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 (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. + * 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. + * 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/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-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. + * 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. + * 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. + * 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. + * 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_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. + * 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. + * 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! - + * 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. + * 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: 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.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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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/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. + * 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. + * 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 + * 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. + 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 (); + * 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. + 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 (); + * 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. + 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_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. + * 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/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. + * 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. + * 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. + * 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/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/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/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. + * 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. + * 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/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. + * 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/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/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. + * 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/Makefile: added -lGateway to LIBS to + pick up its template instantiations during links. - * apps/Gateway/Peer/Peer.cpp: added template instantations. + * 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: + * ace/OS.h: Added two new accessors to ACE_Time_Value: - operator timeval *() const; - // Returns a pointer to the object as a timeval. + 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. + 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. + 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.i (ACE_Time_Value): Inlined many of the ACE_Time_Value + accessors. - * ace/OS.h: Reimplemented ACE_Str_Buf at + * 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. - }; + 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. + 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/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. + * 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/{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.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. + * 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. + * 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), + * 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; + 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) { @@ -5589,1478 +5589,1478 @@ Thu Mar 27 10:05:59 1997 Prashant Jain <pjain@merengue.cs.wustl.edu> 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. + * 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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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: + * 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>. + 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. + 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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/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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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! + * 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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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. + * 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: 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/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. + * 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. + * 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/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. + * 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. + * 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/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/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.{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. + * 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: 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/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: 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/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/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/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): 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. + * 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/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. + * 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. + 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. + * 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. + * 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.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. + * 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. + * 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. + 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. + * 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/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. + * 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. + * 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/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/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.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/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_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. + * 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. + * 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. + * 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 ;-) + 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. + * 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). + * 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(). + * ace/Log_Record.cpp: Corrected format string for fprintf(). - * examples/Threads/test.mdp: Added context_switch_time.cpp to the - project. + * 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. + 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). + * 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 (). + * 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 (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/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. + * 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. + * 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. + * 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: + * 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. + // 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. + 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. + * 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: + * 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_); + 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_); + this->file_mapping_ != ACE_INVALID_HANDLE) + ACE_OS::close (this->file_mapping_); - Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting - this. + 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. + * 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. + * 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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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 (). + * 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. + * 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. + * 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/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/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. + * 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. + 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/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. + * 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_) + * 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. + 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: 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: 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. + * 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. + * 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. + * 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.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/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/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. + * 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 (). + * 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. + * 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]; - }; + * 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. + 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. + * 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. + * 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 + * ace/OS.i: Fixed a bug in gethrtime - const ACE_Time_Value now = ACE_OS::gettimeofday (void); + const ACE_Time_Value now = ACE_OS::gettimeofday (void); - which should be + which should be - const ACE_Time_Value now = ACE_OS::gettimeofday (); + const ACE_Time_Value now = ACE_OS::gettimeofday (); - Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting - this. + 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. + * 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. + * 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). + * 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. + * 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. + * 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. + 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. + * 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(). + * 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. + * 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/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.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/OS.i (thr_cancel): Changed the line - ACE_UNUSED_ARG (t_id); + ACE_UNUSED_ARG (t_id); - to + to - ACE_UNUSED_ARG (thr_id); + ACE_UNUSED_ARG (thr_id); - Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting - this. + 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/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. + * 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. + * 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/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. + * 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.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/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/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.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. + * 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-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. + * 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/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/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/ACE.cpp (sock_error): added ACE_UNUSED_ARG (error);. - * ace/Timer_Queue.cpp (ctor): rearranged initializers to - match declaration order. + * 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/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/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. + * 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/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. + * 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. + * 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/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. + * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New + project files for Win32. - * ace/Log_Msg.cpp: Minor changes. + * 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/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/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. + * 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/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. + * 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. + * 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. + * 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. + * 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: 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/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/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". + * 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. + * 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. + * 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/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! + * 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. + * 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. + * 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. + * 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. + * 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);. + * 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/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. + * 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 + * 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 + * 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. + * 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. + * 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. + * 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. + * 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/Reactor.cpp: Modified to use timer_queue_->gettimeofday(). - * ace/Proactor.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/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. + * 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. + * 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 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. + * 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: + * 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; + ACE_thread_key_t key = 0; to: @@ -7074,1695 +7074,1695 @@ Tue Feb 18 16:41:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> key = ACE_OS::NULL_key; - Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting - this. + 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(). + * 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: + * ace/ReactorEx: - (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay - <Hamutal_Yanay@mail.icomverse.com> for suggesting this. + (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. + (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. + (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. + (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/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. + * 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_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);. + * 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. + * 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/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. + * 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/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. + * 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 + * examples/Mem_Map/IO-tests/test_io.cpp (main): added ACE_UNUSED_ARG (sa);. - * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG + * 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: + * ace/ReactorEx: - (a) Added a closed_for_business_ flag so that handle_events() - cannot be called after the ReactorEx has been closed down. + (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. + (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. + * 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. + (c) Timers were added to the test. - * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF. + * 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.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/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. + * 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/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. + * 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. + * 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/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. + * 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. + * 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/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/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/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. + * 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. + * 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/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. + * 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/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. - + * 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/SOCK_Test.cpp (server): Changed recv_n() to recv(). - * tests/tests.{mak,mdp}: Added two new tests: IOStream and - Reactor_Notify. + * 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. - + * 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(). + * 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/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.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/SOCK_Stream.i (recv_n): Fixed a minor bug in the + SOCK_Stream.i line 38: - ACE_TRACE ("ACE_SOCK_Stream::send_n"); + ACE_TRACE ("ACE_SOCK_Stream::send_n"); - should be + should be - ACE_TRACE ("ACE_SOCK_Stream::recv_n"); + ACE_TRACE ("ACE_SOCK_Stream::recv_n"); - Thanks to Paul Roman <proman@npac.syr.edu> for reporting this. + 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. + * 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/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. + * 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/test.{mdp,mak}: Reorganized project so that it + is easier to use. - * examples/Threads: Small changes to make tests run faster. + * 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. + * ace/OS.i (stat): Added stat() to ACE_OS. - * apps/jaws: The ACE web server has now been ported to Win32. + * apps/jaws: The ACE web server has now been ported to Win32. - * ace/ReactorEx: Add a new version of remove_handler(). + * ace/ReactorEx: Add a new version of remove_handler(). - * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only - <concurrent_threads> are activated. + * 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. + * ace/ReactorEx: Made minor changes to the ReactorEx. - * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new - ReactorEx test to use ACE_Tasks. + * 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. + * 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/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: 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/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. + * 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/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. + * 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. + * 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/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/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. + * 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_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/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. + * 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. + * 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/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.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/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/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. + * 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/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. + * 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/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. + * 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. + * 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. + * 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. + * 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.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: 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: 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/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. + * 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. + * 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. + * 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/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. + * 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/{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/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. + * 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/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. + * 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/Synch.cpp (dump): Fixed access error. - * ace/OS.h: Fixed ACE_rwlock_t friend declaration. + * 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. + * 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! + * 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/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++. + * 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/client/iostream_client.cpp: + reordered args and fixed argv indexes. - * examples/IOStream/server/iostream_server.cpp: - use ACE_DEFAULT_SERVER_PORT for default port. + * 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. + * 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. + * 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/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/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/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. + * 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. + * 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. + * 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.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/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/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. + * ace/High_Res_Timer.*: added optional scale factor. - * examples/IOStream/{client,server}/Makefile: addd -g++ if building - with gcc. + * 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. + * 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/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. + * 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/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/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/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/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: 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_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/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. + * 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. + * 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/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/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. + * 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/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.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/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. + * 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/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.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. + * 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. + * 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 () + * 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. + * 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/{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/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". + * 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/OS.h: changed hrtime_t to ACE_hrtime_t. - * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to - enable gethrtime () support. + * 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 &). + * 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. + * 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.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T. - * ace/config-aix-4.2.x.h: added #define 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. + * 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/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. + * 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. + * 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/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_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/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the + maximum path length. - * ace/Naming_Context.cpp: Fixed various memory leaks. + * 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_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/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. + * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra + constructor. - * tests/Naming_Test.cpp: Removed memory leaks. + * 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. + * 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. + * 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/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/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.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". + * 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. + * 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. + * 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. + * 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). + * 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. + * 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/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. + * 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. + * 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/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/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. + * 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. + * 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. + * 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/{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.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.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,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/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 (). + * 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 (). + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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.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/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks. - * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated - comments. + * 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. + * 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. + * 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. + * 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. + * 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/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/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. + * 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/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: 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. + * 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/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. + * 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. + * 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. + * 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/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 (). + * 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. + * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags. - * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe. + * 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. + * 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/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. + * 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/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_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 () + * 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" + "lock_name_for_local_name_space" - * ace/Naming_Context.cpp (both constructors): reordered - initializers to match declaration order. + * 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. + * 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, + * 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_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: + * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to: - /* Proactor */ + /* 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. + * 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. - + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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". + * 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/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. + * 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/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/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/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/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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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-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. + * 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.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.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 (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/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/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: + * 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 */ + #if defined (ACE_LACKS_SYS_NERR) + int sys_nerr = ERRMAX + 1; + #endif /* ACE_LACKS_SYS_NERR */ - Thanks to Chuck Gehr for reporting this. + 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. + * 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. + * 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. + * 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/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. + * 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. + * 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. + * 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. + * 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/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/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__). + * 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);. + * 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/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. + * 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/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/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added + ACE_UNUSED_ARG (sa);. - * tests/Thread_Pool_Test.cpp (open): added return 0 at end. + * 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. + * 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. + * 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/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. + * 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/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. + * 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);. + * 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. + * 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. + * 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. + * 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 (). + * 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 (). + * 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. + * 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.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. + * 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. + * 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. + * 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. + * 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: 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_{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/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. + * 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. + * 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. + * 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". + * Service_Repository.cpp (remove): removed unused variable "handle". - * Thread_Manager.h: made destructor virtual now that spawn_i () is - virtual. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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/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/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/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. + * 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. + * 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. + * 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". + * 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/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/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. + * 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. + * 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. + * 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. + * 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 (round_to_pagesize): fixed typo in reference to + ACE::pagesize_. - * ace/ACE.cpp: initialize ACE::pagesize_ to 0. + * 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. + * 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. + * 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: + * 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 ) + pthread_setschedparam( thr_id, &policy, ¶m ) and then does @@ -8770,434 +8770,434 @@ Sat Jan 11 15:11:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> 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. + 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. + * 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. + * 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. + * 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/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_Object.cpp (ACE_Service_Object): reordered + initializations in constructor - * ace/Service_Record.cpp (ACE_Service_Record): 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. + * 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: 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/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: 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/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. + * 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. + * 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). + * 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. + * 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! + * 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. + * 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/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. + * 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. + * 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.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.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/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: 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: 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.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[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: 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/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. + * 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.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: 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(). + * 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. + * 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. + * 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/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/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_). + * 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: 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/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/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/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/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.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/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/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.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/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: 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. + * 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_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): 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_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/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() + * ace/Singleton: The dump() must be used same as instance() (without supplying an object) so it must be declarated *static*, - i.e., + i.e., - static void dump (void); + static void dump (void); - Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting - this. + 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: 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/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/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... + * 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(). + * 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. + * 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. diff --git a/ChangeLog-97b b/ChangeLog-97b index cb3e925925f..20bc06aa401 100644 --- a/ChangeLog-97b +++ b/ChangeLog-97b @@ -22,119 +22,119 @@ Sun Nov 23 13:32:02 1997 David L. Levine <levine@cs.wustl.edu> Sat Nov 22 19:16:35 1997 <irfan@TWOSTEP> - * tests/Process_Strategy_Test.cpp: + * tests/Process_Strategy_Test.cpp: - main: Removed signal handling code. It is unnecessary since we - do not use kill() anymore. + main: Removed signal handling code. It is unnecessary since we + do not use kill() anymore. - Process_Strategy: This subclass of ACE_Process_Strategy - overwrites the process creation method to include connection - counting. + Process_Strategy: This subclass of ACE_Process_Strategy + overwrites the process creation method to include connection + counting. - connection_completed: Made sure that the Reactor is woken up - after all the connections have completed. + connection_completed: Made sure that the Reactor is woken up + after all the connections have completed. - * ace/Priority_Reactor.cpp (init_bucket): Removed extra code. + * ace/Priority_Reactor.cpp (init_bucket): Removed extra code. - * ace/Acceptor.cpp (activate_svc_handler): open svc_handler only - if result is 0. Also removed extra tracing code. + * ace/Acceptor.cpp (activate_svc_handler): open svc_handler only + if result is 0. Also removed extra tracing code. - * ace/Handle_Set.i (reset): Purify is reporting a UMR - (uninitialized memory copy) when copying a Handle_Set. This - comes from the mask fd_set not being memset to 0 by FD_ZERO. - This is therefore a harmless error. + * ace/Handle_Set.i (reset): Purify is reporting a UMR + (uninitialized memory copy) when copying a Handle_Set. This + comes from the mask fd_set not being memset to 0 by FD_ZERO. + This is therefore a harmless error. - * tests/Priority_Reactor_Test.cpp (main): The ordering of - auto_ptrs is very subtle.... "auto_ptr<ACE_Reactor> reactor" - should come before "auto_ptr<ACE_Select_Reactor> impl", i.e., - the implementation should be destroyed *before* the forwarding - class. This is apparent when the implementation class is - removing registered event handlers that hold a pointer to the - forwarding class. + * tests/Priority_Reactor_Test.cpp (main): The ordering of + auto_ptrs is very subtle.... "auto_ptr<ACE_Reactor> reactor" + should come before "auto_ptr<ACE_Select_Reactor> impl", i.e., + the implementation should be destroyed *before* the forwarding + class. This is apparent when the implementation class is + removing registered event handlers that hold a pointer to the + forwarding class. Sat Nov 22 16:04:07 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu> - * ace/Message_Queue.cpp: - Fixed some formating problems in the ACE_Message_Queue::dump - method, thanks to Arturo Montes <mitosys@colomsat.net.co> for - finding this one. + * ace/Message_Queue.cpp: + Fixed some formating problems in the ACE_Message_Queue::dump + method, thanks to Arturo Montes <mitosys@colomsat.net.co> for + finding this one. Sat Nov 22 14:38:22 1997 Steve Huston <shuston@riverace.com> - * ace/config-aix-4.2.x.h: Added ACE_TLI_TCP_DEVICE "/dev/xti/tcp". - This fixes Riverace problem ID P32; AIX now joins HP-UX in - supporting XTI/TLI, but not everything (problem P27). + * ace/config-aix-4.2.x.h: Added ACE_TLI_TCP_DEVICE "/dev/xti/tcp". + This fixes Riverace problem ID P32; AIX now joins HP-UX in + supporting XTI/TLI, but not everything (problem P27). - * ace/UPIPE_Connector.h: - * ace/TLI_Connector.h: Added meta-type information PEER_ADDR and - PEER_STREAM. Fixes Riverace problem ID P37. + * ace/UPIPE_Connector.h: + * ace/TLI_Connector.h: Added meta-type information PEER_ADDR and + PEER_STREAM. Fixes Riverace problem ID P37. - * apps/JAWS/server/HTTP_Server.cpp: Added 'const' to "char *prog". - Fixes Riverace problem P36. + * apps/JAWS/server/HTTP_Server.cpp: Added 'const' to "char *prog". + Fixes Riverace problem P36. - * examples/Connection/misc/test_upipe.cpp: - * examples/Connection/non_blocking/CPP-connector.cpp: - * examples/Threads/process_mutex.cpp: - * examples/Threads/process_semaphore.cpp: - Added 'const' to "char *" - can't initialize a char * with - a const string. Fixes Riverace problem ID P38, P40. + * examples/Connection/misc/test_upipe.cpp: + * examples/Connection/non_blocking/CPP-connector.cpp: + * examples/Threads/process_mutex.cpp: + * examples/Threads/process_semaphore.cpp: + Added 'const' to "char *" - can't initialize a char * with + a const string. Fixes Riverace problem ID P38, P40. - * examples/Threads/thread_specific.cpp, tss1.cpp: Moved the Errno - class out to a new file, thread_specific.h. AIX xlC needs to have - the class in a .h file for template generation. Fixes Riverace - problem P42. - * examples/Threads/Makefile: Make sure that, on AIX, the tempinc - directory is cleared before building each new program. + * examples/Threads/thread_specific.cpp, tss1.cpp: Moved the Errno + class out to a new file, thread_specific.h. AIX xlC needs to have + the class in a .h file for template generation. Fixes Riverace + problem P42. + * examples/Threads/Makefile: Make sure that, on AIX, the tempinc + directory is cleared before building each new program. - * performance-tests/Synch-Benchmarks/Makefile: Changed SHLIB to use - $(SOEXT) rather than .so. Fixes Riverace problem ID P41. + * performance-tests/Synch-Benchmarks/Makefile: Changed SHLIB to use + $(SOEXT) rather than .so. Fixes Riverace problem ID P41. - * tests/Thread_Pool_Test.cpp: Moved 'this->getq(mb)' out of an - ACE_ASSERT. Thanks to Arturo Montes <mitosys@colomsat.net.co> - for finding this. + * tests/Thread_Pool_Test.cpp: Moved 'this->getq(mb)' out of an + ACE_ASSERT. Thanks to Arturo Montes <mitosys@colomsat.net.co> + for finding this. Sat Nov 22 05:44:10 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> - * tests/Process_Strategy_Test.cpp (main): Shuffled things around - in fork() block. This is fun. + * tests/Process_Strategy_Test.cpp (main): Shuffled things around + in fork() block. This is fun. - * ace/Strategies_T.cpp (activate_svc_handler): Added an - ACE_UNUSED_ARG macro to muffle g++. + * ace/Strategies_T.cpp (activate_svc_handler): Added an + ACE_UNUSED_ARG macro to muffle g++. - * tests/Process_Strategy_Test.cpp (handle_close): Added a return - type specifier. Without it, g++ laments. + * tests/Process_Strategy_Test.cpp (handle_close): Added a return + type specifier. Without it, g++ laments. - * ace/Acceptor.cpp (activate_svc_handler): Should be if (open (...) == - -1) then error, not if (open (...) != -1) then error. + * ace/Acceptor.cpp (activate_svc_handler): Should be if (open (...) == + -1) then error, not if (open (...) != -1) then error. - * ace/ACE.cpp (set_handle_limit): Removed a duplicated ACE_TRACE - macro. + * ace/ACE.cpp (set_handle_limit): Removed a duplicated ACE_TRACE + macro. Sat Nov 22 00:26:11 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> - * ace/Thread_Manager.cpp (close): Activated automatic wait on - close functionality. I think I get it right this time. + * ace/Thread_Manager.cpp (close): Activated automatic wait on + close functionality. I think I get it right this time. Fri Nov 21 19:59:37 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu> - * ace/IPC_SAP.cpp: - Added a couple of ACE_NOTREACHED protections. Thanks to Brian - Mendel <bmendel@mdc.com> for reporting this. + * ace/IPC_SAP.cpp: + Added a couple of ACE_NOTREACHED protections. Thanks to Brian + Mendel <bmendel@mdc.com> for reporting this. Fri Nov 21 17:12:48 1997 <nw1@CHA-CHA> - * ace/Thread_Manager.cpp (close): Deactivated automatic wait on - close for now. It doesn't seem to work on Solaris. + * ace/Thread_Manager.cpp (close): Deactivated automatic wait on + close for now. It doesn't seem to work on Solaris. - * ace/Thread_Manager.{h,cpp} (wait): Added codes to remove detached - threads. This function can be activated selectively. I added - this so we can ignore detached threads when closing down the - default thread manager. + * ace/Thread_Manager.{h,cpp} (wait): Added codes to remove detached + threads. This function can be activated selectively. I added + this so we can ignore detached threads when closing down the + default thread manager. - (close): Activated the code to wait (join) all threads managed - by the thread manager. It will ask wait function to remove all - detached thread first (and so they won't be counted into threads - we are waiting for.) + (close): Activated the code to wait (join) all threads managed + by the thread manager. It will ask wait function to remove all + detached thread first (and so they won't be counted into threads + we are waiting for.) Fri Nov 21 13:22:25 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> @@ -142,139 +142,139 @@ Fri Nov 21 13:22:25 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Fri Nov 21 12:18:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/Acceptor.cpp,Strategy_T.cpp: Removed the use of gotos. See - Dijkstra '67 for motivation... + * ace/Acceptor.cpp,Strategy_T.cpp: Removed the use of gotos. See + Dijkstra '67 for motivation... - * tests/Process_Strategy_Test.cpp (open): Make sure that we set - the Reactor of the Svc_Handler to 0 if we're running the - threading test. + * tests/Process_Strategy_Test.cpp (open): Make sure that we set + the Reactor of the Svc_Handler to 0 if we're running the + threading test. - * tests/Reactor_Notify_Test.cpp: Added back THR_BOUND to - make things work on Solaris. + * tests/Reactor_Notify_Test.cpp: Added back THR_BOUND to + make things work on Solaris. Fri Nov 21 02:23:47 1997 <irfan@TWOSTEP> - * tests/Process_Strategy_Test.cpp: - - - The event loop execution was based on a fragile timeout - mechanism. This was changed to a more robust mechanism that - counts the connections. - - - The unlinking of the file was moved from the server to the - client. This is necessary since there maybe multiple server - processes that cannot really coordinate when the file should - be removed. - - * ace/Strategies_T.cpp (ACE_Concurrency_Strategy): - ACE_Concurrency_Strategy and all three of the subclasses - (ACE_Reactive_Strategy, ACE_Process_Strategy, and - ACE_Thread_Strategy) were messed up. Only ACE_Reactive_Strategy - was (trying) to set the correct blocking mode of the socket. - Therefore, moved the socket mode setting code to the base class, - ACE_Concurrency_Strategy, so that all the classes can share it. - - This did create one problem though. If the implementation of - the reactor uses event associations (i.e., WFMO_Reactor), we - cannot try to set the socket mode since the registration of the - svc_handler caused an event association to be created for the - socket and by default (thanks Microslush) the socket is set to - non-blocking mode. If the user is excepting to have a socket in - blocking mode, he is in for a surprise. Maybe we should return - a failure if the user is expecting a socket in blocking mode. - This is probably too harsh for now. - - * tests/Future_Test.cpp (open): Added THR_DETACHED since we don't - wait for this thread. - - * tests/Reactor_Notify_Test.cpp (open): Changed THR_BOUND to - THR_DETACHED since we don't wait for this thread. - - * tests/IOStream_Test.cpp (server): Make sure to close the socket - in ACE_SOCK_Acceptor and ACE_SOCK_IOStream. - - * ace/WFMO_Reactor.cpp (open): When I changed open() last, I - ignored the order of the registeration of notify_handler_ and - wakeup_all_threads_handler_. Unfortunately, the order of the - two registrations is very important since the optimization for - owner thread takes advantage of this ordering. Therefore, - revert the order of registertion to notify_handler_ followed by - wakeup_all_threads_handler_. - - * tests/version_tests/run_all_tests.bat: Added new bat file to - make the running of all the different configurations easier. - - * tests/version_tests/version_tests.{mak,mdp}: Added a mammoth - testing scheme that is used to test all 8 configurations of the - tests under Win32. These 8 configurations are: - - DLL Debug - DLL Release - DLL Unicode Debug - DLL Unicode Release - static Debug - static Release - static Unicode Debug - static Unicode Release - - run_tests.bat from the test directory can then be used to run - these various configurations. run_tests.bat was also extended - to allow the user to purify the tests. Simply execute - run_tests.bat with the purify command line option. + * tests/Process_Strategy_Test.cpp: + + - The event loop execution was based on a fragile timeout + mechanism. This was changed to a more robust mechanism that + counts the connections. + + - The unlinking of the file was moved from the server to the + client. This is necessary since there maybe multiple server + processes that cannot really coordinate when the file should + be removed. + + * ace/Strategies_T.cpp (ACE_Concurrency_Strategy): + ACE_Concurrency_Strategy and all three of the subclasses + (ACE_Reactive_Strategy, ACE_Process_Strategy, and + ACE_Thread_Strategy) were messed up. Only ACE_Reactive_Strategy + was (trying) to set the correct blocking mode of the socket. + Therefore, moved the socket mode setting code to the base class, + ACE_Concurrency_Strategy, so that all the classes can share it. + + This did create one problem though. If the implementation of + the reactor uses event associations (i.e., WFMO_Reactor), we + cannot try to set the socket mode since the registration of the + svc_handler caused an event association to be created for the + socket and by default (thanks Microslush) the socket is set to + non-blocking mode. If the user is excepting to have a socket in + blocking mode, he is in for a surprise. Maybe we should return + a failure if the user is expecting a socket in blocking mode. + This is probably too harsh for now. + + * tests/Future_Test.cpp (open): Added THR_DETACHED since we don't + wait for this thread. + + * tests/Reactor_Notify_Test.cpp (open): Changed THR_BOUND to + THR_DETACHED since we don't wait for this thread. + + * tests/IOStream_Test.cpp (server): Make sure to close the socket + in ACE_SOCK_Acceptor and ACE_SOCK_IOStream. + + * ace/WFMO_Reactor.cpp (open): When I changed open() last, I + ignored the order of the registeration of notify_handler_ and + wakeup_all_threads_handler_. Unfortunately, the order of the + two registrations is very important since the optimization for + owner thread takes advantage of this ordering. Therefore, + revert the order of registertion to notify_handler_ followed by + wakeup_all_threads_handler_. + + * tests/version_tests/run_all_tests.bat: Added new bat file to + make the running of all the different configurations easier. + + * tests/version_tests/version_tests.{mak,mdp}: Added a mammoth + testing scheme that is used to test all 8 configurations of the + tests under Win32. These 8 configurations are: + + DLL Debug + DLL Release + DLL Unicode Debug + DLL Unicode Release + static Debug + static Release + static Unicode Debug + static Unicode Release + + run_tests.bat from the test directory can then be used to run + these various configurations. run_tests.bat was also extended + to allow the user to purify the tests. Simply execute + run_tests.bat with the purify command line option. Thu Nov 20 17:43:15 1997 <nw1@COYOTE> - * ace/Thread_Manager.cpp (kill_thr): Changed to prevent thread - manager from "discard" a thread when a certain operation is not - supported by the operation system. Removed the mechanism that - preserves errno during "thread removal." We no longer remove - thread right after an error occured. + * ace/Thread_Manager.cpp (kill_thr): Changed to prevent thread + manager from "discard" a thread when a certain operation is not + supported by the operation system. Removed the mechanism that + preserves errno during "thread removal." We no longer remove + thread right after an error occured. Thu Nov 20 17:53:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Make - sure make sure that the semaphores created by the program are - released as well as the storage files deleted. Thanks to Tom - Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for reporting - this. + * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Make + sure make sure that the semaphores created by the program are + released as well as the storage files deleted. Thanks to Tom + Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for reporting + this. - * ace: Added a new version of config-osf1-3.2.h. Thanks to Dani - Flexer <danif@ivory-sw.com> for updating this. + * ace: Added a new version of config-osf1-3.2.h. Thanks to Dani + Flexer <danif@ivory-sw.com> for updating this. Thu Nov 20 18:22:24 1997 Steve Huston <shuston@riverace.com> - * ace/README - ace/TLI.h - ace/TLI_Acceptor.h - ace/TLI_Connector.h - Changed from using hardcoded "/dev/tcp" as the XTI device name to - a new config-related define, ACE_TLI_TCP_DEVICE. If the config - doesn't set one, it defaults to "/dev/tcp". Thanks to Steve Coy - <stevec@magna.com.au> for zeroing in on this problem in HP-UX. + * ace/README + ace/TLI.h + ace/TLI_Acceptor.h + ace/TLI_Connector.h + Changed from using hardcoded "/dev/tcp" as the XTI device name to + a new config-related define, ACE_TLI_TCP_DEVICE. If the config + doesn't set one, it defaults to "/dev/tcp". Thanks to Steve Coy + <stevec@magna.com.au> for zeroing in on this problem in HP-UX. - ace/config-hpux-10.x.h: ACE_TLI_TCP_DEVICE is "/dev/inet_cots". - Note that XTI won't work 100% well on HP still - this is Riverace - problem ID P27. + ace/config-hpux-10.x.h: ACE_TLI_TCP_DEVICE is "/dev/inet_cots". + Note that XTI won't work 100% well on HP still - this is Riverace + problem ID P27. - * netsvcs/lib/Server_Logging_Handler_T.h: Hardcoded to always use - ACE_SOCK_Stream (and friends) rather than ACE_TLI_Stream and friends. - XTI doesn't work real well on some platforms (particularly HP-UX - and AIX). When they're fixed, this can be undone (Riverace problem - ID P28). + * netsvcs/lib/Server_Logging_Handler_T.h: Hardcoded to always use + ACE_SOCK_Stream (and friends) rather than ACE_TLI_Stream and friends. + XTI doesn't work real well on some platforms (particularly HP-UX + and AIX). When they're fixed, this can be undone (Riverace problem + ID P28). - * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: Changed 'char *host' to - 'const char *host' so it can be initialized from a const char string. + * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: Changed 'char *host' to + 'const char *host' so it can be initialized from a const char string. Thu Nov 20 14:19:57 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu> - * tests/Priority_Reactor_Test.h: - * tests/Priority_Reactor_Test.cpp: - The test has a limited execution time now, and only reports a - warning if runs out of time. This may be due to some failed - connections, but it is hard to avoid that. On the other hand - the default time should be large enough, in our machines the - test only takes 14 seconds, so 60 seconds should be enough. - NOTE: this problem reveals a problem *only* in the test itself - not in ACE_Priority_Reactor. + * tests/Priority_Reactor_Test.h: + * tests/Priority_Reactor_Test.cpp: + The test has a limited execution time now, and only reports a + warning if runs out of time. This may be due to some failed + connections, but it is hard to avoid that. On the other hand + the default time should be large enough, in our machines the + test only takes 14 seconds, so 60 seconds should be enough. + NOTE: this problem reveals a problem *only* in the test itself + not in ACE_Priority_Reactor. Thu Nov 20 11:29:51 1997 David L. Levine <levine@cs.wustl.edu> @@ -288,27 +288,27 @@ Thu Nov 20 11:27:44 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Thu Nov 20 10:45:08 1997 <irfan@TWOSTEP> - * tests/MT_SOCK_Test.cpp: Uncommented socket close call. + * tests/MT_SOCK_Test.cpp: Uncommented socket close call. - * ace/WFMO_Reactor.cpp (open): Open the notification handler - *after* the timer queue has been created. + * ace/WFMO_Reactor.cpp (open): Open the notification handler + *after* the timer queue has been created. - * ace/ACE.cpp (get_ip_interfaces): Changed rep() to fast_rep() to - prevent memory leak. + * ace/ACE.cpp (get_ip_interfaces): Changed rep() to fast_rep() to + prevent memory leak. - * ace/Reactor.cpp (ACE_Reactor): Fixed error of not creating any - Reactors on UNIX. + * ace/Reactor.cpp (ACE_Reactor): Fixed error of not creating any + Reactors on UNIX. Thu Nov 20 08:36:54 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> - * ace/Thread_Manager.{h,cpp}: Added a dummy argument to internal - thread functions. Without them, MSVC wrongly optimizes codes - and the stack were all clobbered when entering these functions. + * ace/Thread_Manager.{h,cpp}: Added a dummy argument to internal + thread functions. Without them, MSVC wrongly optimizes codes + and the stack were all clobbered when entering these functions. Wed Nov 19 23:24:03 1997 <nw1@CHA-CHA> - * ace/Reactor.cpp: Rearragned macros so we use Select_Reactor as - default if we don't have Winsock2. Irfan did it, not me. + * ace/Reactor.cpp: Rearragned macros so we use Select_Reactor as + default if we don't have Winsock2. Irfan did it, not me. Wed Nov 19 22:11:20 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> @@ -316,48 +316,48 @@ Wed Nov 19 22:11:20 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Wed Nov 19 15:55:52 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu> - * config-netbsd.h: NetBSD 1.3alpha has a better MSYNC. Commented out - ACE_HAS_BROKEN_NETBSD_MSYNC + * config-netbsd.h: NetBSD 1.3alpha has a better MSYNC. Commented out + ACE_HAS_BROKEN_NETBSD_MSYNC Wed Nov 19 14:26:36 1997 Nanbor Wang <nw1@lindy.cs.wustl.edu> - * stdcpp.h, OS.h: Changed ACE_CONFIG_H to ACE_USER_CONFIG_H. It - conflicts with the macro in various configuration files. + * stdcpp.h, OS.h: Changed ACE_CONFIG_H to ACE_USER_CONFIG_H. It + conflicts with the macro in various configuration files. Wed Nov 19 15:55:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/config-sunos5.*.h: Replaced all uses of ACE_HAS_UNICODE with - ACE_HAS_XPG4_MULTIBYTE_CHAR. At this point, I think only NT has - the UNICODE macro now. Thanks to Steve Huston for validating - this. + * ace/config-sunos5.*.h: Replaced all uses of ACE_HAS_UNICODE with + ACE_HAS_XPG4_MULTIBYTE_CHAR. At this point, I think only NT has + the UNICODE macro now. Thanks to Steve Huston for validating + this. - * STL/bstring.h: Added a special-case for BorlandC++. However, I - think this can be generalized for all compilers. Thanks to - Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. + * STL/bstring.h: Added a special-case for BorlandC++. However, I + think this can be generalized for all compilers. Thanks to + Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. - * ace/OS: Fixed strpbrk() to handle the const char * and char * - cases of ANSI C++. Thanks to Valik Solorzano Barboza - <valik@xs4all.nl> for reporting this. + * ace/OS: Fixed strpbrk() to handle the const char * and char * + cases of ANSI C++. Thanks to Valik Solorzano Barboza + <valik@xs4all.nl> for reporting this. - * ace/OS.h: Added a special case for _MSC_VER since BC++ doesn't - have wchar.h! Thanks to Valik Solorzano Barboza - <valik@xs4all.nl> for reporting this. + * ace/OS.h: Added a special case for _MSC_VER since BC++ doesn't + have wchar.h! Thanks to Valik Solorzano Barboza + <valik@xs4all.nl> for reporting this. Wed Nov 19 13:43:33 1997 Darrell Brunsch <brunsch@cs.wustl.edu> - * Merged the purify testing into run_tests. Just use + * Merged the purify testing into run_tests. Just use - "run_tests purify ..." + "run_tests purify ..." - to purify instead of running the tests. If you thought this - batch file looked bad before.... + to purify instead of running the tests. If you thought this + batch file looked bad before.... Wed Nov 19 12:17:50 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> - * ace/{OS,stdcpp}.h (ACE_CONFIG_H): Added this macro to protect - config.h from getting included multiple times. + * ace/{OS,stdcpp}.h (ACE_CONFIG_H): Added this macro to protect + config.h from getting included multiple times. - * ace/stdcpp.h: Reverted include OS.h back to config.h. + * ace/stdcpp.h: Reverted include OS.h back to config.h. Wed Nov 19 09:20:05 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> @@ -365,21 +365,21 @@ Wed Nov 19 09:20:05 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Wed Nov 19 07:54:44 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/ACE.cpp (crc32): Reverted the COMPUTE macro back to its - original value. For some reason, the version given by Valik was - failing. + * ace/ACE.cpp (crc32): Reverted the COMPUTE macro back to its + original value. For some reason, the version given by Valik was + failing. - * ace/SV_Semaphore_Complex.cpp (open): Make sure initialize the - sem_number_ data member, though this isn't actually used for - anything. + * ace/SV_Semaphore_Complex.cpp (open): Make sure initialize the + sem_number_ data member, though this isn't actually used for + anything. - * ace/ACE.cpp: Added a #ifdef for __unix since this is the only - case where we'll actually have the ifreq autoptr. Thanks to - Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. + * ace/ACE.cpp: Added a #ifdef for __unix since this is the only + case where we'll actually have the ifreq autoptr. Thanks to + Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. - * ace/Log_Record.cpp (print): Added a work around for a really - lame bug with BORLANDC. Thanks to Valik Solorzano Barboza - <valik@xs4all.nl> for reporting this. + * ace/Log_Record.cpp (print): Added a work around for a really + lame bug with BORLANDC. Thanks to Valik Solorzano Barboza + <valik@xs4all.nl> for reporting this. Wed Nov 19 04:22:38 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> @@ -387,126 +387,126 @@ Wed Nov 19 04:22:38 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Wed Nov 19 04:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - * include/makeinclude/rules.local.GNU (show_uninit): It seems - there was a missing '@' at the beginning of the line. Thanks to - Hans Rohnert for reporting this. + * include/makeinclude/rules.local.GNU (show_uninit): It seems + there was a missing '@' at the beginning of the line. Thanks to + Hans Rohnert for reporting this. - * tests/Process_Strategy_Test.cpp (handle_input): Fixed Irfan's - code, which keeps breaking ACE ;-). + * tests/Process_Strategy_Test.cpp (handle_input): Fixed Irfan's + code, which keeps breaking ACE ;-). Wed Nov 19 01:55:06 1997 <irfan@TWOSTEP> - * ace/WFMO_Reactor.cpp (resume_handler_i, suspend_handler_i, - unbind_i): Since things don't happen immediately in the - WFMO_Reactor world, we must make sure that this request is not a - duplicate. If so we must ignore it. + * ace/WFMO_Reactor.cpp (resume_handler_i, suspend_handler_i, + unbind_i): Since things don't happen immediately in the + WFMO_Reactor world, we must make sure that this request is not a + duplicate. If so we must ignore it. - * ace/Asynch_Acceptor.cpp (open): Fixed addr type mismatch problem. + * ace/Asynch_Acceptor.cpp (open): Fixed addr type mismatch problem. - * tests/UPIPE_SAP_Test.cpp (main): Make sure to close the socket - in ACE_UPIPE_Acceptor. + * tests/UPIPE_SAP_Test.cpp (main): Make sure to close the socket + in ACE_UPIPE_Acceptor. - * tests/SPIPE_Test.cpp (server): Make sure to close the socket in - ACE_SPIPE_Acceptor. + * tests/SPIPE_Test.cpp (server): Make sure to close the socket in + ACE_SPIPE_Acceptor. - * tests/SOCK_Test.cpp (spawn): Make sure to close the socket in - ACE_SOCK_Acceptor. + * tests/SOCK_Test.cpp (spawn): Make sure to close the socket in + ACE_SOCK_Acceptor. - * tests/Reactor_Notify_Test.cpp (Supplier_Task): Make sure to - close the pipe down. + * tests/Reactor_Notify_Test.cpp (Supplier_Task): Make sure to + close the pipe down. - * tests/Process_Strategy_Test.cpp (handle_input): Fixed ACE_DEBUG - statement to pass the correct number of arguments. + * tests/Process_Strategy_Test.cpp (handle_input): Fixed ACE_DEBUG + statement to pass the correct number of arguments. - * tests/MT_SOCK_Test.cpp (spawn): Make sure to close the socket in - ACE_SOCK_Acceptor. + * tests/MT_SOCK_Test.cpp (spawn): Make sure to close the socket in + ACE_SOCK_Acceptor. - * tests/Reactor_Exceptions_Test.cpp (main): Make sure to close the - socket in ACE_SOCK_Dgram. + * tests/Reactor_Exceptions_Test.cpp (main): Make sure to close the + socket in ACE_SOCK_Dgram. - * tests/run_purify_tests.bat: Added "mkdir purify_results". + * tests/run_purify_tests.bat: Added "mkdir purify_results". - * tests/run_tests.bat, run_purify_tests.bat: Changed explicit name - of bat file (e.g., run_tests, run_purify_tests) to %0. This - will allow the bat file to be used from other directories. + * tests/run_tests.bat, run_purify_tests.bat: Changed explicit name + of bat file (e.g., run_tests, run_purify_tests) to %0. This + will allow the bat file to be used from other directories. - * ace/config-win32-common.h: Removed extraneous define of - ACE_HAS_TEMPLATE_INSTANTIATION. + * ace/config-win32-common.h: Removed extraneous define of + ACE_HAS_TEMPLATE_INSTANTIATION. Wed Nov 19 00:37:22 1997 <nw1@COYOTE> - * ace/stdcpp.h: Changed to use "ace/OS.h" instead of using - "ace/config.h" directly to avoid redefinition of user defined - macros. + * ace/stdcpp.h: Changed to use "ace/OS.h" instead of using + "ace/config.h" directly to avoid redefinition of user defined + macros. - * ace/Log_Msg.cpp (close): Disable Win32 to delete - ACE_Log_Msg::instance (). On Win32, this should be done by - ACE_TSS_Cleanup. + * ace/Log_Msg.cpp (close): Disable Win32 to delete + ACE_Log_Msg::instance (). On Win32, this should be done by + ACE_TSS_Cleanup. - * ace/OS.cpp (cleanup_tss): Enabled Win32 to call - ACE_Log_Msg::close. This is required to properly release - resourses held by ACE_Log_Msg_Manager. + * ace/OS.cpp (cleanup_tss): Enabled Win32 to call + ACE_Log_Msg::close. This is required to properly release + resourses held by ACE_Log_Msg_Manager. Tue Nov 18 19:28:36 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> - * ace/Select_Reactor.cpp (unbind), - ace/WFMO_Reactor.cpp (handle_signal): Fixed a large number of - bugs with non-portable "scope of the for loop counter"... - Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for - reporting this. + * ace/Select_Reactor.cpp (unbind), + ace/WFMO_Reactor.cpp (handle_signal): Fixed a large number of + bugs with non-portable "scope of the for loop counter"... + Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for + reporting this. - * ace/Thread_Manager: Added == and != operators for - ACE_Thread_Descriptor to fix things with BORLANDC's template - mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl> - for reporting this. + * ace/Thread_Manager: Added == and != operators for + ACE_Thread_Descriptor to fix things with BORLANDC's template + mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl> + for reporting this. - * ace/Select_Reactor: Added == and != operators for - ACE_Event_Tuple to fix things with BORLANDC's template - mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl> - for reporting this. + * ace/Select_Reactor: Added == and != operators for + ACE_Event_Tuple to fix things with BORLANDC's template + mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl> + for reporting this. - * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32. - Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for - reporting this. + * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32. + Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for + reporting this. - * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly - with BORLANDC. Thanks to Valik Solorzano Barboza - <valik@xs4all.nl> for reporting this. + * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly + with BORLANDC. Thanks to Valik Solorzano Barboza + <valik@xs4all.nl> for reporting this. - * ace/OS: Added operator== and operator!= for ACE_Cleanup_Info so - that it will work correctly with BORLANDC's template mechanism. - Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for - reporting this. + * ace/OS: Added operator== and operator!= for ACE_Cleanup_Info so + that it will work correctly with BORLANDC's template mechanism. + Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for + reporting this. - * ace/config-win32-common.h: Added - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC. Thanks to - Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. + * ace/config-win32-common.h: Added + ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC. Thanks to + Valik Solorzano Barboza <valik@xs4all.nl> for reporting this. - * ace/Filecache.cpp: Fixed a bug with BORLANDC. Thanks to Valik - Solorzano Barboza <valik@xs4all.nl> for reporting this. + * ace/Filecache.cpp: Fixed a bug with BORLANDC. Thanks to Valik + Solorzano Barboza <valik@xs4all.nl> for reporting this. - * ace/ACE.cpp (crc32): Added some parens to the COMPUTE macro to - make it easier to grok. Thanks to Valik Solorzano Barboza - <valik@xs4all.nl> for reporting this. + * ace/ACE.cpp (crc32): Added some parens to the COMPUTE macro to + make it easier to grok. Thanks to Valik Solorzano Barboza + <valik@xs4all.nl> for reporting this. Tue Nov 18 16:27:32 1997 <irfan@TWOSTEP> - * ace/Log_Msg.cpp (log): Added a %D option to Log_Msg for - "month/day/year hour:minute:second:microsecond". Thanks to John - Mulhern <9107@MN3.LAWSON.lawson.com> for suggesting this. + * ace/Log_Msg.cpp (log): Added a %D option to Log_Msg for + "month/day/year hour:minute:second:microsecond". Thanks to John + Mulhern <9107@MN3.LAWSON.lawson.com> for suggesting this. - * ace/config-win32-common.h: If __ACE_INLINE__ is defined to be 0, - we will undefine it. + * ace/config-win32-common.h: If __ACE_INLINE__ is defined to be 0, + we will undefine it. Tue Nov 18 15:59:37 1997 Steve Huston <shuston@riverace.com> - * ace/IOStream.cpp: In underflow() and overflow(), use base() to - check for buffer in use in every case - not just without - ACE_HAS_STANDARD_CPP_LIBRARY==1. Thanks to James CE Johnson - (jcej@lads.com) for this fix. + * ace/IOStream.cpp: In underflow() and overflow(), use base() to + check for buffer in use in every case - not just without + ACE_HAS_STANDARD_CPP_LIBRARY==1. Thanks to James CE Johnson + (jcej@lads.com) for this fix. - * tests/MT_SOCK_Test.cpp: Allow the test to run even if not all of - the proceses can be forked. + * tests/MT_SOCK_Test.cpp: Allow the test to run even if not all of + the proceses can be forked. Tue Nov 18 15:27:37 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> @@ -973,7 +973,7 @@ Tue Nov 11 23:44:17 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Tue Nov 11 21:26:36 1997 Douglas C. Schmidt <schmidt@lindy.cs.wustl.edu> * platform_sunos5_sunc++.GNU, platform_irix6.x-sgic++.GNU, rules.local.GNU: - Added some minor fixes. + Added some minor fixes. Tue Nov 11 20:18:27 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu> @@ -6195,13 +6195,13 @@ Wed Sep 3 21:38:18 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu> * ace/Timer_Queue_T.h: * ace/Timer_Wheel_T.cpp: * ace/Timer_Wheel_T.h: - In the word of its author: Modified the iterators kept in each - of these classes so that they are constructed dynamically on the - heap after the Queue has been properly initialized. Otherwise, - the iterators try to iterate over a non-initialized queue, and - fail miserably (usually dumping core). - Once more thanks to Gonzalo Diethelm (gonzo@ing.puc.cl) for this - changes. + In the word of its author: Modified the iterators kept in + each of these classes so that they are constructed + dynamically on the heap after the Queue has been properly + initialized. Otherwise, the iterators try to iterate over a + non-initialized queue, and fail miserably (usually dumping + core). Once more thanks to Gonzalo Diethelm + (gonzo@ing.puc.cl) for this changes. * tests/UPIPE_SAP_Test.cpp: Gonzalo improved the error message. @@ -7822,8 +7822,8 @@ Tue Aug 12 15:03:42 1997 Steve Huston <shuston@riverace.com> * ace/Timer_Hash_T.cpp, Timer_Wheel_T.cpp: Replaced references to ACE_High_Res_Timer::gettimeofday with ACE_OS::gettimeofday. - The High Res version is deprecated, and doesn't work correctly - on HP-UX. + The High Res version is deprecated, and doesn't work + correctly on HP-UX. Tue Aug 12 07:51:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> diff --git a/ChangeLog-99b b/ChangeLog-99b index b11d2cdad08..1cbdfa81d81 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,3 +1,34 @@ +Sat Jul 3 12:05:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * tests/Future_Set_Test.cpp (main): We were casting a const ASYS_TCHAR * + to u_int, yikes! + + * ace/RB_Tree.cpp: Cleaned up the code so it's conformant with the + ACE programming style, particularly for dynamic memory + allocation (which wasn't using ACE_NEW). + + * ace/ACE.cpp (get_ip_interfaces): Cleaned up the code so it conforms + to the ACE programming guidelines. + + * ace/Timer_Hash_T.cpp: Fixed a number mistakes where the return + value of new wasn't being checked. + + * ace/Timer_Heap_T.cpp, + ace/Timer_Wheel_T.cpp: Removed the apparently extraneous parens + used in the ACE_NEW* macros in order to keep EGCS 2.95 happy. + Thanks to Jody Hagins and Arturo Montes + <mitosys@colomsat.com.co> for reporting this. BTW, if this + causes problems on any compilers please let me know. + + * ace: Reformatted all the ACE_NEW* macros so they conform to + ACE programming style. + + * ace/Priority_Reactor.cpp: Cleaned up the code to conform to + the ACE programming style. + + * ace/OS.cpp (tss_base): Cleaned up a loop a bit so it conforms + to the ACE programming style. + Sat Jul 3 11:09:51 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu> * ace/WIN32_Asynch_IO.cpp diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index f9aece665f2..93f91c72082 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,11 @@ +Sat Jul 3 13:05:00 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> + + * performance-tests/Cubit/TAO/IDL_Cubit/server.cpp (main): Removed + an unreachable ACE_TRY_CHECK. + + * orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp: Replaced the + TAO_THROW macros with ACE_THROW macros. + Sat Jul 3 09:30:00 1999 Chris Gill <cdgill@cs.wustl.edu> * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp index aaa6ddd4387..55b51bd98fd 100644 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp +++ b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp @@ -44,14 +44,13 @@ CC_Lock::lock (CORBA::Environment &) ACE_DEBUG ((LM_DEBUG, "CC_Lock::lock\n")); lock_held_++; - - // if (semaphore_.acquire () == -1) - // TAO_THROW (CORBA::INTERNAL ()); } CORBA::Boolean -CC_Lock::try_lock (CORBA::Environment &TAO_IN_ENV) +CC_Lock::try_lock (CORBA::Environment &ACE_TRY_ENV) { + ACE_UNUSED_ARG (ACE_TRY_ENV); + ACE_DEBUG ((LM_DEBUG, "CC_Lock::try_lock. ")); @@ -74,7 +73,7 @@ CC_Lock::try_lock (CORBA::Environment &TAO_IN_ENV) return 0; } else - TAO_THROW_RETURN (CORBA::INTERNAL (), + ACE_THROW_RETURN (CORBA::INTERNAL (), 0); } ACE_DEBUG ((LM_DEBUG, @@ -85,17 +84,17 @@ CC_Lock::try_lock (CORBA::Environment &TAO_IN_ENV) } void -CC_Lock::unlock (CORBA::Environment &TAO_IN_ENV) +CC_Lock::unlock (CORBA::Environment &ACE_TRY_ENV) { ACE_DEBUG ((LM_DEBUG, "CC_Lock::unlock\n")); if (lock_held_ == 0) - TAO_THROW (CosConcurrencyControl::LockNotHeld()); + ACE_THROW (CosConcurrencyControl::LockNotHeld ()); int success = 0; //semaphore_.release (); if (success == -1) - TAO_THROW (CORBA::INTERNAL ()); + ACE_THROW (CORBA::INTERNAL ()); lock_held_--; @@ -106,8 +105,9 @@ CC_Lock::unlock (CORBA::Environment &TAO_IN_ENV) void CC_Lock::change_mode (CosConcurrencyControl::lock_mode new_mode, - CORBA::Environment &TAO_IN_ENV) + CORBA::Environment &ACE_TRY_ENV) { + ACE_UNUSED_ARG (ACE_TRY_ENV); ACE_DEBUG ((LM_DEBUG, "CC_Lock::change_mode\n")); @@ -116,7 +116,7 @@ CC_Lock::change_mode (CosConcurrencyControl::lock_mode new_mode, // write lock if (lock_held_ == 0) - TAO_THROW (CosConcurrencyControl::LockNotHeld()); + ACE_THROW (CosConcurrencyControl::LockNotHeld ()); this->mode_ = new_mode; } @@ -146,21 +146,24 @@ CC_Lock::GetMode (void) } int -CC_Lock::GetLocksHeld(void) +CC_Lock::GetLocksHeld (void) { return this->lock_held_; } void -CC_Lock::DecLocksHeld(void) +CC_Lock::DecLocksHeld (void) { this->lock_held_--; } void -CC_Lock::dump(void) +CC_Lock::dump (void) { - printf("mode_ %i, lock_held_: %i\n", mode_, lock_held_); + ACE_DEBUG ((LM_DEBUG, + "mode_ %i, lock_held_: %i\n", + mode_, + lock_held_)); } // The check of compatibility is a hard coded table statically @@ -187,23 +190,23 @@ CORBA::Boolean CC_Lock::compatible_[NUMBER_OF_LOCK_MODES][NUMBER_OF_LOCK_MODES] // CC_LockModeterator -CC_LockModeIterator::CC_LockModeIterator(void) +CC_LockModeIterator::CC_LockModeIterator (void) : current_ (CosConcurrencyControl::intention_read) { } -CC_LockModeIterator::~CC_LockModeIterator(void) +CC_LockModeIterator::~CC_LockModeIterator (void) { // Do nothing } -void CC_LockModeIterator::First(void) +void CC_LockModeIterator::First (void) { current_ = CosConcurrencyControl::intention_read; } -void CC_LockModeIterator::Next(CORBA::Environment &TAO_IN_ENV) +void CC_LockModeIterator::Next (CORBA::Environment &ACE_TRY_ENV) { - switch(current_) + switch (current_) { case CosConcurrencyControl::intention_read: current_ = CosConcurrencyControl::read; @@ -218,23 +221,23 @@ void CC_LockModeIterator::Next(CORBA::Environment &TAO_IN_ENV) current_ = CosConcurrencyControl::write; break; case CosConcurrencyControl::write: - TAO_THROW(CORBA::INTERNAL ()); + ACE_THROW (CORBA::INTERNAL ()); default: - TAO_THROW(CORBA::INTERNAL ()); + ACE_THROW (CORBA::INTERNAL ()); } } CORBA::Boolean -CC_LockModeIterator::IsDone(void) +CC_LockModeIterator::IsDone (void) { - if(current_==CosConcurrencyControl::write) + if (current_==CosConcurrencyControl::write) return 1; else return 0; } CosConcurrencyControl::lock_mode -CC_LockModeIterator::GetLockMode(void) +CC_LockModeIterator::GetLockMode (void) { return current_; } diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/server.cpp b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/server.cpp index c9db73e3b18..f4d37fd467b 100644 --- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/server.cpp +++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/server.cpp @@ -15,7 +15,7 @@ main (int argc, char *argv[]) (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO) + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2; priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority); + priority); // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO, @@ -41,11 +41,10 @@ main (int argc, char *argv[]) { int ret = cubit_server.init (argc, argv, ACE_TRY_ENV); ACE_TRY_CHECK; + if (ret == -1) - { - return -1; - ACE_TRY_CHECK; - } + return -1; + cubit_server.run (ACE_TRY_ENV); ACE_TRY_CHECK; } @@ -62,7 +61,7 @@ main (int argc, char *argv[]) ACE_ENDTRY; ACE_TIMEPROBE_PRINT; -// ACE_END_TEST; + // ACE_END_TEST; return 0; } diff --git a/ace/ACE.cpp b/ace/ACE.cpp index a2c91eae749..794e7db5401 100644 --- a/ace/ACE.cpp +++ b/ace/ACE.cpp @@ -134,7 +134,7 @@ ACE::terminate_process (pid_t pid) pid); if (process_handle == ACE_INVALID_HANDLE - || process_handle == NULL) + || process_handle == 0) return -1; else { @@ -175,7 +175,7 @@ ACE::process_active (pid_t pid) ACE_HANDLE process_handle = ::OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pid); if (process_handle == ACE_INVALID_HANDLE - || process_handle == NULL) + || process_handle == 0) return 0; else { @@ -1046,7 +1046,9 @@ ACE::send (ACE_HANDLE handle, size_t n, ...) #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -1082,7 +1084,9 @@ ACE::recv (ACE_HANDLE handle, size_t n, ...) #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -3122,8 +3126,8 @@ ACE::get_ip_interfaces (size_t &count, 0, 0, info, sizeof(info), &bytes, - NULL, - NULL); + 0, + 0); closesocket (sock); if (status == SOCKET_ERROR) return -1; @@ -3132,7 +3136,9 @@ ACE::get_ip_interfaces (size_t &count, if (n_interfaces == 0) return 0; - ACE_NEW_RETURN (addrs, ACE_INET_Addr[n_interfaces], -1); + ACE_NEW_RETURN (addrs, + ACE_INET_Addr[n_interfaces], + -1); // Now go through the list and transfer the good ones to the list of // because they're down or don't have an IP address. @@ -3164,55 +3170,73 @@ ACE::get_ip_interfaces (size_t &count, #else /* Winsock 2 && MSVC 5 or later */ - // PharLap ETS has kernel routines to rummage through the device configs - // and extract the interface info. Sort of a pain in the butt, but better - // than trying to figure out where it moved to in the registry... :-| + // PharLap ETS has kernel routines to rummage through the device + // configs and extract the interface info. Sort of a pain in the + // butt, but better than trying to figure out where it moved to in + // the registry... :-| # if defined (ACE_HAS_PHARLAP) # if !defined (ACE_HAS_PHARLAP_RT) ACE_NOTSUP_RETURN (-1); # endif /* ACE_HAS_PHARLAP_RT */ - // Locate all of the IP devices in the system, saving a DEVHANDLE for - // each. Then allocate the ACE_INET_Addrs needed and fetch all the IP - // addresses. - // To locate the devices, try the available device name roots and increment - // the device number until the kernel says there are no more of that type. - const size_t ACE_MAX_ETS_DEVICES = 64; /* Arbitrary, but should be enough */ - DEVHANDLE ip_dev[ACE_MAX_ETS_DEVICES]; + // Locate all of the IP devices in the system, saving a DEVHANDLE + // for each. Then allocate the ACE_INET_Addrs needed and fetch all + // the IP addresses. To locate the devices, try the available + // device name roots and increment the device number until the + // kernel says there are no more of that type. + const size_t ACE_MAX_ETS_DEVICES = 64; // Arbitrary, but should be enough. + DEVHANDLE ip_dev[ACE_MAX_ETS_DEVICES]; EK_TCPIPCFG *devp; - size_t i, j; - char dev_name[16]; + size_t i, j; + char dev_name[16]; count = 0; for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count) { - ACE_OS::sprintf (dev_name, "ether%d", i); /* Ethernet */ - if ((ip_dev[count] = EtsTCPGetDeviceHandle (dev_name)) == NULL) + // Ethernet. + ACE_OS::sprintf (dev_name, + "ether%d", + i); + ip_dev[count] = EtsTCPGetDeviceHandle (dev_name); + if (ip_dev[count] == 0) break; } for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count) { - ACE_OS::sprintf (dev_name, "sl%d", i); /* SLIP */ - if ((ip_dev[count] = EtsTCPGetDeviceHandle (dev_name)) == NULL) + // SLIP. + ACE_OS::sprintf (dev_name, + "sl%d", + i); + ip_dev[count] = EtsTCPGetDeviceHandle (dev_name); + if (ip_dev[count] == 0) break; } for (i = 0; count < ACE_MAX_ETS_DEVICES; i++, ++count) { - ACE_OS::sprintf (dev_name, "ppp%d", i); /* PPP */ - if ((ip_dev[count] = EtsTCPGetDeviceHandle (dev_name)) == NULL) + // PPP. + ACE_OS::sprintf (dev_name, + "ppp%d", + i); + ip_dev[count] = EtsTCPGetDeviceHandle (dev_name); + if (ip_dev[count] == 0) break; } if (count > 0) - addrs = new ACE_INET_Addr[count]; + ACE_NEW_RETURN (addrs, + ACE_INET_Addr[count], + -1); else addrs = 0; for (i = 0, j = 0; i < count; i++) { - if ((devp = EtsTCPGetDeviceCfg (ip_dev[i])) != NULL) + devp = EtsTCPGetDeviceCfg (ip_dev[i]); + if (devp != 0) { - addrs[j].set (0, devp->nwIPAddress, 0); /* Already in net order */ + addrs[j].set (0, + devp->nwIPAddress, + 0); // Already in net order. j++; } // There's no call to close the DEVHANDLE. @@ -3248,14 +3272,14 @@ ACE::get_ip_interfaces (size_t &count, raw_buffer, raw_buflen)) return -1; - // return buffer contains NULL delimited strings + // return buffer contains 0 delimited strings ACE_Tokenizer dev_names (raw_buffer); dev_names.delimiter (ACE_TEXT('\0')); int n_interfaces = 0; // Count the number of interfaces - while (dev_names.next () != NULL) + while (dev_names.next () != 0) n_interfaces ++; // case 1. no interfaces present, empty string? OS version change? diff --git a/ace/ARGV.cpp b/ace/ARGV.cpp index 73460c87b44..27a54e26f0b 100644 --- a/ace/ARGV.cpp +++ b/ace/ARGV.cpp @@ -115,7 +115,8 @@ ACE_ARGV::ACE_ARGV (ASYS_TCHAR *argv[], // Step through all argv params and copy each one into buf; separate // each param with white space. - ACE_NEW (this->buf_, ASYS_TCHAR[buf_len + 1]); + ACE_NEW (this->buf_, + ASYS_TCHAR[buf_len + 1]); ASYS_TCHAR *end = this->buf_; int j; @@ -174,7 +175,8 @@ ACE_ARGV::ACE_ARGV (ASYS_TCHAR *first_argv[], int buf_len = ACE_OS::strlen (first_buf) + ACE_OS::strlen (second_buf) + 1; // Allocate memory to the lenght of the combined argv string. - ACE_NEW (this->buf_, ASYS_TCHAR[buf_len + 1]); + ACE_NEW (this->buf_, + ASYS_TCHAR[buf_len + 1]); // copy the first argv string to the buffer ACE_OS::strcpy (this->buf_,first_buf); diff --git a/ace/Asynch_Acceptor.cpp b/ace/Asynch_Acceptor.cpp index 8426eb22f58..13c3153915c 100644 --- a/ace/Asynch_Acceptor.cpp +++ b/ace/Asynch_Acceptor.cpp @@ -411,7 +411,9 @@ ACE_Asynch_Acceptor<HANDLER>::make_handler (void) { // Default behavior HANDLER *handler = 0; - ACE_NEW_RETURN (handler, HANDLER, 0); + ACE_NEW_RETURN (handler, + HANDLER, + 0); return handler; } diff --git a/ace/CDR_Stream.cpp b/ace/CDR_Stream.cpp index c1c0b71a122..9220778588b 100644 --- a/ace/CDR_Stream.cpp +++ b/ace/CDR_Stream.cpp @@ -736,7 +736,9 @@ ACE_InputCDR::read_string (char *&x) this->read_ulong (len); if (len > 0) { - ACE_NEW_RETURN (x, ACE_CDR::Char[len], 0); + ACE_NEW_RETURN (x, + ACE_CDR::Char[len], + 0); if (this->read_char_array (x, len)) return 1; delete [] x; @@ -774,7 +776,9 @@ ACE_InputCDR::read_wstring (ACE_CDR::WChar*& x) this->read_ulong (len); if (this->good_bit()) { - ACE_NEW_RETURN (x, ACE_CDR::WChar[len], 0); + ACE_NEW_RETURN (x, + ACE_CDR::WChar[len], + 0); if (this->read_wchar_array (x, len)) return 1; diff --git a/ace/CORBA_Handler.cpp b/ace/CORBA_Handler.cpp index 1e74d6c21c5..5ae478cc84e 100644 --- a/ace/CORBA_Handler.cpp +++ b/ace/CORBA_Handler.cpp @@ -306,7 +306,9 @@ ACE_ST_CORBA_Handler::instance (void) if (ACE_ST_CORBA_Handler::instance_ == 0) { - ACE_NEW_RETURN (ACE_ST_CORBA_Handler::instance_, ACE_ST_CORBA_Handler, 0); + ACE_NEW_RETURN (ACE_ST_CORBA_Handler::instance_, + ACE_ST_CORBA_Handler, + 0); ACE_ST_CORBA_Handler::instance_->get_orbix_descriptors (); } diff --git a/ace/Containers_T.cpp b/ace/Containers_T.cpp index e5c4d04a295..9956bdcdb52 100644 --- a/ace/Containers_T.cpp +++ b/ace/Containers_T.cpp @@ -32,7 +32,8 @@ ACE_Bounded_Stack<T>::ACE_Bounded_Stack (size_t size) : top_ (0), size_ (size) { - ACE_NEW (this->stack_, T[size]); + ACE_NEW (this->stack_, + T[size]); ACE_TRACE ("ACE_Bounded_Stack<T>::ACE_Bounded_Stack"); } @@ -41,7 +42,8 @@ ACE_Bounded_Stack<T>::ACE_Bounded_Stack (const ACE_Bounded_Stack<T> &s) : top_ (s.top_), size_ (s.size_) { - ACE_NEW (this->stack_, T[s.size_]); + ACE_NEW (this->stack_, + T[s.size_]); ACE_TRACE ("ACE_Bounded_Stack<T>::ACE_Bounded_Stack"); @@ -1486,8 +1488,8 @@ ACE_Bounded_Set<T>::operator= (const ACE_Bounded_Set<T> &bs) if (this->max_size_ < bs.cur_size_) { delete [] this->search_structure_; - ACE_NEW (this->search_structure_, ACE_TYPENAME - ACE_Bounded_Set<T>::Search_Structure[bs.cur_size_]); + ACE_NEW (this->search_structure_, + ACE_TYPENAME ACE_Bounded_Set<T>::Search_Structure[bs.cur_size_]); this->max_size_ = bs.cur_size_; } diff --git a/ace/DEV_IO.cpp b/ace/DEV_IO.cpp index de00433333d..2b9e86f370e 100644 --- a/ace/DEV_IO.cpp +++ b/ace/DEV_IO.cpp @@ -66,7 +66,9 @@ ACE_DEV_IO::send (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -101,7 +103,9 @@ ACE_DEV_IO::recv (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); diff --git a/ace/Dump.cpp b/ace/Dump.cpp index 6e578547bd3..7479f2489e1 100644 --- a/ace/Dump.cpp +++ b/ace/Dump.cpp @@ -63,7 +63,9 @@ ACE_ODB::instance (void) ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); if (ACE_ODB::instance_ == 0) - ACE_NEW_RETURN (ACE_ODB::instance_, ACE_ODB, 0); + ACE_NEW_RETURN (ACE_ODB::instance_, + ACE_ODB, + 0); } return ACE_ODB::instance_; diff --git a/ace/FILE_IO.cpp b/ace/FILE_IO.cpp index 9f5a848bcce..353a8060672 100644 --- a/ace/FILE_IO.cpp +++ b/ace/FILE_IO.cpp @@ -44,7 +44,9 @@ ACE_FILE_IO::send (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -81,7 +83,9 @@ ACE_FILE_IO::recv (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); diff --git a/ace/Filecache.cpp b/ace/Filecache.cpp index b92896f1b49..89a60e91cc4 100644 --- a/ace/Filecache.cpp +++ b/ace/Filecache.cpp @@ -203,7 +203,9 @@ ACE_Filecache::instance (void) // @@ James, please check each of the ACE_NEW_RETURN calls to // make sure that it is safe to return if allocation fails. if (ACE_Filecache::cvf_ == 0) - ACE_NEW_RETURN (ACE_Filecache::cvf_, ACE_Filecache, 0); + ACE_NEW_RETURN (ACE_Filecache::cvf_, + ACE_Filecache, + 0); } return ACE_Filecache::cvf_; diff --git a/ace/Future.cpp b/ace/Future.cpp index 173c56501ec..eb54be3b2fa 100644 --- a/ace/Future.cpp +++ b/ace/Future.cpp @@ -67,7 +67,11 @@ template <class T> ACE_Future_Rep<T> * ACE_Future_Rep<T>::create (void) { // Yes set ref count to zero. - return new ACE_Future_Rep<T> (); + ACE_Future_Rep<T> *t = 0; + ACE_NEW_RETURN (t, + ACE_Future_Rep<T>, + 0); + return t; } template <class T> ACE_Future_Rep<T> * diff --git a/ace/IOStream.cpp b/ace/IOStream.cpp index 0603f926060..b77fc6c57dd 100644 --- a/ace/IOStream.cpp +++ b/ace/IOStream.cpp @@ -559,7 +559,9 @@ ACE_Streambuf::reset_get_buffer (char *newBuffer, this->eback_saved_ = newBuffer; } else - ACE_NEW_RETURN (this->eback_saved_, char[streambuf_size_], 0); + ACE_NEW_RETURN (this->eback_saved_, + char[streambuf_size_], + 0); this->gptr_saved_ = this->eback_saved_ + _gptr; this->egptr_saved_ = this->eback_saved_ + _egptr; @@ -606,7 +608,9 @@ ACE_Streambuf::reset_put_buffer (char *newBuffer, this->pbase_saved_ = newBuffer; } else - ACE_NEW_RETURN (this->pbase_saved_, char[streambuf_size_], 0); + ACE_NEW_RETURN (this->pbase_saved_, + char[streambuf_size_], + 0); this->pptr_saved_ = this->pbase_saved_ + _pptr; this->epptr_saved_ = this->pbase_saved_ + streambuf_size_; diff --git a/ace/Local_Name_Space_T.cpp b/ace/Local_Name_Space_T.cpp index 37789a779a7..143fc3ae0d4 100644 --- a/ace/Local_Name_Space_T.cpp +++ b/ace/Local_Name_Space_T.cpp @@ -311,7 +311,9 @@ ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::resolve_i (const ACE_WString &na // Makes a copy here. Caller needs to call delete to free up // memory. char *new_type; - ACE_NEW_RETURN (new_type, char [len + 1], -1); + ACE_NEW_RETURN (new_type, + char [len + 1], + -1); ACE_OS::strncpy (new_type, temp, len); new_type[len] = '\0'; // Null terminate the string @@ -439,7 +441,9 @@ ACE_Local_Name_Space<ACE_MEM_POOL_2, ACE_LOCK>::create_manager_i (void) if (ACE_LOG_MSG->op_status ()) ACE_ERROR_RETURN ((LM_ERROR, "Allocator::Allocator\n"), -1); - ACE_NEW_RETURN (this->lock_, ACE_LOCK (lock_name_for_local_name_space), -1); + ACE_NEW_RETURN (this->lock_, + ACE_LOCK (lock_name_for_local_name_space), + -1); #if !defined (ACE_LACKS_ACCESS) // Now check if the backing store has been created successfully diff --git a/ace/Local_Tokens.cpp b/ace/Local_Tokens.cpp index a5c1260f0b8..041e1cf1045 100644 --- a/ace/Local_Tokens.cpp +++ b/ace/Local_Tokens.cpp @@ -40,8 +40,6 @@ ACE_Tokens::make_owner (ACE_TPQ_Entry *caller) this->waiters_.enqueue (caller, 0); } -// ************************************************************ - #if defined (ACE_LACKS_INLINE_FUNCTIONS) ACE_Null_Token::ACE_Null_Token (void) { @@ -52,10 +50,6 @@ ACE_Null_Token::~ACE_Null_Token (void) } #endif /* ACE_LACKS_INLINE_FUNCTIONS */ -// ************************************************************ -// ************************************************************ - - void ACE_TPQ_Entry::dump (void) const { @@ -158,10 +152,6 @@ ACE_TPQ_Entry::client_id (const ASYS_TCHAR *id) this->client_id_[ACE_MAXCLIENTIDLEN - 1] = '\0'; } -// ************************************************************ -// ************************************************************ -// ************************************************************ - void ACE_TSS_TPQ_Entry::dump (void) const { @@ -195,7 +185,10 @@ ACE_TSS_TPQ_Entry::make_TSS_TYPE (void) const ACE_TRACE ("ACE_TSS_TPQ_Entry::make_TSS_TYPE"); ACE_TPQ_Entry *temp; - ACE_NEW_RETURN (temp, ACE_TPQ_Entry (this->proxy_, this->client_id_), 0); + ACE_NEW_RETURN (temp, + ACE_TPQ_Entry (this->proxy_, + this->client_id_), + 0); return temp; } @@ -205,10 +198,6 @@ ACE_TSS_TPQ_Entry::operator ACE_TPQ_Entry * (void) return (ACE_TPQ_Entry *) (*((ACE_TSS<ACE_TPQ_Entry> *) this)); } -// ************************************************************ -// ************************************************************ -// ************************************************************ - ACE_TPQ_Iterator::ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q) : current_ (q.head_) { @@ -254,10 +243,6 @@ ACE_TPQ_Iterator::dump (void) const ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); } -// ************************************************************ -// ************************************************************ -// ************************************************************ - void ACE_Token_Proxy_Queue::dump (void) const { @@ -414,10 +399,6 @@ ACE_Token_Proxy_Queue::remove (const ACE_TPQ_Entry *remove_me) return; } -// ************************************************************ -// ************************************************************ -// ************************************************************ - void ACE_Mutex_Token::dump (void) const { @@ -653,10 +634,6 @@ ACE_Mutex_Token::is_owner (const ASYS_TCHAR *id) return 0; } -// ************************************************************ -// ************************************************************ -// ************************************************************ - void ACE_RW_Token::dump (void) const { @@ -1035,11 +1012,6 @@ ACE_RW_Token::is_owner (const ASYS_TCHAR *id) return 0; } -// ************************************************************ -// ************************************************************ -// ************************************************************ -// 7.. - void ACE_Token_Proxy::dump (void) const { @@ -1391,8 +1363,6 @@ ACE_Token_Proxy::token_acquired (ACE_TPQ_Entry *e) return; } -// ************************************************************ - ACE_Token_Name::ACE_Token_Name (const ASYS_TCHAR *token_name) { ACE_TRACE ("ACE_Token_Name::ACE_Token_Name"); diff --git a/ace/Log_Msg.cpp b/ace/Log_Msg.cpp index 487b41e2fd3..70cf92c3d42 100644 --- a/ace/Log_Msg.cpp +++ b/ace/Log_Msg.cpp @@ -96,7 +96,9 @@ ACE_Log_Msg_Manager::get_lock (void) { ACE_NO_HEAP_CHECK; - ACE_NEW_RETURN_I (ACE_Log_Msg_Manager::lock_, ACE_Recursive_Thread_Mutex, 0); + ACE_NEW_RETURN_I (ACE_Log_Msg_Manager::lock_, + ACE_Recursive_Thread_Mutex, + 0); // Allocate the ACE_Log_Msg IPC instance. ACE_NEW_RETURN (ACE_Log_Msg_message_queue, ACE_LOG_MSG_IPC_STREAM, 0); @@ -212,7 +214,9 @@ ACE_Log_Msg::instance (void) { ACE_NO_HEAP_CHECK; - ACE_NEW_RETURN_I (tss_log_msg, ACE_Log_Msg, 0); + ACE_NEW_RETURN_I (tss_log_msg, + ACE_Log_Msg, + 0); // Store the dynamically allocated pointer in thread-specific // storage. It gets deleted via the ACE_TSS_cleanup function // when the thread terminates. @@ -232,8 +236,9 @@ ACE_Log_Msg::instance (void) // ACE_Log_Msg_Manager::get_lock() to initialize the message queue, // so instead we do it here. if (ACE_Log_Msg_message_queue == 0) - ACE_NEW_RETURN (ACE_Log_Msg_message_queue, ACE_LOG_MSG_IPC_STREAM, 0); - + ACE_NEW_RETURN (ACE_Log_Msg_message_queue, + ACE_LOG_MSG_IPC_STREAM, + 0); // Singleton implementation. static ACE_Cleanup_Adapter<ACE_Log_Msg> *log_msg = 0; if (log_msg == 0) diff --git a/ace/Module.cpp b/ace/Module.cpp index 9562a09a22c..da64cac7f4f 100644 --- a/ace/Module.cpp +++ b/ace/Module.cpp @@ -84,10 +84,10 @@ ACE_Module<ACE_SYNCH_USE>::link (ACE_Module<ACE_SYNCH_USE> *m) template <ACE_SYNCH_DECL> int ACE_Module<ACE_SYNCH_USE>::open (const ASYS_TCHAR *mod_name, - ACE_Task<ACE_SYNCH_USE> *writer_q, - ACE_Task<ACE_SYNCH_USE> *reader_q, - void *arg, - int flags /* = M_DELETE */) + ACE_Task<ACE_SYNCH_USE> *writer_q, + ACE_Task<ACE_SYNCH_USE> *reader_q, + void *arg, + int flags /* = M_DELETE */) { ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::open"); this->name (mod_name); @@ -102,13 +102,17 @@ ACE_Module<ACE_SYNCH_USE>::open (const ASYS_TCHAR *mod_name, if (writer_q == 0) { - writer_q = new ACE_Thru_Task<ACE_SYNCH_USE>; + ACE_NEW_RETURN (writer_q, + ACE_Thru_Task<ACE_SYNCH_USE>, + -1); ACE_SET_BITS (flags, M_DELETE_WRITER); } if (reader_q == 0) { - reader_q = new ACE_Thru_Task<ACE_SYNCH_USE>; + ACE_NEW_RETURN (reader_q, + ACE_Thru_Task<ACE_SYNCH_USE>, + -1); ACE_SET_BITS (flags, M_DELETE_READER); } @@ -187,7 +191,9 @@ ACE_Module<ACE_SYNCH_USE>::ACE_Module (const ASYS_TCHAR *mod_name, this->q_pair_[1] = 0; if (this->open (mod_name, writer_q, reader_q, args, flags) == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("ACE_Module"))); + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("ACE_Module"))); } template <ACE_SYNCH_DECL> int diff --git a/ace/OS.cpp b/ace/OS.cpp index b20051f125d..8754dbc8f60 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -1848,9 +1848,9 @@ ACE_TSS_Cleanup::instance (void) // Now, use the Double-Checked Locking pattern to make sure we // only create the ACE_TSS_Cleanup instance once. if (ACE_TSS_Cleanup::instance_ == 0) - { - ACE_NEW_RETURN (ACE_TSS_Cleanup::instance_, ACE_TSS_Cleanup, 0); - } + ACE_NEW_RETURN (ACE_TSS_Cleanup::instance_, + ACE_TSS_Cleanup, + 0); } return ACE_TSS_Cleanup::instance_; @@ -2004,11 +2004,14 @@ ACE_TSS_Cleanup::tss_keys () if (ts_keys == 0) { - ACE_NEW_RETURN (ts_keys, ACE_TSS_Keys, 0); + ACE_NEW_RETURN (ts_keys, + ACE_TSS_Keys, + 0); // Store the dynamically allocated pointer in thread-specific // storage. if (ACE_OS::thr_setspecific (in_use_, - ACE_reinterpret_cast (void *, ts_keys)) == -1) + ACE_reinterpret_cast (void *, + ts_keys)) == -1) { delete ts_keys; return 0; // Major problems, this should *never* happen! @@ -2087,15 +2090,19 @@ ACE_TSS_Emulation::tss_base (void* ts_storage[]) { ACE_NO_HEAP_CHECK; - ACE_NEW_RETURN (ts_storage, void*[ACE_TSS_THREAD_KEYS_MAX], 0); + ACE_NEW_RETURN (ts_storage, + void*[ACE_TSS_THREAD_KEYS_MAX], + 0); // Zero the entire TSS array. Do it manually instead of using - // memset, for optimum speed. Though, memset may be faster :-) + // memset, for optimum speed. Though, memset may be faster + // :-) void **tss_base_p = ts_storage; - for (u_int i = 0; i < ACE_TSS_THREAD_KEYS_MAX; ++i, ++tss_base_p) - { - *tss_base_p = 0; - } + + for (u_int i = 0; + i < ACE_TSS_THREAD_KEYS_MAX; + ++i) + *tss_base_p++ = 0; } // Store the pointer in thread-specific storage. It gets deleted @@ -4193,7 +4200,9 @@ writev (ACE_HANDLE handle, ACE_WRITEV_TYPE iov[], int n) # if defined (ACE_HAS_ALLOCA) buf = (char *) alloca (length); # else - ACE_NEW_RETURN (buf, char[length], -1); + ACE_NEW_RETURN (buf, + char[length], + -1); # endif /* !defined (ACE_HAS_ALLOCA) */ char *ptr = buf; @@ -4237,7 +4246,9 @@ ACE_TRACE ("readv"); # if defined (ACE_HAS_ALLOCA) buf = (char *) alloca (length); # else - ACE_NEW_RETURN (buf, char[length], -1); + ACE_NEW_RETURN (buf, + char[length], + -1); # endif /* !defined (ACE_HAS_ALLOCA) */ length = ACE_OS::read_n (handle, buf, length); @@ -6277,7 +6288,9 @@ ACE_OS_Object_Manager::instance (void) { ACE_OS_Object_Manager *instance_pointer; - ACE_NEW_RETURN (instance_pointer, ACE_OS_Object_Manager, 0); + ACE_NEW_RETURN (instance_pointer, + ACE_OS_Object_Manager, + 0); ACE_ASSERT (instance_pointer == instance_); instance_pointer->dynamically_allocated_ = 1; @@ -7279,8 +7279,9 @@ private: # if defined (__BORLANDC__) && (__BORLANDC__ <= 0x540) # define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \ do { \ + TYPE ace_result_; \ TYPE ace_local_result_ = (TYPE) X; \ - TYPE ace_result_ = ace_local_result_; \ + ace_result_ = ace_local_result_; \ if (ace_result_ == FAILVALUE) \ ACE_OS::set_errno_to_last_error (); \ return ace_result_; \ diff --git a/ace/Object_Manager.cpp b/ace/Object_Manager.cpp index c6f5e15b430..9ce357842aa 100644 --- a/ace/Object_Manager.cpp +++ b/ace/Object_Manager.cpp @@ -235,15 +235,16 @@ ACE_Object_Manager::init (void) ACE_TSS_Emulation::tss_open (ts_storage_); # endif /* ACE_HAS_TSS_EMULATION */ - ACE_NEW_RETURN (preallocations_, ACE_Object_Manager_Preallocations, + ACE_NEW_RETURN (preallocations_, + ACE_Object_Manager_Preallocations, -1); - // Open the main thread's ACE_Log_Msg. (void) ACE_LOG_MSG; } - ACE_NEW_RETURN (default_mask_, ACE_Sig_Set (1), -1); - + ACE_NEW_RETURN (default_mask_, + ACE_Sig_Set (1), + -1); // Finally, indicate that the ACE_Object_Manager instance has // been initialized. object_manager_state_ = OBJ_MAN_INITIALIZED; @@ -301,7 +302,9 @@ ACE_Object_Manager::instance (void) { ACE_Object_Manager *instance_pointer; - ACE_NEW_RETURN (instance_pointer, ACE_Object_Manager, 0); + ACE_NEW_RETURN (instance_pointer, + ACE_Object_Manager, + 0); ACE_ASSERT (instance_pointer == instance_); instance_pointer->dynamically_allocated_ = 1; @@ -309,9 +312,7 @@ ACE_Object_Manager::instance (void) return instance_pointer; } else - { - return instance_; - } + return instance_; } ACE_Sig_Set & @@ -401,41 +402,40 @@ ACE_Object_Manager::get_singleton_lock (ACE_Thread_Mutex *&lock) { if (lock == 0) { - if (starting_up () || shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. So, we'll leak the lock. - - ACE_NEW_RETURN (lock, ACE_Thread_Mutex, -1); - } - else + if (starting_up () || shutting_down ()) + // The Object_Manager and its internal lock have not been + // constructed yet. Therefore, the program is single- + // threaded at this point. Or, the ACE_Object_Manager + // instance has been destroyed, so the internal lock is not + // available. Either way, we can not use double-checked + // locking. So, we'll leak the lock. + ACE_NEW_RETURN (lock, + ACE_Thread_Mutex, + -1); + } + else + { + // Allocate a new lock, but use double-checked locking to + // ensure that only one thread allocates it. + ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, + ace_mon, + *ACE_Object_Manager::instance ()-> + internal_lock_, + -1)); + + if (lock == 0) { - // Allocate a new lock, but use double-checked locking to - // ensure that only one thread allocates it. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, - ace_mon, - *ACE_Object_Manager::instance ()-> - internal_lock_, - -1)); - - if (lock == 0) - { - ACE_Cleanup_Adapter<ACE_Thread_Mutex> *lock_adapter; - ACE_NEW_RETURN (lock_adapter, - ACE_Cleanup_Adapter<ACE_Thread_Mutex>, - -1); - lock = &lock_adapter->object (); + ACE_Cleanup_Adapter<ACE_Thread_Mutex> *lock_adapter; + ACE_NEW_RETURN (lock_adapter, + ACE_Cleanup_Adapter<ACE_Thread_Mutex>, + -1); + lock = &lock_adapter->object (); - // Register the lock for destruction at program - // termination. This call will cause us to grab the - // ACE_Object_Manager::instance ()->internal_lock_ - // again; that's why it is a recursive lock. - ACE_Object_Manager::at_exit (lock_adapter); - } + // Register the lock for destruction at program + // termination. This call will cause us to grab the + // ACE_Object_Manager::instance ()->internal_lock_ + // again; that's why it is a recursive lock. + ACE_Object_Manager::at_exit (lock_adapter); } } @@ -448,16 +448,16 @@ ACE_Object_Manager::get_singleton_lock (ACE_Mutex *&lock) if (lock == 0) { if (starting_up () || shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. So, we'll leak the lock. - - ACE_NEW_RETURN (lock, ACE_Mutex, -1); - } + // The Object_Manager and its internal lock have not been + // constructed yet. Therefore, the program is single- + // threaded at this point. Or, the ACE_Object_Manager + // instance has been destroyed, so the internal lock is not + // available. Either way, we can not use double-checked + // locking. So, we'll leak the lock. + + ACE_NEW_RETURN (lock, + ACE_Mutex, + -1); else { // Allocate a new lock, but use double-checked locking to @@ -529,17 +529,17 @@ ACE_Object_Manager::get_singleton_lock (ACE_RW_Thread_Mutex *&lock) { if (lock == 0) { - if (starting_up () || shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. So, we'll leak the lock. - - ACE_NEW_RETURN (lock, ACE_RW_Thread_Mutex, -1); - } + if (starting_up () || shutting_down ()) + // The Object_Manager and its internal lock have not been + // constructed yet. Therefore, the program is single- + // threaded at this point. Or, the ACE_Object_Manager + // instance has been destroyed, so the internal lock is not + // available. Either way, we can not use double-checked + // locking. So, we'll leak the lock. + + ACE_NEW_RETURN (lock, + ACE_RW_Thread_Mutex, + -1); else { // Allocate a new lock, but use double-checked locking to @@ -547,7 +547,7 @@ ACE_Object_Manager::get_singleton_lock (ACE_RW_Thread_Mutex *&lock) ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, *ACE_Object_Manager::instance ()-> - internal_lock_, + internal_lock_, -1)); if (lock == 0) diff --git a/ace/POSIX_Proactor.cpp b/ace/POSIX_Proactor.cpp index 9738b4f1c1a..9a6eb50e940 100644 --- a/ace/POSIX_Proactor.cpp +++ b/ace/POSIX_Proactor.cpp @@ -357,8 +357,6 @@ ACE_POSIX_Proactor::post_wakeup_completions (int how_many) return 0; } -// ********************************************************************* - class ACE_Export ACE_AIOCB_Notify_Pipe_Manager : public ACE_Handler { // = TITLE @@ -913,7 +911,9 @@ ACE_Asynch_Read_Stream_Impl * ACE_POSIX_SIG_Proactor::create_asynch_read_stream (void) { ACE_Asynch_Read_Stream_Impl *implementation = 0; - ACE_NEW_RETURN (implementation, ACE_POSIX_SIG_Asynch_Read_Stream (this), 0); + ACE_NEW_RETURN (implementation, + ACE_POSIX_SIG_Asynch_Read_Stream (this), + 0); return implementation; } @@ -921,7 +921,9 @@ ACE_Asynch_Write_Stream_Impl * ACE_POSIX_SIG_Proactor::create_asynch_write_stream (void) { ACE_Asynch_Write_Stream_Impl *implementation = 0; - ACE_NEW_RETURN (implementation, ACE_POSIX_SIG_Asynch_Write_Stream (this), 0); + ACE_NEW_RETURN (implementation, + ACE_POSIX_SIG_Asynch_Write_Stream (this), + 0); return implementation; } @@ -929,7 +931,9 @@ ACE_Asynch_Read_File_Impl * ACE_POSIX_SIG_Proactor::create_asynch_read_file (void) { ACE_Asynch_Read_File_Impl *implementation = 0; - ACE_NEW_RETURN (implementation, ACE_POSIX_SIG_Asynch_Read_File (this), 0); + ACE_NEW_RETURN (implementation, + ACE_POSIX_SIG_Asynch_Read_File (this), + 0); return implementation; } @@ -937,7 +941,9 @@ ACE_Asynch_Write_File_Impl * ACE_POSIX_SIG_Proactor::create_asynch_write_file (void) { ACE_Asynch_Write_File_Impl *implementation = 0; - ACE_NEW_RETURN (implementation, ACE_POSIX_SIG_Asynch_Write_File (this), 0); + ACE_NEW_RETURN (implementation, + ACE_POSIX_SIG_Asynch_Write_File (this), + 0); return implementation; } @@ -945,7 +951,9 @@ ACE_Asynch_Accept_Impl * ACE_POSIX_SIG_Proactor::create_asynch_accept (void) { ACE_Asynch_Accept_Impl *implementation = 0; - ACE_NEW_RETURN (implementation, ACE_POSIX_SIG_Asynch_Accept (this), 0); + ACE_NEW_RETURN (implementation, + ACE_POSIX_SIG_Asynch_Accept (this), + 0); return implementation; } diff --git a/ace/Priority_Reactor.cpp b/ace/Priority_Reactor.cpp index 6ce6b11ffc8..de12d4b755e 100644 --- a/ace/Priority_Reactor.cpp +++ b/ace/Priority_Reactor.cpp @@ -35,13 +35,13 @@ ACE_Priority_Reactor::init_bucket (void) TUPLE_ALLOCATOR (ACE_Select_Reactor::DEFAULT_SIZE)); // The event handlers are assigned to a new As the Event - ACE_NEW (this->bucket_, QUEUE*[npriorities]); + ACE_NEW (this->bucket_, + QUEUE *[npriorities]); + // This loops "ensures" exception safety. - int i; - for (i = 0; i < npriorities; ++i) - { - ACE_NEW (this->bucket_[i], QUEUE (this->tuple_allocator_)); - } + for (int i = 0; i < npriorities; ++i) + ACE_NEW (this->bucket_[i], + QUEUE (this->tuple_allocator_)); } ACE_Priority_Reactor::ACE_Priority_Reactor (ACE_Sig_Handler *sh, @@ -69,10 +69,10 @@ ACE_Priority_Reactor::ACE_Priority_Reactor (size_t size, ACE_Priority_Reactor::~ACE_Priority_Reactor (void) { ACE_TRACE ("ACE_Priority_Reactor::~ACE_Priority_Reactor"); + for (int i = 0; i < npriorities; ++i) - { - delete this->bucket_[i]; - } + delete this->bucket_[i]; + delete[] this->bucket_; delete tuple_allocator_; } @@ -88,49 +88,37 @@ ACE_Priority_Reactor::dispatch_io_set (int number_of_active_handles, ACE_TRACE ("ACE_Priority_Reactor::dispatch_io_set"); if (number_of_active_handles == 0) - { - return 0; - } - - // ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("ACE_Priority_Reactor::dispatch_io_set\n"))); - - ACE_HANDLE handle; - + return 0; // The range for which there exists any Event_Tuple is computed on - // the ordering loop, minimizing iterations on the dispatching - // loop. + // the ordering loop, minimizing iterations on the dispatching loop. int min_priority = ACE_Event_Handler::HI_PRIORITY; int max_priority = ACE_Event_Handler::LO_PRIORITY; ACE_Handle_Set_Iterator handle_iter (dispatch_mask); - while ((handle = handle_iter ()) != ACE_INVALID_HANDLE) + for (ACE_HANDLE handle; + (handle = handle_iter ()) != ACE_INVALID_HANDLE; + ) { - ACE_Event_Tuple et (this->handler_rep_.find (handle), handle); + ACE_Event_Tuple et (this->handler_rep_.find (handle), + handle); int prio = et.event_handler_->priority (); // If the priority is out of range assign the minimum priority. if (prio < ACE_Event_Handler::LO_PRIORITY || prio > ACE_Event_Handler::HI_PRIORITY) - { - prio = ACE_Event_Handler::LO_PRIORITY; - } + prio = ACE_Event_Handler::LO_PRIORITY; bucket_[prio]->enqueue_tail (et); + // Update the priority ranges.... if (min_priority > prio) - { - min_priority = prio; - } + min_priority = prio; if (max_priority < prio) - { - max_priority = prio; - } + max_priority = prio; } - // ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("dispatching.... %d\n"), number_of_active_handles)); - for (int i = max_priority; i >= min_priority; --i) { // Remove all the entries from the wrappers @@ -153,9 +141,7 @@ ACE_Priority_Reactor::dispatch_io_set (int number_of_active_handles, } if (number_dispatched > 0 && this->state_changed_) - { - return -1; - } + return -1; return 0; } diff --git a/ace/Proactor.cpp b/ace/Proactor.cpp index 48700ed4d3c..96a982d9b3e 100644 --- a/ace/Proactor.cpp +++ b/ace/Proactor.cpp @@ -250,15 +250,19 @@ ACE_Proactor::ACE_Proactor (ACE_Proactor_Impl *implementation, #if defined (ACE_HAS_AIO_CALLS) // POSIX Proactor. #if defined (ACE_POSIX_AIOCB_PROACTOR) - ACE_NEW (implementation, ACE_POSIX_AIOCB_Proactor); + ACE_NEW (implementation, + ACE_POSIX_AIOCB_Proactor); #elif defined (ACE_POSIX_SIG_PROACTOR) - ACE_NEW (implementation, ACE_POSIX_SIG_Proactor); + ACE_NEW (implementation, + ACE_POSIX_SIG_Proactor); #else /* Default is to use the SIG one */ - ACE_NEW (implementation, ACE_POSIX_SIG_Proactor); + ACE_NEW (implementation, + ACE_POSIX_SIG_Proactor); #endif #elif (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) // WIN_Proactor. - ACE_NEW (implementation, ACE_WIN32_Proactor); + ACE_NEW (implementation, + ACE_WIN32_Proactor); #endif /* ACE_HAS_AIO_CALLS */ this->implementation (implementation); this->delete_implementation_ = 1; @@ -680,7 +684,8 @@ ACE_Proactor::timer_queue (TIMER_QUEUE *tq) // New timer queue. if (tq == 0) { - this->timer_queue_ = new TIMER_HEAP; + ACE_NEW (this->timer_queue_, + TIMER_HEAP); this->delete_timer_queue_ = 1; } else diff --git a/ace/Process.cpp b/ace/Process.cpp index d560a9d51e8..b4a90c62f8e 100644 --- a/ace/Process.cpp +++ b/ace/Process.cpp @@ -239,13 +239,16 @@ ACE_Process_Options::ACE_Process_Options (int ie, command_line_argv_calculated_ (0), command_line_buf_ (0) { - ACE_NEW (command_line_buf_, TCHAR[cobl]); + ACE_NEW (command_line_buf_, + TCHAR[cobl]); command_line_buf_[0] = '\0'; #if !defined (ACE_HAS_WINCE) working_directory_[0] = '\0'; - ACE_NEW (environment_buf_, TCHAR[ebl]); - ACE_NEW (environment_argv_, LPTSTR[mea]); + ACE_NEW (environment_buf_, + TCHAR[ebl]); + ACE_NEW (environment_argv_, + LPTSTR[mea]); environment_buf_[0] = '\0'; environment_argv_[0] = 0; diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp index d1d3f0ada79..6be9d9b4c4c 100644 --- a/ace/Process_Manager.cpp +++ b/ace/Process_Manager.cpp @@ -55,7 +55,9 @@ ACE_Process_Manager::resize (size_t size) ACE_Process_Descriptor *temp; - ACE_NEW_RETURN (temp, ACE_Process_Descriptor[size], -1); + ACE_NEW_RETURN (temp, + ACE_Process_Descriptor[size], + -1); for (size_t i = 0; i < this->max_table_size_; i++) temp[i] = this->proc_table_[i]; // Structure assignment. diff --git a/ace/RB_Tree.cpp b/ace/RB_Tree.cpp index 251f5c563e3..0a0b0e073d4 100644 --- a/ace/RB_Tree.cpp +++ b/ace/RB_Tree.cpp @@ -17,11 +17,6 @@ ACE_RCSID(ace, RB_Tree, "$Id$") -///////////////////////////////////////////////////// -// template class ACE_RB_Tree_Node<EXT_ID, INT_ID> // -///////////////////////////////////////////////////// - - // Constructor. template <class EXT_ID, class INT_ID> @@ -40,7 +35,7 @@ ACE_RB_Tree_Node<EXT_ID, INT_ID>::ACE_RB_Tree_Node (const EXT_ID &k, const INT_I // Destructor. template <class EXT_ID, class INT_ID> -ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node () +ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node (void) { ACE_TRACE ("ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node"); @@ -51,12 +46,6 @@ ACE_RB_Tree_Node<EXT_ID, INT_ID>::~ACE_RB_Tree_Node () delete right_; } - - -//////////////////////////////////////////////// -// template class ACE_RB_Tree<EXT_ID, INT_ID> // -//////////////////////////////////////////////// - // Constructor. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> @@ -71,7 +60,6 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator ACE_ERROR ((LM_ERROR, ASYS_TEXT ("ACE_RB_Tree::ACE_RB_Tree\n"))); } - // Copy constructor. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> @@ -86,10 +74,10 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (const ACE_RB_T // Make a deep copy of the passed tree. ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iter(rbt); + for (iter.first (); iter.is_done () == 0; iter.next ()) - { - insert_i (*(iter.key ()), *(iter.item ())); - } + insert_i (*(iter.key ()), + *(iter.item ())); } // Destructor. @@ -99,12 +87,11 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree () { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree"); - // Use the locked public method, to be totally safe, as the - // class can be used with an allocator and placement new. + // Use the locked public method, to be totally safe, as the class + // can be used with an allocator and placement new. this->close (); } - // Assignment operator. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void @@ -118,17 +105,17 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator = (const ACE_RB_Tr // Make a deep copy of the passed tree. ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iter(rbt); + for (iter.first (); iter.is_done () == 0; iter.next ()) - { - insert_i (*(iter.key ()), *(iter.item ())); - } + insert_i (*(iter.key ()), + *(iter.item ())); // Use the same allocator as the rhs. allocator_ = rbt.allocator_; } -// Less than comparison function for keys, default -// functor implementation returns 1 if k1 < k2, 0 otherwise. +// Less than comparison function for keys, default functor +// implementation returns 1 if k1 < k2, 0 otherwise. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::lessthan (const EXT_ID &k1, const EXT_ID &k2) @@ -137,7 +124,6 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::lessthan (const EXT_ID &k1, return this->compare_keys_ (k1, k2); } - // Method for right rotation of the tree about a given node. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void @@ -146,48 +132,37 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_right (ACE_RB_Tre ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_right"); if (! x) - { - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nerror: x is a null pointer in " - "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_right\n"))); - } + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nerror: x is a null pointer in " + "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_right\n"))); else if (! (x->left())) - { - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), ASYS_TEXT ("\nerror: x->left () is a null pointer in " "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_right\n"))); - } else - { - ACE_RB_Tree_Node<EXT_ID, INT_ID> * y; - y = x->left (); - x->left (y->right ()); - if (y->right ()) - { - y->right ()->parent (x); - } - y->parent (x->parent ()); - if (x->parent ()) { - if (x == x->parent ()->right ()) - { - x->parent ()->right (y); - } + ACE_RB_Tree_Node<EXT_ID, INT_ID> * y; + y = x->left (); + x->left (y->right ()); + if (y->right ()) + y->right ()->parent (x); + y->parent (x->parent ()); + if (x->parent ()) + { + if (x == x->parent ()->right ()) + x->parent ()->right (y); + else + x->parent ()->left (y); + } else - { - x->parent ()->left (y); - } + root_ = y; + y->right (x); + x->parent (y); } - else - { - root_ = y; - } - y->right (x); - x->parent (y); - } } - // Method for left rotation of the tree about a given node. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void @@ -196,48 +171,37 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_left (ACE_RB_Tree ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rotate_left"); if (! x) - { - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), ASYS_TEXT ("\nerror: x is a null pointer in " "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_left\n"))); - } else if (! (x->right())) - { - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), ASYS_TEXT ("\nerror: x->right () is a null pointer " "in ACE_RB_Tree<EXT_ID, INT_ID>::RB_rotate_left\n"))); - } else - { - ACE_RB_Tree_Node<EXT_ID, INT_ID> * y; - y = x->right (); - x->right (y->left ()); - if (y->left ()) - { - y->left ()->parent (x); - } - y->parent (x->parent ()); - if (x->parent ()) { - if (x == x->parent ()->left ()) - { - x->parent ()->left (y); - } + ACE_RB_Tree_Node<EXT_ID, INT_ID> * y; + y = x->right (); + x->right (y->left ()); + if (y->left ()) + y->left ()->parent (x); + y->parent (x->parent ()); + if (x->parent ()) + { + if (x == x->parent ()->left ()) + x->parent ()->left (y); + else + x->parent ()->right (y); + } else - { - x->parent ()->right (y); - } - } - else - { - root_ = y; + root_ = y; + y->left (x); + x->parent (y); } - y->left (x); - x->parent (y); - } } - // Method for restoring Red-Black properties after deletion. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void @@ -245,120 +209,107 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_delete_fixup (ACE_RB_Tre { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_delete_fixup"); - while (x && - x->parent () && - x->color () == ACE_RB_Tree_Node_Base::BLACK) - { - if (x == x->parent ()->left ()) + while (x + && x->parent () + && x->color () == ACE_RB_Tree_Node_Base::BLACK) { - ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = x->parent ()->right (); - if (w && w->color () == ACE_RB_Tree_Node_Base::RED) - { - w->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->color (ACE_RB_Tree_Node_Base::RED); - RB_rotate_left (x->parent ()); - w = x->parent ()->right (); - } - // CLR pp. 263 says that nil nodes are implicitly colored BLACK - if ((w) && - (!w->left () || - w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK) && - (!w->right () || - w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) - { - w->color (ACE_RB_Tree_Node_Base::RED); - x = x->parent (); - } - else - { - // CLR pp. 263 says that nil nodes are implicitly colored BLACK - if (w && - (!w->right () || - w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) + if (x == x->parent ()->left ()) { - if (w->left ()) + ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = x->parent ()->right (); + if (w && w->color () == ACE_RB_Tree_Node_Base::RED) + { + w->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->color (ACE_RB_Tree_Node_Base::RED); + RB_rotate_left (x->parent ()); + w = x->parent ()->right (); + } + // CLR pp. 263 says that nil nodes are implicitly colored BLACK + if ((w) && + (!w->left () + || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK) + && (!w->right () + || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) + { + w->color (ACE_RB_Tree_Node_Base::RED); + x = x->parent (); + } + else { - w->left ()->color (ACE_RB_Tree_Node_Base::BLACK); + // CLR pp. 263 says that nil nodes are implicitly colored BLACK + if (w && + (!w->right () + || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) + { + if (w->left ()) + w->left ()->color (ACE_RB_Tree_Node_Base::BLACK); + w->color (ACE_RB_Tree_Node_Base::RED); + RB_rotate_right (w); + w = x->parent ()->right (); + } + if (w) + { + w->color (x->parent ()->color ()); + if (w->right ()) + w->right ()->color (ACE_RB_Tree_Node_Base::BLACK); + } + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + RB_rotate_left (x->parent ()); + x = root_; } - w->color (ACE_RB_Tree_Node_Base::RED); - RB_rotate_right (w); - w = x->parent ()->right (); } - if (w) - { - w->color (x->parent ()->color ()); - if (w->right ()) - { - w->right ()->color (ACE_RB_Tree_Node_Base::BLACK); - } - } - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - RB_rotate_left (x->parent ()); - x = root_; - } - } - else - { - ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = x->parent ()->left (); - if (w && w->color () == ACE_RB_Tree_Node_Base::RED) - { - w->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->color (ACE_RB_Tree_Node_Base::RED); - RB_rotate_right (x->parent ()); - w = x->parent ()->left (); - } - // CLR pp. 263 says that nil nodes are implicitly colored BLACK - if (w && - (!w->left () || - w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK) && - (!w->right () || - w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) - { - w->color (ACE_RB_Tree_Node_Base::RED); - x = x->parent (); - } else - { - // CLR pp. 263 says that nil nodes are implicitly colored BLACK - if (w && - (!w->left () || - w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK)) { - w->color (ACE_RB_Tree_Node_Base::RED); - if (w->right ()) + ACE_RB_Tree_Node<EXT_ID, INT_ID> *w = x->parent ()->left (); + if (w && w->color () == ACE_RB_Tree_Node_Base::RED) + { + w->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->color (ACE_RB_Tree_Node_Base::RED); + RB_rotate_right (x->parent ()); + w = x->parent ()->left (); + } + // CLR pp. 263 says that nil nodes are implicitly colored BLACK + if (w && + (!w->left () + || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK) + && (!w->right () + || w->right ()->color () == ACE_RB_Tree_Node_Base::BLACK)) { - w->right ()->color (ACE_RB_Tree_Node_Base::BLACK); + w->color (ACE_RB_Tree_Node_Base::RED); + x = x->parent (); + } + else + { + // CLR pp. 263 says that nil nodes are implicitly colored BLACK + if (w && + (!w->left () + || w->left ()->color () == ACE_RB_Tree_Node_Base::BLACK)) + { + w->color (ACE_RB_Tree_Node_Base::RED); + if (w->right ()) + w->right ()->color (ACE_RB_Tree_Node_Base::BLACK); + RB_rotate_left (w); + w = x->parent ()->left (); + } + if (w) + { + w->color (x->parent ()->color ()); + if (w->left ()) + w->left ()->color (ACE_RB_Tree_Node_Base::BLACK); + } + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + RB_rotate_right (x->parent ()); + x = root_; } - RB_rotate_left (w); - w = x->parent ()->left (); } - if (w) - { - w->color (x->parent ()->color ()); - if (w->left ()) - { - w->left ()->color (ACE_RB_Tree_Node_Base::BLACK); - } - } - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - RB_rotate_right (x->parent ()); - x = root_; - } } - } if (x) - { x->color (ACE_RB_Tree_Node_Base::BLACK); - } } - - -// Return a pointer to a matching node if there is one, -// a pointer to the node under which to insert the item -// if the tree is not empty and there is no such match, -// or 0 if the tree is empty. +// Return a pointer to a matching node if there is one, a pointer to +// the node under which to insert the item if the tree is not empty +// and there is no such match, or 0 if the tree is empty. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> * ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_node (const EXT_ID &k, ACE_RB_Tree_Base::RB_SearchResult &result) @@ -369,52 +320,47 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_node (const EXT_ID &k, ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = root_; while (current) - { - // While there are more nodes to examine. - if (this->lessthan (current->key (), k)) - { - // If the search key is greater than the current node's key. - if (current->right ()) - { - // If the right subtree is not empty, search to the right. - current = current->right (); - } - else - { - // If the right subtree is empty, we're done searching, - // and are positioned to the left of the insertion point. - result = LEFT; - break; - } - } - else if (this->lessthan (k, current->key ())) { - // Else if the search key is less than the current node's key. - if (current->left ()) - { - // If the left subtree is not empty, search to the left. - current = current->left (); - } + // While there are more nodes to examine. + if (this->lessthan (current->key (), k)) + { + // If the search key is greater than the current node's key. + if (current->right ()) + // If the right subtree is not empty, search to the right. + current = current->right (); + else + { + // If the right subtree is empty, we're done searching, + // and are positioned to the left of the insertion point. + result = LEFT; + break; + } + } + else if (this->lessthan (k, current->key ())) + { + // Else if the search key is less than the current node's key. + if (current->left ()) + // If the left subtree is not empty, search to the left. + current = current->left (); + else + { + // If the left subtree is empty, we're done searching, + // and are positioned to the right of the insertion point. + result = RIGHT; + break; + } + } else - { - // If the left subtree is empty, we're done searching, - // and are positioned to the right of the insertion point. - result = RIGHT; - break; - } - } - else - { - // If the keys match exactly, we're done as well. - result = EXACT; - break; + { + // If the keys match exactly, we're done as well. + result = EXACT; + break; + } } - } return current; } - // Rebalance the tree after insertion of a node. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void @@ -425,74 +371,74 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_rebalance (ACE_RB_Tree_N ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = 0; while (x && - x->parent () && - x->parent ()->color () == ACE_RB_Tree_Node_Base::RED) - { - if (! x->parent ()->parent ()) - { - // If we got here, something is drastically wrong! - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nerror: parent's parent is null in " - "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rebalance\n"))); - return; - } - - if (x->parent () == x->parent ()->parent ()->left ()) + x->parent () + && x->parent ()->color () == ACE_RB_Tree_Node_Base::RED) { - y = x->parent ()->parent ()->right (); - if (y && y->color () == ACE_RB_Tree_Node_Base::RED) - { - // Handle case 1 (see CLR book, pp. 269). - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - y->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); - x = x->parent ()->parent (); - } - else - { - if (x == x->parent ()->right ()) + if (! x->parent ()->parent ()) { - // Transform case 2 into case 3 (see CLR book, pp. 269). - x = x->parent (); - RB_rotate_left (x); + // If we got here, something is drastically wrong! + ACE_ERROR ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nerror: parent's parent is null in " + "ACE_RB_Tree<EXT_ID, INT_ID>::RB_rebalance\n"))); + return; } - // Handle case 3 (see CLR book, pp. 269). - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); - RB_rotate_right (x->parent ()->parent ()); - } - } - else - { - y = x->parent ()->parent ()->left (); - if (y && y->color () == ACE_RB_Tree_Node_Base::RED) - { - // Handle case 1 (see CLR book, pp. 269). - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - y->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); - x = x->parent ()->parent (); - } + if (x->parent () == x->parent ()->parent ()->left ()) + { + y = x->parent ()->parent ()->right (); + if (y && y->color () == ACE_RB_Tree_Node_Base::RED) + { + // Handle case 1 (see CLR book, pp. 269). + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + y->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); + x = x->parent ()->parent (); + } + else + { + if (x == x->parent ()->right ()) + { + // Transform case 2 into case 3 (see CLR book, pp. 269). + x = x->parent (); + RB_rotate_left (x); + } + + // Handle case 3 (see CLR book, pp. 269). + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); + RB_rotate_right (x->parent ()->parent ()); + } + } else - { - if (x == x->parent ()->left ()) { - // Transform case 2 into case 3 (see CLR book, pp. 269). - x = x->parent (); - RB_rotate_right (x); + y = x->parent ()->parent ()->left (); + if (y && y->color () == ACE_RB_Tree_Node_Base::RED) + { + // Handle case 1 (see CLR book, pp. 269). + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + y->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); + x = x->parent ()->parent (); + } + else + { + if (x == x->parent ()->left ()) + { + // Transform case 2 into case 3 (see CLR book, pp. 269). + x = x->parent (); + RB_rotate_right (x); + } + + // Handle case 3 (see CLR book, pp. 269). + x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); + x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); + RB_rotate_left (x->parent ()->parent ()); + } } - - // Handle case 3 (see CLR book, pp. 269). - x->parent ()->color (ACE_RB_Tree_Node_Base::BLACK); - x->parent ()->parent ()->color (ACE_RB_Tree_Node_Base::RED); - RB_rotate_left (x->parent ()->parent ()); - } } - } } - // Method to find the successor node of the given node in the tree. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> * @@ -501,21 +447,18 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_successor (ACE_RB_T ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_successor"); if (x->right ()) - { return RB_tree_minimum (x->right ()); - } ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = x->parent (); while ((y) && (x == y->right ())) - { - x = y; - y = y->parent (); - } + { + x = y; + y = y->parent (); + } return y; } - // Method to find the predecessor node of the given node in the tree. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> * @@ -524,21 +467,19 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_predecessor (ACE_RB ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_predecessor"); if (x->left ()) - { return RB_tree_maximum (x->left ()); - } ACE_RB_Tree_Node<EXT_ID, INT_ID> *y = x->parent (); + while ((y) && (x == y->left ())) - { - x = y; - y = y->parent (); - } + { + x = y; + y = y->parent (); + } return y; } - // Method to find the minimum node of the subtree rooted at the given node. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> * @@ -547,14 +488,11 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_minimum (ACE_RB_Tre ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_minimum"); while ((x) && (x->left ())) - { x = x->left (); - } return x; } - // Method to find the maximum node of the subtree rooted at the given node. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> ACE_RB_Tree_Node<EXT_ID, INT_ID> * @@ -563,18 +501,15 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_maximum (ACE_RB_Tre ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::RB_tree_maximum"); while ((x) && (x->right ())) - { x = x->right (); - } return x; } -// Close down an RB_Tree. this method should -// only be called with locks already held. +// Close down an RB_Tree. this method should only be called with +// locks already held. -template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> -int +template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close_i () { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close_i"); @@ -586,9 +521,9 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::close_i () return 0; } -// Returns a pointer to the item corresponding to the given key, -// or 0 if it cannot find the key in the tree. This method should -// only be called with locks already held. +// Returns a pointer to the item corresponding to the given key, or 0 +// if it cannot find the key in the tree. This method should only be +// called with locks already held. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &k, @@ -601,30 +536,26 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &k, ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result); if (current && result == EXACT) - { - // Found an exact match: return a pointer to the node. - entry = current; - return 0; - } + { + // Found an exact match: return a pointer to the node. + entry = current; + return 0; + } else - { // The node is not there. return -1; - } } - -// Inserts a *copy* of the key and the item into the tree: -// both the key type EXT_ID and the item type INT_ID must have well -// defined semantics for copy construction and < comparison. -// This method returns a pointer to the inserted item copy, -// or 0 if an error occurred. NOTE: if an identical key -// already exists in the tree, no new item is created, and -// the returned pointer addresses the existing item -// associated with the existing key. This method should +// Inserts a *copy* of the key and the item into the tree: both the +// key type EXT_ID and the item type INT_ID must have well defined +// semantics for copy construction and < comparison. This method +// returns a pointer to the inserted item copy, or 0 if an error +// occurred. NOTE: if an identical key already exists in the tree, no +// new item is created, and the returned pointer addresses the +// existing item associated with the existing key. This method should // only be called with locks already held. -template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> INT_ID* +template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> INT_ID * ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t) { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t)"); @@ -633,116 +564,105 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, RB_SearchResult result = LEFT; ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result); if (current) - { - // If the keys match, just return a pointer to the node's item. - if (result == EXACT) - { - return &(current->item ()); - } - // Otherwise if we're to the left of the insertion - // point, insert into the right subtree. - else if (result == LEFT) { - if (current->right ()) - { - // If there is already a right subtree, complain. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nright subtree already present in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), 0); - } - else - { - // The right subtree is empty: insert new node there. - current->right (new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t)); - if (current->right ()) + // If the keys match, just return a pointer to the node's item. + if (result == EXACT) + return ¤t->item (); + + // Otherwise if we're to the left of the insertion point, insert + // into the right subtree. + else if (result == LEFT) { - // If the node was successfully inserted, set its parent, rebalance - // the tree, color the root black, and return a pointer to the - // inserted item. - INT_ID *item = &(current->right ()->item ()); - current->right ()->parent (current); - RB_rebalance (current->right ()); - root_->color (ACE_RB_Tree_Node_Base::BLACK); - ++current_size_; - return item; + if (current->right ()) + // If there is already a right subtree, complain. + ACE_ERROR_RETURN ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nright subtree already present in " + "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), + 0); + else + { + // The right subtree is empty: insert new node there. + ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0; + + ACE_NEW_RETURN (tmp, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + 0); + current->right (tmp); + + // If the node was successfully inserted, set its + // parent, rebalance the tree, color the root black, and + // return a pointer to the inserted item. + INT_ID *item = &(current->right ()->item ()); + current->right ()->parent (current); + RB_rebalance (current->right ()); + root_->color (ACE_RB_Tree_Node_Base::BLACK); + ++current_size_; + return item; + } } - else + // Otherwise, we're to the right of the insertion point, so + // insert into the left subtree. + else // (result == RIGHT) { - // Memory allocation failed. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to current->right_ failed " - "in ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), 0); + if (current->left ()) + // If there is already a left subtree, complain. + ACE_ERROR_RETURN ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nleft subtree already present in " + "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), + 0); + else + { + // The left subtree is empty: insert new node there. + ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0; + ACE_NEW_RETURN (tmp, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + 0); + current->left (tmp); + + // If the node was successfully inserted, set its + // parent, rebalance the tree, color the root black, and + // return a pointer to the inserted item. + INT_ID *item = ¤t->left ()->item (); + current->left ()->parent (current); + RB_rebalance (current->left ()); + root_->color (ACE_RB_Tree_Node_Base::BLACK); + ++current_size_; + return item; + } } - } } - // Otherwise, we're to the right of the insertion - // point, so insert into the left subtree. - else // (result == RIGHT) + else { - if (current->left ()) - { - // If there is already a left subtree, complain. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nleft subtree already present in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), 0); - } - else - { - // The left subtree is empty: insert new node there. - current->left (new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t)); - if (current->left ()) + // The tree is empty: insert at the root and color the root + // black. + ACE_NEW_RETURN (ACE_root_, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + 0); + if (root_) { - // If the node was successfully inserted, set its parent, rebalance - // the tree, color the root black, and return a pointer to the - // inserted item. - INT_ID *item = &(current->left ()->item ()); - current->left ()->parent (current); - RB_rebalance (current->left ()); root_->color (ACE_RB_Tree_Node_Base::BLACK); ++current_size_; - return item; + return &root_->item (); } - else - { - // Memory allocation failed. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to current->left_ failed in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), 0); - } - } - } - } - else - { - // The tree is empty: insert at the root and color the root black. - root_ = new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t); - if (root_) - { - root_->color (ACE_RB_Tree_Node_Base::BLACK); - ++current_size_; - return &(root_->item ()); - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to root_ failed in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), 0); } - } + return 0; } - // Inserts a *copy* of the key and the item into the tree: both the -// key type EXT_ID and the item type INT_ID must have well defined semantics -// for copy construction. The default implementation also requires that -// the key type support well defined < semantics. This method passes back -// a pointer to the inserted (or existing) node, and the search status. If -// the node already exists, the method returns 1. If the node does not -// exist, and a new one is successfully created, and the method returns 0. -// If there was an error, the method returns -1. +// key type EXT_ID and the item type INT_ID must have well defined +// semantics for copy construction. The default implementation also +// requires that the key type support well defined < semantics. This +// method passes back a pointer to the inserted (or existing) node, +// and the search status. If the node already exists, the method +// returns 1. If the node does not exist, and a new one is +// successfully created, and the method returns 0. If there was an +// error, the method returns -1. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int -ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t, +ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, + const INT_ID &t, ACE_RB_Tree_Node<EXT_ID, INT_ID> *&entry) { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, const INT_ID &t, " @@ -752,112 +672,96 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i (const EXT_ID &k, RB_SearchResult result = LEFT; ACE_RB_Tree_Node<EXT_ID, INT_ID> *current = find_node (k, result); if (current) - { - // If the keys match, just return a pointer to the node's item. - if (result == EXACT) - { - entry = current; - return 1; - } - // Otherwise if we're to the left of the insertion - // point, insert into the right subtree. - else if (result == LEFT) { - if (current->right ()) - { - // If there is already a right subtree, complain. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nright subtree already present in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), -1); - } - else - { - // The right subtree is empty: insert new node there. - current->right (new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t)); - if (current->right ()) + // If the keys match, just return a pointer to the node's item. + if (result == EXACT) { - // If the node was successfully inserted, set its parent, rebalance - // the tree, color the root black, and return a pointer to the - // inserted item. - entry = current->right (); - current->right ()->parent (current); - RB_rebalance (current->right ()); - root_->color (ACE_RB_Tree_Node_Base::BLACK); - ++current_size_; - return 0; + entry = current; + return 1; } - else + // Otherwise if we're to the left of the insertion + // point, insert into the right subtree. + else if (result == LEFT) { - // Memory allocation failed. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to current->right_ failed " - "in ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), -1); - } - } - } - // Otherwise, we're to the right of the insertion - // point, so insert into the left subtree. - else // (result == RIGHT) - { - if (current->left ()) - { - // If there is already a left subtree, complain. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nleft subtree already present in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), -1); - } - else - { - // The left subtree is empty: insert new node there. - current->left (new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t)); - if (current->left ()) - { - // If the node was successfully inserted, set its parent, rebalance - // the tree, color the root black, and return a pointer to the - // inserted item. - entry = current->left (); - current->left ()->parent (current); - RB_rebalance (current->left ()); - root_->color (ACE_RB_Tree_Node_Base::BLACK); - ++current_size_; - return 0; + if (current->right ()) + { + // If there is already a right subtree, complain. + ACE_ERROR_RETURN ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nright subtree already present in " + "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), + -1); + } + else + { + // The right subtree is empty: insert new node there. + ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0; + ACE_NEW_RETURN (tmp, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + -1); + current->right (tmp); + + // If the node was successfully inserted, set its parent, rebalance + // the tree, color the root black, and return a pointer to the + // inserted item. + entry = current->right (); + current->right ()->parent (current); + RB_rebalance (current->right ()); + root_->color (ACE_RB_Tree_Node_Base::BLACK); + ++current_size_; + return 0; + } } - else + // Otherwise, we're to the right of the insertion point, so + // insert into the left subtree. + else // (result == RIGHT) { - // Memory allocation failed. - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to current->left_ failed in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), -1); + if (current->left ()) + // If there is already a left subtree, complain. + ACE_ERROR_RETURN ((LM_ERROR, + ASYS_TEXT ("%p\n"), + ASYS_TEXT ("\nleft subtree already present in " + "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), + -1); + else + { + // The left subtree is empty: insert new node there. + ACE_RB_Tree_Node<EXT_ID, INT_ID> *tmp = 0; + ACE_NEW_RETURN (tmp, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + -1); + current->left (tmp); + // If the node was successfully inserted, set its + // parent, rebalance the tree, color the root black, and + // return a pointer to the inserted item. + entry = current->left (); + current->left ()->parent (current); + RB_rebalance (current->left ()); + root_->color (ACE_RB_Tree_Node_Base::BLACK); + ++current_size_; + return 0; + } } - } } - } else - { - // The tree is empty: insert at the root and color the root black. - root_ = new ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t); - if (root_) { + // The tree is empty: insert at the root and color the root black. + ACE_NEW_RETURN (root_, + ACE_RB_Tree_Node<EXT_ID, INT_ID> (k, t), + -1); root_->color (ACE_RB_Tree_Node_Base::BLACK); ++current_size_; entry = root_; return 0; } - else - { - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("\nmemory allocation to root_ failed in " - "ACE_RB_Tree<EXT_ID, INT_ID>::insert_i\n")), -1); - } - } + return -1; } - -// Removes the item associated with the given key from the -// tree and destroys it. Returns 1 if it found the item -// and successfully destroyed it, 0 if it did not find the -// item, or -1 if an error occurred. This method should -// only be called with locks already held. +// Removes the item associated with the given key from the tree and +// destroys it. Returns 1 if it found the item and successfully +// destroyed it, 0 if it did not find the item, or -1 if an error +// occurred. This method should only be called with locks already +// held. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> int ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (const EXT_ID &k, INT_ID &i) @@ -874,7 +778,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (const EXT_ID &k, { // Return the internal id stored in the deleted node. i = z->item (); - return (-1 == this->remove_i (z)) ? -1 : 1; + return -1 == this->remove_i (z) ? -1 : 1; } else { @@ -888,56 +792,45 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node< { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node<EXT_ID, INT_ID> *z)"); - // Delete the node and reorganize the tree to satisfy the Red-Black properties. + // Delete the node and reorganize the tree to satisfy the Red-Black + // properties. ACE_RB_Tree_Node<EXT_ID, INT_ID> *x, *y; - if ((z->left ()) && (z->right ())) - { + if (z->left () && z->right ()) y = RB_tree_successor (z); - } else - { y = z; - } + if (y->left ()) - { x = y->left (); - } else - { x = y->right (); - } + if (x) - { - x->parent (y->parent ()); - } + x->parent (y->parent ()); + if (y->parent ()) - { - if (y == y->parent ()->left ()) { - y->parent ()->left (x); - } - else - { - y->parent ()->right (x); + if (y == y->parent ()->left ()) + y->parent ()->left (x); + else + y->parent ()->right (x); } - } else - { root_ = x; - } + if (y != z) - { - // Copy the elements of y into z. - z->key () = y->key (); - z->item () = y->item (); - } + { + // Copy the elements of y into z. + z->key () = y->key (); + z->item () = y->item (); + } + // CLR pp. 263 says that nil nodes are implicitly colored BLACK if (!y || y->color () == ACE_RB_Tree_Node_Base::BLACK) - { RB_delete_fixup (x); - } + y->parent (0); y->right (0); y->left (0); @@ -947,13 +840,6 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::remove_i (ACE_RB_Tree_Node< return 0; } - - -/////////////////////////////////////////////////////////////////////// -// template class // -// ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> // -/////////////////////////////////////////////////////////////////////// - ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Iterator_Base) // Constructor. @@ -966,13 +852,9 @@ ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_I // Position the iterator at the first (or last) node in the tree. if (set_first) - { - node_ = tree_->RB_tree_minimum (tree_->root_); - } + node_ = tree_->RB_tree_minimum (tree_->root_); else - { - node_ = tree_->RB_tree_maximum (tree_->root_); - } + node_ = tree_->RB_tree_maximum (tree_->root_); } // Copy constructor. @@ -995,7 +877,6 @@ ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator= (co node_ = iter.node_; } - // Destructor. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> @@ -1004,12 +885,6 @@ ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_ ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator_Base"); } - -////////////////////////////////////////////////////////////////// -// template class // -// ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> // -////////////////////////////////////////////////////////////////// - ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Iterator) // Constructor. @@ -1022,7 +897,6 @@ ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterat ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator"); } - // Destructor. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> @@ -1031,11 +905,6 @@ ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Itera ACE_TRACE ("ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator"); } -////////////////////////////////////////////////////////////////////////// -// template class // -// ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> // -////////////////////////////////////////////////////////////////////////// - ACE_ALLOC_HOOK_DEFINE(ACE_RB_Tree_Reverse_Iterator) // Constructor. @@ -1047,7 +916,6 @@ ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tre ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Reverse_Iterator"); } - // Destructor. template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> @@ -1056,5 +924,4 @@ ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tr ACE_TRACE ("ACE_RB_Tree_Reverse_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Reverse_Iterator"); } - #endif /* !defined (ACE_RB_TREE_C) */ diff --git a/ace/Reactor.cpp b/ace/Reactor.cpp index bb43fcbdee8..ebf860d9786 100644 --- a/ace/Reactor.cpp +++ b/ace/Reactor.cpp @@ -35,15 +35,19 @@ ACE_Reactor::ACE_Reactor (ACE_Reactor_Impl *impl, || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) \ || defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL) #if defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL) - ACE_NEW (impl, ACE_TP_Reactor); + ACE_NEW (impl, + ACE_TP_Reactor); #else - ACE_NEW (impl, ACE_Select_Reactor); + ACE_NEW (impl, + ACE_Select_Reactor); #endif /* ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL */ #else /* We are on Win32 and we have winsock and ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL is not defined */ #if defined (ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL) - ACE_NEW (impl, ACE_Msg_WFMO_Reactor); + ACE_NEW (impl, + ACE_Msg_WFMO_Reactor); #else - ACE_NEW (impl, ACE_WFMO_Reactor); + ACE_NEW (impl, + ACE_WFMO_Reactor); #endif /* ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL */ #endif /* !defined (ACE_WIN32) || !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0) || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) */ this->implementation (impl); @@ -80,7 +84,9 @@ ACE_Reactor::instance (void) if (ACE_Reactor::reactor_ == 0) { - ACE_NEW_RETURN (ACE_Reactor::reactor_, ACE_Reactor, 0); + ACE_NEW_RETURN (ACE_Reactor::reactor_, + ACE_Reactor, + 0); ACE_Reactor::delete_reactor_ = 1; } } diff --git a/ace/Remote_Tokens.cpp b/ace/Remote_Tokens.cpp index 72881602d7d..7e47be74ac0 100644 --- a/ace/Remote_Tokens.cpp +++ b/ace/Remote_Tokens.cpp @@ -58,7 +58,9 @@ ACE_TSS_Connection::make_TSS_TYPE (void) const ACE_SOCK_Connector connector; ACE_SOCK_Stream *stream = 0; - ACE_NEW_RETURN (stream, ACE_SOCK_Stream, 0); + ACE_NEW_RETURN (stream, + ACE_SOCK_Stream, + 0); if (connector.connect (*stream, server_address_) == -1) { diff --git a/ace/SOCK_Dgram.cpp b/ace/SOCK_Dgram.cpp index 7c25da9af3e..1e780337673 100644 --- a/ace/SOCK_Dgram.cpp +++ b/ace/SOCK_Dgram.cpp @@ -283,7 +283,9 @@ ACE_SOCK_Dgram::send (const iovec iov[], #if defined (ACE_HAS_ALLOCA) buf = alloca (length); #else - ACE_NEW_RETURN (buf, char[length], -1); + ACE_NEW_RETURN (buf, + char[length], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ char *ptr = buf; @@ -330,7 +332,9 @@ ACE_SOCK_Dgram::recv (iovec iov[], #if defined (ACE_HAS_ALLOCA) buf = alloca (length); #else - ACE_NEW_RETURN (buf, char[length], -1); + ACE_NEW_RETURN (buf, + char[length], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ length = ACE_SOCK_Dgram::recv (buf, length, addr, flags); diff --git a/ace/SOCK_IO.cpp b/ace/SOCK_IO.cpp index abf00af3559..2431033c70d 100644 --- a/ace/SOCK_IO.cpp +++ b/ace/SOCK_IO.cpp @@ -94,7 +94,9 @@ ACE_SOCK_IO::send (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -132,7 +134,9 @@ ACE_SOCK_IO::recv (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); diff --git a/ace/SPIPE_Stream.cpp b/ace/SPIPE_Stream.cpp index 29a5433dd3d..533a47bf080 100644 --- a/ace/SPIPE_Stream.cpp +++ b/ace/SPIPE_Stream.cpp @@ -40,7 +40,9 @@ ACE_SPIPE_Stream::send (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); @@ -75,7 +77,9 @@ ACE_SPIPE_Stream::recv (size_t n, ...) const #if defined (ACE_HAS_ALLOCA) iovp = (iovec *) alloca (total_tuples * sizeof (iovec)); #else - ACE_NEW_RETURN (iovp, iovec[total_tuples], -1); + ACE_NEW_RETURN (iovp, + iovec[total_tuples], + -1); #endif /* !defined (ACE_HAS_ALLOCA) */ va_start (argp, n); diff --git a/ace/SString.cpp b/ace/SString.cpp index ce850e4673f..84d12bedf9a 100644 --- a/ace/SString.cpp +++ b/ace/SString.cpp @@ -646,7 +646,9 @@ ACE_WString::char_rep (void) const { char *t; - ACE_NEW_RETURN (t, char[this->len_ + 1], 0); + ACE_NEW_RETURN (t, + char[this->len_ + 1], + 0); for (size_t i = 0; i < this->len_; i++) // Note that this cast may lose data if wide chars are diff --git a/ace/Service_Config.cpp b/ace/Service_Config.cpp index 8ddf2e566f5..52a2ec4b190 100644 --- a/ace/Service_Config.cpp +++ b/ace/Service_Config.cpp @@ -73,8 +73,9 @@ ACE_STATIC_SVCS * ACE_Service_Config::static_svcs (void) { if (ACE_Service_Config::static_svcs_ == 0) - ACE_NEW_RETURN (ACE_Service_Config::static_svcs_, ACE_STATIC_SVCS, 0); - + ACE_NEW_RETURN (ACE_Service_Config::static_svcs_, + ACE_STATIC_SVCS, + 0); return ACE_Service_Config::static_svcs_; } @@ -514,11 +515,12 @@ ACE_Service_Config::load_static_svcs (void) ACE_Service_Type *sr; - ACE_NEW_RETURN (sr, ACE_Service_Type (ssd->name_, - stp, - 0, - ssd->active_), -1); - + ACE_NEW_RETURN (sr, + ACE_Service_Type (ssd->name_, + stp, + 0, + ssd->active_), + -1); if (ACE_Service_Repository::instance ()->insert (sr) == -1) return -1; } diff --git a/ace/Signal.cpp b/ace/Signal.cpp index 16fd4fef9f5..a596ba17a33 100644 --- a/ace/Signal.cpp +++ b/ace/Signal.cpp @@ -465,8 +465,9 @@ ACE_Sig_Handlers_Set::instance (int signum) if (signum <= 0 || signum >= ACE_NSIG) return 0; // This will cause problems... else if (ACE_Sig_Handlers_Set::sig_handlers_[signum] == 0) - ACE_NEW_RETURN (ACE_Sig_Handlers_Set::sig_handlers_[signum], ACE_SIG_HANDLERS_SET, 0); - + ACE_NEW_RETURN (ACE_Sig_Handlers_Set::sig_handlers_[signum], + ACE_SIG_HANDLERS_SET, + 0); return ACE_Sig_Handlers_Set::sig_handlers_[signum]; } @@ -527,8 +528,10 @@ ACE_Sig_Handlers::register_handler (int signum, // Create a new 3rd party disposition, remembering its // preferred signal blocking etc...; - ACE_NEW_RETURN (extern_sh, ACE_Sig_Adapter (sa, ++ACE_Sig_Handlers::sigkey_), -1); - + ACE_NEW_RETURN (extern_sh, + ACE_Sig_Adapter (sa, + ++ACE_Sig_Handlers::sigkey_), + -1); // Add the external signal handler to the set of handlers // for this signal. if (ACE_Sig_Handlers_Set::instance (signum)->insert (extern_sh) == -1) @@ -538,8 +541,10 @@ ACE_Sig_Handlers::register_handler (int signum, } } // Add our new handler at this point. - ACE_NEW_RETURN (ace_sig_adapter, ACE_Sig_Adapter (new_sh, ++ACE_Sig_Handlers::sigkey_), -1); - + ACE_NEW_RETURN (ace_sig_adapter, + ACE_Sig_Adapter (new_sh, + ++ACE_Sig_Handlers::sigkey_), + -1); // Add the ACE signal handler to the set of handlers for this // signal (make sure it goes before the external one if there is // one of these). @@ -750,7 +755,10 @@ ACE_Sig_Handlers::handler (int signum, ACE_Event_Handler *new_sh) // ACE_Unbounded_Set...). ACE_Sig_Adapter *temp; - ACE_NEW_RETURN (temp, ACE_Sig_Adapter (new_sh, ++ACE_Sig_Handlers::sigkey_), 0); + ACE_NEW_RETURN (temp, + ACE_Sig_Adapter (new_sh, + ++ACE_Sig_Handlers::sigkey_), + 0); handler_set->insert (temp); return *eh; } diff --git a/ace/Singleton.cpp b/ace/Singleton.cpp index 3ebca15eed5..81c64546af6 100644 --- a/ace/Singleton.cpp +++ b/ace/Singleton.cpp @@ -68,8 +68,9 @@ ACE_Singleton<TYPE, ACE_LOCK>::instance (void) // ACE_Object_Manager: we'll have to leak this instance. #endif /* ACE_MT_SAFE */ - ACE_NEW_RETURN (singleton, (ACE_Singleton<TYPE, ACE_LOCK>), 0); - + ACE_NEW_RETURN (singleton, + (ACE_Singleton<TYPE, + ACE_LOCK>), 0); #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) } else @@ -86,8 +87,9 @@ ACE_Singleton<TYPE, ACE_LOCK>::instance (void) if (singleton == 0) { - ACE_NEW_RETURN (singleton, (ACE_Singleton<TYPE, ACE_LOCK>), 0); - + ACE_NEW_RETURN (singleton, + (ACE_Singleton<TYPE, + ACE_LOCK>), 0); // Register for destruction with ACE_Object_Manager. ACE_Object_Manager::at_exit (singleton); } @@ -159,9 +161,9 @@ ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance (void) // don't register for destruction with the // ACE_Object_Manager: we'll have to leak this instance. #endif /* ACE_MT_SAFE */ - - ACE_NEW_RETURN (singleton, (ACE_TSS_Singleton<TYPE, ACE_LOCK>), 0); - + ACE_NEW_RETURN (singleton, + (ACE_TSS_Singleton<TYPE, ACE_LOCK>), + 0); #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) } else @@ -177,9 +179,9 @@ ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance (void) if (singleton == 0) { - ACE_NEW_RETURN (singleton, (ACE_TSS_Singleton<TYPE, ACE_LOCK>), + ACE_NEW_RETURN (singleton, + (ACE_TSS_Singleton<TYPE, ACE_LOCK>), 0); - // Register for destruction with ACE_Object_Manager. ACE_Object_Manager::at_exit (singleton); } diff --git a/ace/Strategies_T.cpp b/ace/Strategies_T.cpp index 55898c2ecc8..47a832cbb99 100644 --- a/ace/Strategies_T.cpp +++ b/ace/Strategies_T.cpp @@ -77,18 +77,17 @@ ACE_DLL_Strategy<SVC_HANDLER>::make_svc_handler (SVC_HANDLER *&sh) // Create an ACE_Service_Type containing the SVC_Handler and // insert into this->svc_rep_; - ACE_Service_Type_Impl *stp = - new ACE_Service_Object_Type (svc_handler, this->svc_name_); - - if (stp == 0) - { - errno = ENOMEM; - return -1; - } + ACE_Service_Type_Impl *stp; + ACE_NEW_RETURN (stp, + ACE_Service_Object_Type (svc_handler, + this->svc_name_), + -1); ACE_Service_Type *srp = - new ACE_Service_Type (this->svc_name_, stp, handle, 1); - + new ACE_Service_Type (this->svc_name_, + stp, + handle, + 1); if (srp == 0) { delete stp; diff --git a/ace/Stream.cpp b/ace/Stream.cpp index f8af657ff6d..efdffd1cbb0 100644 --- a/ace/Stream.cpp +++ b/ace/Stream.cpp @@ -231,26 +231,10 @@ ACE_Stream<ACE_SYNCH_USE>::push_module (ACE_Module<ACE_SYNCH_USE> *new_top, return 0; } -#if 0 template <ACE_SYNCH_DECL> int ACE_Stream<ACE_SYNCH_USE>::open (void *a, - ACE_Multiplexor &muxer, - ACE_Module<ACE_SYNCH_USE> *head) -{ - ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::open"); - this->stream_head_ = head == 0 - ? new ACE_Module<ACE_SYNCH_USE> ("ACE_Stream_Head", - new ACE_Stream_Head<ACE_SYNCH_USE>, - new ACE_Stream_Head<ACE_SYNCH_USE>, a) : head; - this->stream_tail_ = 0; - return muxer.link_from_below (this->stream_head_); -} -#endif - -template <ACE_SYNCH_DECL> int -ACE_Stream<ACE_SYNCH_USE>::open (void *a, - ACE_Module<ACE_SYNCH_USE> *head, - ACE_Module<ACE_SYNCH_USE> *tail) + ACE_Module<ACE_SYNCH_USE> *head, + ACE_Module<ACE_SYNCH_USE> *tail) { ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::open"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1); @@ -355,11 +339,12 @@ ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd, ACE_Message_Block *db; // Try to create a data block that contains the user-supplied data. - ACE_NEW_RETURN (db, ACE_Message_Block (sizeof (int), - ACE_Message_Block::MB_IOCTL, - 0, - (char *) a), -1); - + ACE_NEW_RETURN (db, + ACE_Message_Block (sizeof (int), + ACE_Message_Block::MB_IOCTL, + 0, + (char *) a), + -1); // Try to create a control block <cb> that contains the control // field and a pointer to the data block <db> in <cb>'s continuation // field. diff --git a/ace/Synch_T.cpp b/ace/Synch_T.cpp index 5946d443182..2c75b420838 100644 --- a/ace/Synch_T.cpp +++ b/ace/Synch_T.cpp @@ -32,7 +32,8 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void) : lock_ (0), delete_lock_ (1) { - ACE_NEW (this->lock_, ACE_LOCKING_MECHANISM); + ACE_NEW (this->lock_, + ACE_LOCKING_MECHANISM); } template <class ACE_LOCKING_MECHANISM> @@ -725,7 +726,9 @@ ACE_TSS_Guard<ACE_LOCK>::ACE_TSS_Guard (ACE_LOCK &lock, int block) this->init_key (); ACE_Guard<ACE_LOCK> *guard; - ACE_NEW (guard, ACE_Guard<ACE_LOCK> (lock, block)); + ACE_NEW (guard, + ACE_Guard<ACE_LOCK> (lock, + block)); #if defined (ACE_HAS_THR_C_DEST) ACE_TSS_Adapter *tss_adapter; @@ -788,7 +791,9 @@ ACE_TSS_Write_Guard<ACE_LOCK>::ACE_TSS_Write_Guard (ACE_LOCK &lock, this->init_key (); ACE_Guard<ACE_LOCK> *guard; - ACE_NEW (guard, ACE_Write_Guard<ACE_LOCK> (lock, block)); + ACE_NEW (guard, + ACE_Write_Guard<ACE_LOCK> (lock, + block)); #if defined (ACE_HAS_THR_C_DEST) ACE_TSS_Adapter *tss_adapter; @@ -873,8 +878,9 @@ ACE_TSS_Read_Guard<ACE_LOCK>::ACE_TSS_Read_Guard (ACE_LOCK &lock, int block) this->init_key (); ACE_Guard<ACE_LOCK> *guard; - ACE_NEW (guard, ACE_Read_Guard<ACE_LOCK> (lock, block)); - + ACE_NEW (guard, + ACE_Read_Guard<ACE_LOCK> (lock, + block)); #if defined (ACE_HAS_THR_C_DEST) ACE_TSS_Adapter *tss_adapter; ACE_NEW (tss_adapter, diff --git a/ace/System_Time.cpp b/ace/System_Time.cpp index 0ad522daca9..833086650cd 100644 --- a/ace/System_Time.cpp +++ b/ace/System_Time.cpp @@ -10,7 +10,8 @@ ACE_System_Time::ACE_System_Time (LPCTSTR poolname) : delta_time_ (0) { ACE_TRACE ("ACE_System_Time::ACE_System_Time"); - ACE_NEW (this->shmem_, ALLOCATOR (poolname)); + ACE_NEW (this->shmem_, + ALLOCATOR (poolname)); } ACE_System_Time::~ACE_System_Time (void) diff --git a/ace/TLI.cpp b/ace/TLI.cpp index f6d0ec697cc..39b17f2a58d 100644 --- a/ace/TLI.cpp +++ b/ace/TLI.cpp @@ -27,7 +27,8 @@ ACE_TLI::ACE_TLI (void) // (jph@ccrl.nj.nec.com) for the help. this->so_opt_req.opt.maxlen = sizeof (opthdr) + sizeof (long); - ACE_NEW (this->so_opt_req.opt.buf, char[this->so_opt_req.opt.maxlen]); + ACE_NEW (this->so_opt_req.opt.buf, + char[this->so_opt_req.opt.maxlen]); this->so_opt_ret.opt.maxlen = sizeof (opthdr) + sizeof (long); this->so_opt_ret.opt.buf = new char[this->so_opt_ret.opt.maxlen]; diff --git a/ace/Task_T.cpp b/ace/Task_T.cpp index b6425369a05..17c4612e67e 100644 --- a/ace/Task_T.cpp +++ b/ace/Task_T.cpp @@ -56,7 +56,8 @@ ACE_Task<ACE_SYNCH_USE>::ACE_Task (ACE_Thread_Manager *thr_man, if (mq == 0) { - ACE_NEW (mq, ACE_Message_Queue<ACE_SYNCH_USE>); + ACE_NEW (mq, + ACE_Message_Queue<ACE_SYNCH_USE>); this->delete_msg_queue_ = 1; } diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp index b4210955aa6..560cf96f404 100644 --- a/ace/Thread_Manager.cpp +++ b/ace/Thread_Manager.cpp @@ -203,7 +203,11 @@ ACE_Thread_Descriptor::at_exit (void *object, else { ACE_At_Thread_Exit* cleanup; - ACE_NEW_RETURN (cleanup, ACE_At_Thread_Exit_Func (object,cleanup_hook,param), -1); + ACE_NEW_RETURN (cleanup, + ACE_At_Thread_Exit_Func (object, + cleanup_hook, + param), + -1); this->at_push (cleanup); } #endif /* ACE_USE_ONE_SHOT_AT_THREAD_EXIT */ @@ -240,7 +244,8 @@ ACE_Thread_Descriptor::ACE_Thread_Descriptor (void) this->cleanup_info_.object_ = 0; this->cleanup_info_.param_ = 0; #endif /* ACE_USE_ONE_SHOT_AT_THREAD_EXIT */ - ACE_NEW (this->sync_, ACE_DEFAULT_THREAD_MANAGER_LOCK); + ACE_NEW (this->sync_, + ACE_DEFAULT_THREAD_MANAGER_LOCK); } void @@ -334,7 +339,9 @@ ACE_Thread_Manager::instance (void) if (ACE_Thread_Manager::thr_mgr_ == 0) { - ACE_NEW_RETURN (ACE_Thread_Manager::thr_mgr_, ACE_Thread_Manager, 0); + ACE_NEW_RETURN (ACE_Thread_Manager::thr_mgr_, + ACE_Thread_Manager, + 0); ACE_Thread_Manager::delete_thr_mgr_ = 1; } } @@ -443,13 +450,19 @@ ACE_Thread_Exit::instance (void) if (instance_ == 0) { - ACE_NEW_RETURN (instance_, ACE_TSS_TYPE (ACE_Thread_Exit), 0); + ACE_NEW_RETURN (instance_, + ACE_TSS_TYPE (ACE_Thread_Exit), + 0); // Register for destruction with ACE_Object_Manager. #if defined ACE_HAS_SIG_C_FUNC - ACE_Object_Manager::at_exit (instance_, ACE_Thread_Exit_cleanup, 0); + ACE_Object_Manager::at_exit (instance_, + ACE_Thread_Exit_cleanup, + 0); #else - ACE_Object_Manager::at_exit (instance_, ACE_Thread_Exit::cleanup, 0); + ACE_Object_Manager::at_exit (instance_, + ACE_Thread_Exit::cleanup, + 0); #endif /* ACE_HAS_SIG_C_FUNC */ } } @@ -660,7 +673,9 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func, if (t_id == 0) { char *thr_id; - ACE_NEW_RETURN (thr_id, char[16], -1); + ACE_NEW_RETURN (thr_id, + char[16], + -1); // Mark the thread ID to show that the ACE_Thread_Manager // allocated it. thr_id[0] = ACE_THR_ID_ALLOCATED; @@ -842,7 +857,9 @@ ACE_Thread_Manager::append_thr (ACE_thread_t t_id, ACE_Thread_Descriptor *thr_desc; if (td == 0) - ACE_NEW_RETURN (thr_desc, ACE_Thread_Descriptor, -1); + ACE_NEW_RETURN (thr_desc, + ACE_Thread_Descriptor, + -1); else thr_desc = td; diff --git a/ace/Timer_Hash_T.cpp b/ace/Timer_Hash_T.cpp index d6d8e2b3921..66a4f26031d 100644 --- a/ace/Timer_Hash_T.cpp +++ b/ace/Timer_Hash_T.cpp @@ -56,14 +56,16 @@ ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::timeout (ACE_Timer_Queue_T<ACE_E { ACE_UNUSED_ARG (timer_queue); - Hash_Token *h = (Hash_Token *)arg; - - int ret = this->timer_hash_->upcall_functor ().timeout (*this->timer_hash_, - handler, - h->act_, - cur_time); + Hash_Token *h = ACE_reinterpret_cast (Hash_Token *, + ACE_const_cast (void *, + arg)); + int result = + this->timer_hash_->upcall_functor ().timeout (*this->timer_hash_, + handler, + h->act_, + cur_time); delete h; - return ret; + return result; } @@ -85,20 +87,22 @@ ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::cancellation (ACE_Timer_Queue_T< template <class TYPE, class FUNCTOR, class ACE_LOCK> int ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::deletion (ACE_Timer_Queue_T<ACE_Event_Handler *, - ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, - ACE_Null_Mutex> &timer_queue, - ACE_Event_Handler *handler, - const void *arg) + ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, + ACE_Null_Mutex> &timer_queue, + ACE_Event_Handler *handler, + const void *arg) { ACE_UNUSED_ARG (timer_queue); - Hash_Token *h = (Hash_Token *)arg; - - int ret = this->timer_hash_->upcall_functor ().deletion (*this->timer_hash_, - handler, - h->act_); + Hash_Token *h = ACE_reinterpret_cast (Hash_Token *, + ACE_const_cast (void *, + arg)); + int result = + this->timer_hash_->upcall_functor ().deletion (*this->timer_hash_, + handler, + h->act_); delete h; - return ret; + return result; } @@ -107,7 +111,7 @@ template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &hash) : timer_hash_ (hash) { - this->first(); + this->first (); // Nothing } @@ -133,7 +137,6 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::first (void) this->iter_ = 0; } - // Positions the iterator at the next node in the bucket or goes to the next // bucket @@ -164,7 +167,6 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::next (void) this->iter_->next (); } - // Returns true when we are at the end (when bucket_item_ == 0) template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int @@ -173,7 +175,6 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::isdone (void) return this->iter_ == 0; } - // Returns the node at the current position in the sequence template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> * @@ -211,11 +212,14 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (size_t tabl for (size_t i = 0; i < table_size; i++) { - this->table_[i] = new BUCKET (&this->table_functor_, this->free_list_); + ACE_NEW (this->table_[i], + BUCKET (&this->table_functor_, + this->free_list_)); this->table_[i]->gettimeofday (ACE_OS::gettimeofday); } - iterator_ = new HASH_ITERATOR(*this); + ACE_NEW (iterator_, + HASH_ITERATOR (*this)); } @@ -235,11 +239,14 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (FUNCTOR *up for (size_t i = 0; i < this->table_size_; i++) { - this->table_[i] = new BUCKET (&this->table_functor_, this->free_list_); + ACE_NEW (this->table_[i], + BUCKET (&this->table_functor_, + this->free_list_)); this->table_[i]->gettimeofday (ACE_OS::gettimeofday); } - iterator_ = new HASH_ITERATOR(*this); + ACE_NEW (iterator_, + HASH_ITERATOR (*this)); } @@ -268,7 +275,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::is_empty (void) const return this->table_[this->earliest_position_]->is_empty (); } - // Returns earliest time in a non-empty bucket template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> const ACE_Time_Value & @@ -292,7 +298,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::dump (void) const ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); } - // Reschedule a periodic timer. This function must be called with the // mutex lock held. @@ -301,9 +306,12 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (ACE_Timer_Node_T< { ACE_TRACE ("ACE_Timer_Hash_T::reschedule"); - size_t position = expired->get_timer_value ().usec () % this->table_size_; + size_t position = + expired->get_timer_value ().usec () % this->table_size_; - Hash_Token *h = (Hash_Token *)expired->get_act (); + Hash_Token *h = ACE_reinterpret_cast (Hash_Token *, + ACE_const_cast (void *, + expired->get_act ())); h->orig_id_ = this->table_[position]->schedule (expired->get_type (), h, @@ -311,11 +319,11 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (ACE_Timer_Node_T< expired->get_interval ()); if (this->table_[this->earliest_position_]->is_empty () - || this->table_[position]->earliest_time () < this->table_[this->earliest_position_]->earliest_time ()) + || this->table_[position]->earliest_time () + < this->table_[this->earliest_position_]->earliest_time ()) this->earliest_position_ = position; } - // Insert a new handler that expires at time future_time; if interval // is > 0, the handler will be reinvoked periodically. @@ -330,7 +338,13 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule (const TYPE &type, size_t position = future_time.usec () % this->table_size_; - Hash_Token *h = new Hash_Token (act, position, 0); + Hash_Token *h; + + ACE_NEW_RETURN (h, + Hash_Token (act, + position, + 0), + -1); h->orig_id_ = this->table_[position]->schedule (type, h, @@ -343,7 +357,8 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule (const TYPE &type, ++this->size_; - return (long) h; + return ACE_reinterpret_cast (long, + h); } // Locate and remove the single <ACE_Event_Handler> with a value of @@ -351,20 +366,23 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule (const TYPE &type, template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (long timer_id, - const void **act, - int dont_call) + const void **act, + int dont_call) { ACE_TRACE ("ACE_Timer_Hash_T::cancel"); ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1)); // Make sure we are getting a valid <timer_id>, not an error - // returned by schedule () + // returned by <schedule>. if (timer_id == -1) return 0; - Hash_Token *h = (Hash_Token *)timer_id; + Hash_Token *h = ACE_reinterpret_cast (Hash_Token *, + timer_id); - int ret = this->table_[h->pos_]->cancel (h->orig_id_, act, dont_call); + int result = this->table_[h->pos_]->cancel (h->orig_id_, + act, + dont_call); if (h->pos_ == this->earliest_position_) this->find_new_earliest (); @@ -376,10 +394,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (long timer_id, --this->size_; - return ret; + return result; } - // Locate and remove all values of <type> from the timer queue. template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int @@ -392,18 +409,29 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type, size_t i; // loop variable - Hash_Token **timer_ids = new Hash_Token *[this->size_]; + Hash_Token **timer_ids; + + ACE_NEW_RETURN (timer_ids, + Hash_Token *[this->size_], + -1); size_t pos = 0; - for (i = 0; i < this->table_size_; i++) + for (i = 0; + i < this->table_size_; + i++) { - ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex> &iter = this->table_[i]->iter (); - for (iter.first (); !iter.isdone (); iter.next ()) + ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex> &iter = + this->table_[i]->iter (); + + for (iter.first (); + !iter.isdone (); + iter.next ()) if (iter.item ()->get_type () == type) timer_ids[pos++] = (Hash_Token *)iter.item ()->get_act (); } - ACE_ASSERT (pos <= this->size_); + if (pos <= this->size_) + return -1; for (i = 0; i < pos; i++) { @@ -417,14 +445,13 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type, delete [] timer_ids; if (dont_call == 0) - this->upcall_functor ().cancellation (*this, type); + this->upcall_functor ().cancellation (*this, type); this->find_new_earliest (); return pos; } - // Removes the earliest node and finds the new earliest position template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> * @@ -433,7 +460,8 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::remove_first (void) if (this->is_empty ()) return 0; - ACE_Timer_Node_T<TYPE> *temp = this->table_[this->earliest_position_]->remove_first (); + ACE_Timer_Node_T<TYPE> *temp = + this->table_[this->earliest_position_]->remove_first (); this->find_new_earliest (); @@ -449,13 +477,12 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::find_new_earliest (void) { for (size_t i = 0; i < this->table_size_; i++) if (!this->table_[i]->is_empty ()) - if (this->table_[this->earliest_position_]->is_empty() + if (this->table_[this->earliest_position_]->is_empty () || this->earliest_time () == ACE_Time_Value::zero || this->table_[i]->earliest_time () <= this->earliest_time ()) this->earliest_position_ = i; } - // Returns the earliest node without removing it template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> ACE_Timer_Node_T<TYPE> * @@ -469,7 +496,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::get_first (void) return this->table_[this->earliest_position_]->get_first (); } - // Dummy version of expire to get rid of warnings in Sun CC 4.2 template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int @@ -478,7 +504,6 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire () return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire(); } - // Specialized expire for Timer Hash template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int @@ -493,10 +518,12 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire (const ACE_Time_Value // Go through the table and expire anything that can be expired - for (size_t i = 0; i < this->table_size_; i++) + for (size_t i = 0; + i < this->table_size_; + i++) { - while (!this->table_[i]->is_empty () && - this->table_[i]->earliest_time () <= cur_time) + while (!this->table_[i]->is_empty () + && this->table_[i]->earliest_time () <= cur_time) { expired = this->table_[i]->remove_first (); --this->size_; @@ -510,18 +537,23 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::expire (const ACE_Time_Value // Make sure that we skip past values that have already // "expired". do - expired->set_timer_value (expired->get_timer_value () + expired->get_interval ()); + expired->set_timer_value (expired->get_timer_value () + + expired->get_interval ()); while (expired->get_timer_value () <= cur_time); - // Since this is an interval timer, we need to reschedule - // it. + // Since this is an interval timer, we need to + // reschedule it. this->reschedule (expired); reclaim = 0; } // call the functor - Hash_Token *h = (Hash_Token *)act; - this->upcall (type, h->act_, cur_time); + Hash_Token *h = ACE_reinterpret_cast (Hash_Token *, + ACE_const_cast (void *, + act)); + this->upcall (type, + h->act_, + cur_time); if (reclaim) { diff --git a/ace/Timer_Heap_T.cpp b/ace/Timer_Heap_T.cpp index b67e0bc5f6f..0389707a459 100644 --- a/ace/Timer_Heap_T.cpp +++ b/ace/Timer_Heap_T.cpp @@ -89,7 +89,7 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (size_t size, // Create the heap array. ACE_NEW (this->heap_, - (ACE_Timer_Node_T<TYPE> *[size])); + ACE_Timer_Node_T<TYPE> *[size]); // Create the parallel ACE_NEW (this->timer_ids_, @@ -104,7 +104,7 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (size_t size, if (preallocate) { ACE_NEW (this->preallocated_nodes_, - (ACE_Timer_Node_T<TYPE>[size])); + ACE_Timer_Node_T<TYPE>[size]); // Add allocated array to set of such arrays for deletion // on cleanup. @@ -140,10 +140,10 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (FUNCTOR *upcall_fun // Create the heap array. #if defined (__IBMCPP__) && (__IBMCPP__ >= 400) ACE_NEW (this->heap_, - (ACE_Timer_Node_T<TYPE> *[ACE_DEFAULT_TIMERS])); + ACE_Timer_Node_T<TYPE> *[ACE_DEFAULT_TIMERS]); #else ACE_NEW (this->heap_, - (ACE_Timer_Node_T<TYPE> *[this->max_size_])); + ACE_Timer_Node_T<TYPE> *[this->max_size_]); #endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */ // Create the parallel array. @@ -410,14 +410,14 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void) #if defined (__IBMCPP__) && (__IBMCPP__ >= 400) ACE_NEW (new_heap, - (ACE_Timer_Node_T<TYPE> *[1024])); + ACE_Timer_Node_T<TYPE> *[1024]); #else ACE_NEW (new_heap, - (ACE_Timer_Node_T<TYPE> *[new_size])); + ACE_Timer_Node_T<TYPE> *[new_size]); #endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */ ACE_NEW (new_heap, - (ACE_Timer_Node_T<TYPE> *[new_size])); + ACE_Timer_Node_T<TYPE> *[new_size]); ACE_OS::memcpy (new_heap, this->heap_, max_size_ * sizeof *new_heap); @@ -449,10 +449,10 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void) // to existing list. #if defined (__IBMCPP__) && (__IBMCPP__ >= 400) ACE_NEW (this->preallocated_nodes_, - (ACE_Timer_Node_T<TYPE>[88])); + ACE_Timer_Node_T<TYPE>[88]); #else ACE_NEW (this->preallocated_nodes_, - (ACE_Timer_Node_T<TYPE>[this->max_size_])); + ACE_Timer_Node_T<TYPE>[this->max_size_]); #endif /* defined (__IBMCPP__) && (__IBMCPP__ >= 400) */ // Add it to the set for later deletion @@ -517,7 +517,7 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::alloc_node (void) // Only allocate a node if we are *not* using the preallocated heap. if (this->preallocated_nodes_ == 0) ACE_NEW_RETURN (temp, - (ACE_Timer_Node_T<TYPE>), + ACE_Timer_Node_T<TYPE>, 0); else { diff --git a/ace/Timer_List_T.cpp b/ace/Timer_List_T.cpp index 73aba79ea01..2b9176d9589 100644 --- a/ace/Timer_List_T.cpp +++ b/ace/Timer_List_T.cpp @@ -86,7 +86,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_List_T (FUNCTOR *upcall_fun this->head_->set_next (this->head_); this->head_->set_prev (this->head_); - iterator_ = new LIST_ITERATOR(*this); + ACE_NEW (iterator_, + LIST_ITERATOR (*this)); } @@ -211,7 +212,6 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type, return (long) temp; } - // Locate and remove the single <ACE_Event_Handler> with a value of // <timer_id> from the timer queue. diff --git a/ace/Timer_Wheel_T.cpp b/ace/Timer_Wheel_T.cpp index c654cd7d616..ff1557b2660 100644 --- a/ace/Timer_Wheel_T.cpp +++ b/ace/Timer_Wheel_T.cpp @@ -40,10 +40,11 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void) this->pos_++) { // Skip over empty entries - if (this->timer_wheel_.wheel_[this->pos_]->get_next () != - this->timer_wheel_.wheel_[this->pos_]) + if (this->timer_wheel_.wheel_[this->pos_]->get_next () + != this->timer_wheel_.wheel_[this->pos_]) { - this->list_item_ = this->timer_wheel_.wheel_[this->pos_]->get_next (); + this->list_item_ = + this->timer_wheel_.wheel_[this->pos_]->get_next (); return; } } @@ -52,7 +53,6 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void) this->list_item_ = 0; } - // Positions the iterator at the next node in list or goes to the next // list @@ -62,18 +62,22 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void) if (this->isdone ()) return; - this->list_item_ = this->list_item_->get_next (); + this->list_item_ = + this->list_item_->get_next (); // If there is no more in the current list, go to the next if (this->list_item_ == this->timer_wheel_.wheel_[this->pos_]) { - for (this->pos_++; this->pos_ < this->timer_wheel_.wheel_size_; this->pos_++) + for (this->pos_++; + this->pos_ < this->timer_wheel_.wheel_size_; + this->pos_++) { // Check for an empty entry - if (this->timer_wheel_.wheel_[this->pos_]->get_next () != - this->timer_wheel_.wheel_[this->pos_]) + if (this->timer_wheel_.wheel_[this->pos_]->get_next () + != this->timer_wheel_.wheel_[this->pos_]) { - this->list_item_ = this->timer_wheel_.wheel_[this->pos_]->get_next (); + this->list_item_ = + this->timer_wheel_.wheel_[this->pos_]->get_next (); return; } } @@ -82,7 +86,6 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void) } } - // Returns true when we are at the end (when list_item_ == 0) template <class TYPE, class FUNCTOR, class ACE_LOCK> int @@ -91,7 +94,6 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) return this->list_item_ == 0; } - // Returns the node at the current position in the sequence template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> * @@ -103,9 +105,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void) return this->list_item_; } - -// Constructor that sets up the timing wheel and also may preallocate some -// nodes on the free list +// Constructor that sets up the timing wheel and also may preallocate +// some nodes on the free list template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (size_t wheelsize, @@ -124,13 +125,14 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (size_t wheelsize, this->gettimeofday (ACE_OS::gettimeofday); // Create the timing wheel - ACE_NEW (this->wheel_, (ACE_Timer_Node_T<TYPE> *[wheelsize])); - + ACE_NEW (this->wheel_, + ACE_Timer_Node_T<TYPE> *[wheelsize]); // Create the dummy nodes for (i = 0; i < wheelsize; i++) { - ACE_Timer_Node_T<TYPE> *tempnode = this->alloc_node (); + ACE_Timer_Node_T<TYPE> *tempnode = + this->alloc_node (); tempnode->set_next (tempnode); tempnode->set_prev (tempnode); this->wheel_[i] = tempnode; @@ -139,12 +141,13 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (size_t wheelsize, // Do the preallocation this->free_list_->resize (prealloc); - iterator_ = new WHEEL_ITERATOR(*this); + ACE_NEW (iterator_, + WHEEL_ITERATOR (*this)); } template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (FUNCTOR *upcall_functor, - ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist) + ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist) : ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK> (upcall_functor, freelist), wheel_size_ (ACE_DEFAULT_TIMER_WHEEL_SIZE), resolution_ (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION), @@ -156,7 +159,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (FUNCTOR *upcall_f this->gettimeofday (ACE_OS::gettimeofday); // Create the timing wheel - ACE_NEW (this->wheel_, (ACE_Timer_Node_T<TYPE> *[this->wheel_size_])); + ACE_NEW (this->wheel_, + ACE_Timer_Node_T<TYPE> *[this->wheel_size_]); // Create the dummy nodes for (i = 0; i < this->wheel_size_; i++) @@ -167,7 +171,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T (FUNCTOR *upcall_f this->wheel_[i] = tempnode; } - iterator_ = new WHEEL_ITERATOR(*this); + ACE_NEW (iterator_, + WHEEL_ITERATOR (*this)); } // Destructor just cleans up its memory @@ -179,15 +184,20 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Wheel_T (void) delete iterator_; - for (size_t i = 0; i < this->wheel_size_; i++) + for (size_t i = 0; + i < this->wheel_size_; + i++) { // delete nodes until only the dummy node is left while (this->wheel_[i]->get_next () != this->wheel_[i]) { - ACE_Timer_Node_T<TYPE> *next = this->wheel_[i]->get_next (); + ACE_Timer_Node_T<TYPE> *next = + this->wheel_[i]->get_next (); this->wheel_[i]->set_next (next->get_next ()); next->get_next ()->set_prev (this->wheel_[i]); - this->upcall_functor ().deletion (*this, next->get_type (), next->get_act ()); + this->upcall_functor ().deletion (*this, + next->get_type (), + next->get_act ()); this->free_node (next); } @@ -199,7 +209,6 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Wheel_T (void) delete [] this->wheel_; } - // Checks to see if <earliest_pos> points to a empty list (then it is empty) template <class TYPE, class FUNCTOR, class ACE_LOCK> int @@ -210,7 +219,6 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const return this->wheel_[this->earliest_pos_]->get_next () == this->wheel_[this->earliest_pos_]; } - // Returns the first (earliest) node in the <wheel_>'s <earliest_pos_> list template <class TYPE, class FUNCTOR, class ACE_LOCK> const ACE_Time_Value & @@ -224,8 +232,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const return this->wheel_[this->earliest_pos_]->get_next ()->get_timer_value (); } -// Create the node and pass it to reschedule. Also check to see if the -// <earliest_pos> should be changed. +// Create the node and pass it to reschedule. Also check to see if +// the <earliest_pos> should be changed. template <class TYPE, class FUNCTOR, class ACE_LOCK> long ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type, @@ -262,13 +270,12 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type, return -1; } - // Goes through every list in the wheel and if it finds a node with <type> // then it removes the node and continues on looking for other nodes template <class TYPE, class FUNCTOR, class ACE_LOCK> int ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type, - int dont_call_handle_close) + int dont_call_handle_close) { ACE_TRACE ("ACE_Timer_Wheel_T::cancel"); ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1)); @@ -299,15 +306,14 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type, this->free_node (tempnode); } else - { - curr = curr->get_next (); - } + curr = curr->get_next (); } } // Look for a new earliest time - ACE_Time_Value earliest_time; // defaults to zero + // Defaults to zero. + ACE_Time_Value earliest_time; // Check every entry in the table for (i = 0; i < this->wheel_size_; i++) @@ -319,36 +325,37 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type, if (earliest_time == ACE_Time_Value::zero || this->wheel_[i]->get_timer_value () < earliest_time) { - earliest_time = this->wheel_[i]->get_next ()->get_timer_value (); + earliest_time = + this->wheel_[i]->get_next ()->get_timer_value (); this->earliest_pos_ = i; } } } if (dont_call_handle_close == 0) - this->upcall_functor ().cancellation (*this, type); - + this->upcall_functor ().cancellation (*this, + type); return number_of_cancellations; } - // Takes the <timer_id> and casts it to a pointer. Then it removes it // from its neighbors template <class TYPE, class FUNCTOR, class ACE_LOCK> int ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id, - const void **act, - int dont_call_handle_close) + const void **act, + int dont_call_handle_close) { ACE_TRACE ("ACE_Timer_Wheel_T::cancel"); ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1)); // Make sure we are getting a valid <timer_id>, not an error - // returned by schedule () + // returned by <schedule>. if (timer_id == -1) return 0; - ACE_Timer_Node_T<TYPE> *node = (ACE_Timer_Node_T<TYPE> *) timer_id; + ACE_Timer_Node_T<TYPE> *node = + (ACE_Timer_Node_T<TYPE> *) timer_id; // Check to see if the node looks like a true ACE_Timer_Node_T<TYPE> if (timer_id == node->get_timer_id ()) @@ -360,9 +367,10 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id, *act = node->get_act (); if (dont_call_handle_close == 0) - this->upcall_functor ().cancellation (*this, node->get_type ()); + this->upcall_functor ().cancellation (*this, + node->get_type ()); - // Find out what position it is in + // Find out what position it is in. size_t pos = (node->get_timer_value ().usec () / this->resolution_) % this->wheel_size_; this->free_node (node); @@ -383,7 +391,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id, if (earliest_time == ACE_Time_Value::zero || this->wheel_[i]->get_timer_value () < earliest_time) { - earliest_time = this->wheel_[i]->get_next ()->get_timer_value (); + earliest_time = + this->wheel_[i]->get_next ()->get_timer_value (); this->earliest_pos_ = i; } } @@ -397,7 +406,6 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id, return 0; } - // Dumps out some properties of this object template <class TYPE, class FUNCTOR, class ACE_LOCK> void @@ -424,7 +432,6 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); } - // Removes the earliest node and then find the new <earliest_pos_> template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> * @@ -433,7 +440,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void) ACE_TRACE ("ACE_Timer_Wheel_T::remove_first"); // Remove the item - ACE_Timer_Node_T<TYPE> *temp = this->wheel_[this->earliest_pos_]->get_next (); + ACE_Timer_Node_T<TYPE> *temp = + this->wheel_[this->earliest_pos_]->get_next (); temp->get_prev ()->set_next (temp->get_next ()); temp->get_next ()->set_prev (temp->get_prev ()); @@ -449,17 +457,16 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void) if (earliest_time == ACE_Time_Value::zero || this->wheel_[i]->get_timer_value () < earliest_time) { - earliest_time = this->wheel_[i]->get_next ()->get_timer_value (); + earliest_time = + this->wheel_[i]->get_next ()->get_timer_value (); this->earliest_pos_ = i; } } } - return temp; } - // Returns the earliest node without removing it template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Node_T<TYPE> * @@ -470,25 +477,26 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void) return this->wheel_[this->earliest_pos_]->get_next (); } - -// Takes an ACE_Timer_Node and inserts it into the correct position in the correct -// list +// Takes an ACE_Timer_Node and inserts it into the correct position in +// the correct list. template <class TYPE, class FUNCTOR, class ACE_LOCK> void ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE> *expired) { ACE_TRACE ("ACE_Timer_Wheel_T::reschedule"); - size_t pos = (expired->get_timer_value ().usec () / this->resolution_) % this->wheel_size_; + size_t pos = + (expired->get_timer_value ().usec () / this->resolution_) % this->wheel_size_; // See if we need to update the earliest time if (this->earliest_time () == ACE_Time_Value::zero || expired->get_timer_value () < this->earliest_time ()) this->earliest_pos_ = pos; - // Insert time into dummy node + // Insert time into dummy node. this->wheel_[pos]->set_timer_value (expired->get_timer_value ()); - ACE_Timer_Node_T<TYPE> *cursor = this->wheel_[pos]->get_next (); + ACE_Timer_Node_T<TYPE> *cursor = + this->wheel_[pos]->get_next (); // Find position to insert while (cursor->get_timer_value () < expired->get_timer_value ()) @@ -501,7 +509,6 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE> * expired->get_prev ()->set_next (expired); } - // Just return the iterator template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> & @@ -519,11 +526,11 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire () return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire (); } - -// Specialized expire which expires in total order. It is optimized by keeping -// track of the list with the earliest element and the next earliest list. It -// then goes through the earliest list until it can switch to the second list. -// it keeps going until it finishes with everything before the <cur_time> +// Specialized expire which expires in total order. It is optimized +// by keeping track of the list with the earliest element and the next +// earliest list. It then goes through the earliest list until it can +// switch to the second list. it keeps going until it finishes with +// everything before the <cur_time> template <class TYPE, class FUNCTOR, class ACE_LOCK> int ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_time) @@ -570,11 +577,14 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti } } - while (this->wheel_[earliest]->get_next () != this->wheel_[earliest] - && this->wheel_[earliest]->get_next ()->get_timer_value () <= next_earliest_time) + while (this->wheel_[earliest]->get_next () + != this->wheel_[earliest] + && this->wheel_[earliest]->get_next ()->get_timer_value () + <= next_earliest_time) { // Remove the first node in the earliest position - ACE_Timer_Node_T<TYPE> *expired = this->wheel_[earliest]->get_next (); + ACE_Timer_Node_T<TYPE> *expired = + this->wheel_[earliest]->get_next (); this->wheel_[earliest]->set_next (expired->get_next ()); expired->get_next ()->set_prev (this->wheel_[earliest]); @@ -591,22 +601,22 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti expired->set_timer_value (expired->get_timer_value () + expired->get_interval ()); while (expired->get_timer_value () <= cur_time); - // Since this is an interval timer, we need to reschedule - // it. + // Since this is an interval timer, we need to + // reschedule it. this->reschedule (expired); reclaim = 0; } - // call the functor + // Call the functor. this->upcall (type, act, cur_time); if (reclaim) - // Free up the node and the token + // Free up the node and the token. this->free_node (expired); ++number_of_timers_expired; - // Check to see if we are empty + // Check to see if we are empty. if (this->wheel_[earliest]->get_next () == this->wheel_[earliest]) break; } @@ -620,5 +630,4 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti return number_of_timers_expired; } - #endif /* ACE_TIMER_WHEEL_T_C */ diff --git a/ace/Token_Invariants.cpp b/ace/Token_Invariants.cpp index cf98e79c21d..19257569899 100644 --- a/ace/Token_Invariants.cpp +++ b/ace/Token_Invariants.cpp @@ -28,8 +28,9 @@ ACE_Token_Invariant_Manager::instance (void) if (instance_ == 0) { - ACE_NEW_RETURN (instance_, ACE_Token_Invariant_Manager, 0); - + ACE_NEW_RETURN (instance_, + ACE_Token_Invariant_Manager, + 0); // Register for destruction with ACE_Object_Manager. ACE_Object_Manager::at_exit (instance_); } @@ -160,8 +161,9 @@ ACE_Token_Invariant_Manager::get_mutex (const char *token_name, { ACE_Mutex_Invariants *new_invariant; - ACE_NEW_RETURN (new_invariant, ACE_Mutex_Invariants, -1); - + ACE_NEW_RETURN (new_invariant, + ACE_Mutex_Invariants, + -1); if (mutex_collection_.bind (name, new_invariant) == -1) { delete new_invariant; @@ -187,8 +189,9 @@ ACE_Token_Invariant_Manager::get_rwlock (const char *token_name, { ACE_RWLock_Invariants *new_invariant; - ACE_NEW_RETURN (new_invariant, ACE_RWLock_Invariants, -1); - + ACE_NEW_RETURN (new_invariant, + ACE_RWLock_Invariants, + -1); if (rwlock_collection_.bind (name, new_invariant) == -1) return -1; diff --git a/ace/Token_Manager.cpp b/ace/Token_Manager.cpp index d202bae2006..6d49239debd 100644 --- a/ace/Token_Manager.cpp +++ b/ace/Token_Manager.cpp @@ -54,8 +54,9 @@ ACE_Token_Manager::instance (void) if (token_manager_ == 0) { - ACE_NEW_RETURN (token_manager_, ACE_Token_Manager, 0); - + ACE_NEW_RETURN (token_manager_, + ACE_Token_Manager, + 0); // Register for destruction with ACE_Object_Manager. ACE_Object_Manager::at_exit (token_manager_); } diff --git a/ace/UPIPE_Stream.cpp b/ace/UPIPE_Stream.cpp index 7cc6f94adf0..494b7c179b3 100644 --- a/ace/UPIPE_Stream.cpp +++ b/ace/UPIPE_Stream.cpp @@ -99,8 +99,9 @@ ACE_UPIPE_Stream::send (const char *buffer, ACE_TRACE ("ACE_UPIPE_Stream::send"); ACE_Message_Block *mb_p; - ACE_NEW_RETURN (mb_p, ACE_Message_Block (n), -1); - + ACE_NEW_RETURN (mb_p, + ACE_Message_Block (n), + -1); mb_p->copy (buffer, n); return this->stream_.put (mb_p, timeout) == -1 ? -1 : (int) n; } diff --git a/ace/WFMO_Reactor.cpp b/ace/WFMO_Reactor.cpp index f30e0545bc5..8b541928394 100644 --- a/ace/WFMO_Reactor.cpp +++ b/ace/WFMO_Reactor.cpp @@ -1042,7 +1042,9 @@ ACE_WFMO_Reactor::open (size_t size, if (tq == 0) { - ACE_NEW_RETURN (this->timer_queue_, ACE_Timer_Heap, -1); + ACE_NEW_RETURN (this->timer_queue_, + ACE_Timer_Heap, + -1); this->delete_timer_queue_ = 1; } else @@ -1057,7 +1059,9 @@ ACE_WFMO_Reactor::open (size_t size, if (sh == 0) { - ACE_NEW_RETURN (this->signal_handler_, ACE_Sig_Handler, -1); + ACE_NEW_RETURN (this->signal_handler_, + ACE_Sig_Handler, + -1); this->delete_signal_handler_ = 1; } else diff --git a/tests/Future_Set_Test.cpp b/tests/Future_Set_Test.cpp index 91d917123aa..3e69cbd79db 100644 --- a/tests/Future_Set_Test.cpp +++ b/tests/Future_Set_Test.cpp @@ -588,9 +588,9 @@ main (int, ASYS_TCHAR *[]) fname.get (name); ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("(%t) result(%u) name %u\n"), + ASYS_TEXT ("(%t) result(%u) name %s\n"), count, - (u_int) name)); + name)); } if (fseta.is_empty ()) |