summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ACE-INSTALL.html2
-rw-r--r--ChangeLog429
-rw-r--r--ChangeLogs/ChangeLog-02a429
-rw-r--r--ChangeLogs/ChangeLog-03a429
4 files changed, 655 insertions, 634 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
index d40da6e45e2..e0c4d758444 100644
--- a/ACE-INSTALL.html
+++ b/ACE-INSTALL.html
@@ -281,7 +281,7 @@ make: *** [libACE.so] Error 8
HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on
Intel, Alpha, and PowerPC platforms. If you use a RedHat 5.x
distribution, it's best to use RedHat 5.1 or later. ACE works
- without any modifications on RedHat 5.1, 5.2, and 6.0, and on
+ without any modifications on RedHat 5.1 and later, and on
Debian 2.1 on both Intel and Alpha; use the
<code>include/makeinclude/platform_linux_lxpthreads.GNU</code>
and <code>ace/config-linux-lxpthreads.h</code> platform/config
diff --git a/ChangeLog b/ChangeLog
index beb8c37c1d0..70bf11a81c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,190 +1,197 @@
+Tue Jan 18 09:13:43 2000 David L. Levine <levine@cs.wustl.edu>
+
+ * ACE-INSTALL.html: ACE works just fine on RedHat 5.1 and
+ later, not just 5.1 through 6.1. Thanks to Raj Narayanaswamy
+ <rnarayanaswamy@hologic.com> for asking about this.
+
Mon Jan 17 18:03:17 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
- registered itself as an event handler with ACE_Reactor, but did
- not properly unregister itself when it closed. For error to be
- noticed, you must instantiate ACE_Process_Manager with an
- ACE_Reactor. ACE_Process_Manager should *not* be run as a
- singleton. It must be instantiated such that it will be
- destroyed *before* the ACE_Reactor is destroyed.
-
- When you call ACE_Process_Manager::spawn, the newly created
- process is added to the ACE_Process_Manager's process table and
- (under WIN32) the ACE_Process_Manager is registered as an event
- handler for the new process (ace/Process_Manager.cpp, line 523)
- using this call:
-
+ * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
+ registered itself as an event handler with ACE_Reactor, but did
+ not properly unregister itself when it closed. For error to be
+ noticed, you must instantiate ACE_Process_Manager with an
+ ACE_Reactor. ACE_Process_Manager should *not* be run as a
+ singleton. It must be instantiated such that it will be
+ destroyed *before* the ACE_Reactor is destroyed.
+
+ When you call ACE_Process_Manager::spawn, the newly created
+ process is added to the ACE_Process_Manager's process table and
+ (under WIN32) the ACE_Process_Manager is registered as an event
+ handler for the new process (ace/Process_Manager.cpp, line 523)
+ using this call:
+
r->register_handler (this, proc->gethandle ());
-
+
This will happen for every process spawned. Thus,
- ACE_Process_Manager will potentially be associated with more
- than one WIN32 process handle.
-
+ ACE_Process_Manager will potentially be associated with more
+ than one WIN32 process handle.
+
When the ACE_Process_Manager was destroyed, the dtor calls
- ACE_Process_Manager::close which (for WIN32) attempts to remove
- ACE_Process_Manager as an Event_Handler from the ACE_Reactor
- using the following code (ace/Process_Manager.cpp, line 256)
-
+ ACE_Process_Manager::close which (for WIN32) attempts to remove
+ ACE_Process_Manager as an Event_Handler from the ACE_Reactor
+ using the following code (ace/Process_Manager.cpp, line 256)
+
this->reactor ()->remove_handler (this, 0);
-
+
This version of ACE_Reactor::remove_handler is:
-
+
int ACE_Reactor::remove_handler
(
ACE_Event_Handler *event_handler,
ACE_Reactor_Mask mask
);
-
+
It calls event_handler->get_handle() to obtain the handle to
- which 'event_handler' is associated. The problem is that
- ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
- the ACE_Reactor never properly unregistered the
- ACE_Process_Manager. This is now fixed and should work correctly
- on Win32 and other platforms.
-
+ which 'event_handler' is associated. The problem is that
+ ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
+ the ACE_Reactor never properly unregistered the
+ ACE_Process_Manager. This is now fixed and should work correctly
+ on Win32 and other platforms.
+
Thanks to Greg Gallant <gcg@intercap.com> for tracking all this
- down and providing the fix.
-
- * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
- #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
- warnings on platforms that don't support setpgid(). Thanks to
- Craig Perras <cperras@watchguard.com> for reporting this.
-
- * ace/NT_Service: Reformatted this head to conform to the ACE
- programming guidelines. Also, replaced
-
- #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
-
+ down and providing the fix.
+
+ * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
+ #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
+ warnings on platforms that don't support setpgid(). Thanks to
+ Craig Perras <cperras@watchguard.com> for reporting this.
+
+ * ace/NT_Service: Reformatted this head to conform to the ACE
+ programming guidelines. Also, replaced
+
+ #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
+
with
-
+
#if defined (ACE_WIN32)
-
+
This change allows a single dll to be built that supports both
- NT and Win9x. The app can use GetVersionEx() to check whether
- the platform is NT or not dynamically, or it can just call the
- various service functions, which will return a function not
- supported error. Thanks to Craig Perras
- <cperras@watchguard.com> for reporting this.
-
- * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
- to shut down Tasks using either the "empty message" strategy or
- the "queue deactivation" strategy.
-
- * ace/Message_Queue.h: Updated the documentation of the enqueue*()
- and dequeue*() methods to clarify which errno values are set
- when the calls return -1.
-
- * examples/Threads/thread_pool.cpp: Updated this example to
- remove the use of the now-defunct "wait_for_threads_to_shutdown"
- feature of ACE_Task.
-
- * ace/Task_T: Removed the recent feature added on
-
- Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
+ NT and Win9x. The app can use GetVersionEx() to check whether
+ the platform is NT or not dynamically, or it can just call the
+ various service functions, which will return a function not
+ supported error. Thanks to Craig Perras
+ <cperras@watchguard.com> for reporting this.
+
+ * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
+ to shut down Tasks using either the "empty message" strategy or
+ the "queue deactivation" strategy.
+
+ * ace/Message_Queue.h: Updated the documentation of the enqueue*()
+ and dequeue*() methods to clarify which errno values are set
+ when the calls return -1.
+
+ * examples/Threads/thread_pool.cpp: Updated this example to
+ remove the use of the now-defunct "wait_for_threads_to_shutdown"
+ feature of ACE_Task.
+
+ * ace/Task_T: Removed the recent feature added on
+
+ Sat Jan 8 09:44:51 2000 Douglas C. Schmidt
+ <schmidt@tango.cs.wustl.edu>
+
that allowed to an ACE_Task's destructor to wait for threads in
- a task to exit. It turns out this is practically impossible to
- use correctly because of the way that destructors are destroyed
- from the "top down". However, it's trivial to get the same
- behavior by simply calling the Tasks's wait() method whenever
- you want to implement barrier synchronization on a Task's thread
- exits.
-
- * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
- various strategies to wait for threads to exit. Thanks to Mark
- C. Barnes <marcus@muse3d.com> for motivating this example.
+ a task to exit. It turns out this is practically impossible to
+ use correctly because of the way that destructors are destroyed
+ from the "top down". However, it's trivial to get the same
+ behavior by simply calling the Tasks's wait() method whenever
+ you want to implement barrier synchronization on a Task's thread
+ exits.
+
+ * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
+ various strategies to wait for threads to exit. Thanks to Mark
+ C. Barnes <marcus@muse3d.com> for motivating this example.
Mon Jan 17 14:20:17 2000 Nanbor Wang <nanbor@cs.wustl.edu>
- * ace/OS.h:
- * ace/OS.i: Changed the signature of isatty to (int) and added a
- (ACE_HANDLE) version for Win32.
+ * ace/OS.h:
+ * ace/OS.i: Changed the signature of isatty to (int) and added a
+ (ACE_HANDLE) version for Win32.
- * ace/Makefile:
- * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
- from int to ACE_HANDLE.
+ * ace/Makefile:
+ * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
+ from int to ACE_HANDLE.
- * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
+ * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
- * ace/OS.i (isatty): Removed WinCE specific section.
+ * ace/OS.i (isatty): Removed WinCE specific section.
Mon Jan 17 00:53:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
- ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
- ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
- used as priority values, which is defined as a long. This
- should solve a problem with the ACE_MAX()/ACE_MIN() templates on
- Linux with G++. Thanks to Bala for reporting this problem.
+ * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
+ ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
+ ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
+ used as priority values, which is defined as a long. This
+ should solve a problem with the ACE_MAX()/ACE_MIN() templates on
+ Linux with G++. Thanks to Bala for reporting this problem.
- * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
- instructs the logging strategy to "wipeout", rather than append
- to, an existing logfile. Thanks to David X. Callaway
- <david.x.callaway@intel.com> for reporting this.
+ * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
+ instructs the logging strategy to "wipeout", rather than append
+ to, an existing logfile. Thanks to David X. Callaway
+ <david.x.callaway@intel.com> for reporting this.
Sun Jan 16 21:32:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
- new $ACE_ROOT/Min_Max.h file, along with their template function
- definitions.
+ * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
+ new $ACE_ROOT/Min_Max.h file, along with their template function
+ definitions.
- * ace: Added a new file called Min_Max.h that uses templates, rather
- than macros, to implement the ACE_MIN and ACE_MAX macros. This
- is a "Good Thing" because the use of macros has undesirable
- side-effects due to the "call-by-name" semantics of macro
- paramter expansion... If for some reason your compiler can't
- handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
- config.h file. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for contributing this.
+ * ace: Added a new file called Min_Max.h that uses templates, rather
+ than macros, to implement the ACE_MIN and ACE_MAX macros. This
+ is a "Good Thing" because the use of macros has undesirable
+ side-effects due to the "call-by-name" semantics of macro
+ paramter expansion... If for some reason your compiler can't
+ handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
+ config.h file. Thanks to Derek Dominish
+ <Derek.Dominish@Australia.Boeing.com> for contributing this.
Sun Jan 16 16:43:10 2000 Ossama Othman <ossama@uci.edu>
- * ace/config.h.in:
+ * ace/config.h.in:
- Removed this file from the repository. It is automatically
- generated when autoconf support is bootstrapped into a
- workspace.
+ Removed this file from the repository. It is automatically
+ generated when autoconf support is bootstrapped into a
+ workspace.
Sun Jan 16 16:13:00 2000 Ossama Othman <ossama@uci.edu>
- * acconfig.h:
- * configure.in:
+ * acconfig.h:
+ * configure.in:
- Added support/tests for:
+ Added support/tests for:
- ACE_LACKS_SETREGID
- ACE_LACKS_SETREUID
- ACE_LACKS_SETREGID_PROTO
- ACE_LACKS_SETREUID_PROTO
+ ACE_LACKS_SETREGID
+ ACE_LACKS_SETREUID
+ ACE_LACKS_SETREGID_PROTO
+ ACE_LACKS_SETREUID_PROTO
- * ace/ACE.cpp:
- * ace/Configuration.cpp:
+ * ace/ACE.cpp:
+ * ace/Configuration.cpp:
- Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
- to ACE.cpp, and fixed them so that they work in the single
- threaded case. The idea is to place this set of template
- instantiations in a "common" area, since TAO also needs these
- templates instantations.
+ Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
+ to ACE.cpp, and fixed them so that they work in the single
+ threaded case. The idea is to place this set of template
+ instantiations in a "common" area, since TAO also needs these
+ templates instantations.
Sun Jan 16 10:49:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
- use fileno and then add a cast to (ACE_HANDLE) since this is
- what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
- Bala for reporting this.
+ * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
+ use fileno and then add a cast to (ACE_HANDLE) since this is
+ what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
+ Bala for reporting this.
- * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
- to supress an unnecessary warning.
+ * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
+ to supress an unnecessary warning.
- * tests/ARGV_Test.cpp (main): Fixed several warnings.
+ * tests/ARGV_Test.cpp (main): Fixed several warnings.
- * ace/Process.i: Rearranged the order of the process_name() methods
- so they are defined before being used/inlined.
+ * ace/Process.i: Rearranged the order of the process_name() methods
+ so they are defined before being used/inlined.
Sat Jan 15 19:59:00 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
- with Darrell's fixes.
+ * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
+ with Darrell's fixes.
Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
@@ -199,113 +206,113 @@ Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
Sat Jan 15 00:41:12 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/ARGV: Added a new add() method that adds an entire argv
- array in one fell swoop.
+ * ace/ARGV: Added a new add() method that adds an entire argv
+ array in one fell swoop.
- * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach.
+ * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach.
- * examples/Service_Configurator/Misc/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach. Note that this required the enhancement shown in the
- following bullet.
+ * examples/Service_Configurator/Misc/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach. Note that this required the enhancement shown in the
+ following bullet.
- * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
- it will also accept strings that are delimited by single quotes,
- as well as double quotes. This helps to simplify the use of
- ACE_ARGV to create svc.conf entries "on-the-fly".
+ * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
+ it will also accept strings that are delimited by single quotes,
+ as well as double quotes. This helps to simplify the use of
+ ACE_ARGV to create svc.conf entries "on-the-fly".
- * tests: Added a new test ARGV_Test.cpp that illustrates how to
- use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
- <kannan@uav.ae.gatech.edu> for contributing this.
+ * tests: Added a new test ARGV_Test.cpp that illustrates how to
+ use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
+ <kannan@uav.ae.gatech.edu> for contributing this.
- * ace/config-win32-common.h: Added
+ * ace/config-win32-common.h: Added
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
+ #define ACE_LACKS_SETREGID
+ #define ACE_LACKS_SETREUID
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- reporting this.
+ reporting this.
- * ace/Task.h: Added a comment to the suspend() and resume() methods
- encouraging developers not to use these methods unless
- absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
- for motivating this.
+ * ace/Task.h: Added a comment to the suspend() and resume() methods
+ encouraging developers not to use these methods unless
+ absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
+ for motivating this.
- * ace: Reorganized the config-win32*.h files
- to insulate the different compiler configurations from each
- other. The changes are as follows:
+ * ace: Reorganized the config-win32*.h files
+ to insulate the different compiler configurations from each
+ other. The changes are as follows:
* Concatenated config-win32.h and config-win32-common.h to form
- the new config-win32-common.h.
+ the new config-win32-common.h.
- * Moved MSVC-specific language defines from config-win32-common.h
- into config-win32-msvc.h
+ * Moved MSVC-specific language defines from config-win32-common.h
+ into config-win32-msvc.h
- * Updated the other compilers' files to add required language
- defines originally in config-win32-common.h.
+ * Updated the other compilers' files to add required language
+ defines originally in config-win32-common.h.
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- contributing this.
+ contributing this.
Fri Jan 14 15:42:28 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/Select_Reactor_T.cpp (work_pending): Made the code more
- general such that any thread can call it, i.e., it is not
- limited to the owner thread. This change alleviated the need
- for the specialization in TP_Reactor.
+ * ace/Select_Reactor_T.cpp (work_pending): Made the code more
+ general such that any thread can call it, i.e., it is not
+ limited to the owner thread. This change alleviated the need
+ for the specialization in TP_Reactor.
Fri Jan 14 01:48:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process: Moved the command_line_argv() from the
- non-Win32 part of the ACE_Process class to the generic
- part since it shouldn't depend on the platform. Thanks
- to Michael Kircher for reporting this.
-
- * ace/Process: Consider a process that spawns a number of
- processes using a same executable name but with different
- arguments <say svc.conf file..>. Depending on the arguments,
- each process does different things. Currently
- <ACE_Process::spawn> calls <execvp> with argv[0] as the
- exeutable name. Therefore, if you do a <ps> command now, all
- these processes will look the same, since they are all launched
- with the same command.
-
- But for <execvp> call, you could actually give a different
- executable name and a different argv[0]. This helps us to have
- the name for a process to be different from the executable
- name. In this case, <ps> command will show the processes with
- different argv[0] names.
-
- Therefore, we added a method called <process_name> to
- ACE_Process_Options to specify the executable name. If you do
- not call <process_name> method, argv[0] is taken as the
- executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
- for these enhancements.
+ * ace/Process: Moved the command_line_argv() from the
+ non-Win32 part of the ACE_Process class to the generic
+ part since it shouldn't depend on the platform. Thanks
+ to Michael Kircher for reporting this.
+
+ * ace/Process: Consider a process that spawns a number of
+ processes using a same executable name but with different
+ arguments <say svc.conf file..>. Depending on the arguments,
+ each process does different things. Currently
+ <ACE_Process::spawn> calls <execvp> with argv[0] as the
+ exeutable name. Therefore, if you do a <ps> command now, all
+ these processes will look the same, since they are all launched
+ with the same command.
+
+ But for <execvp> call, you could actually give a different
+ executable name and a different argv[0]. This helps us to have
+ the name for a process to be different from the executable
+ name. In this case, <ps> command will show the processes with
+ different argv[0] names.
+
+ Therefore, we added a method called <process_name> to
+ ACE_Process_Options to specify the executable name. If you do
+ not call <process_name> method, argv[0] is taken as the
+ executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
+ for these enhancements.
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/TP_Reactor.cpp (work_pending): This version is similar to
- the select reactor except there is no owner check.
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
- * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
- copied before calling select().
+ * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
+ copied before calling select().
Thu Jan 13 16:06:19 2000 Balachandran Natarajan <bala@cs.wustl.edu>
- * bin/auto_compile:
- * bin/run_all.pl:
- * bin/run_all_list.pm: Added an AMI test case for testing in the
- nightly builds.
+ * bin/auto_compile:
+ * bin/run_all.pl:
+ * bin/run_all_list.pm: Added an AMI test case for testing in the
+ nightly builds.
Wed Jan 12 23:46:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Service_Config.h: Updated the
- ACE_Service_Config::close_singletons() method documentation to
- reflect the fact that it no longer deletes the Allocator, which
- is deleted by the ACE_Object_Manager now. Thanks to Craig
- Perras <cperras@watchguard.com> for reporting this.
+ * ace/Service_Config.h: Updated the
+ ACE_Service_Config::close_singletons() method documentation to
+ reflect the fact that it no longer deletes the Allocator, which
+ is deleted by the ACE_Object_Manager now. Thanks to Craig
+ Perras <cperras@watchguard.com> for reporting this.
Wed Jan 12 09:49:57 2000 David L. Levine <levine@cs.wustl.edu>
@@ -369,7 +376,7 @@ Sun Jan 9 00:25:58 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
reporting this problem with VxWorks.
* ace/Pair_T.h: Reformatted to conform to the ACE style.
-
+
Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Threads/thread_pool.cpp: Revised the example to
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
index beb8c37c1d0..70bf11a81c1 100644
--- a/ChangeLogs/ChangeLog-02a
+++ b/ChangeLogs/ChangeLog-02a
@@ -1,190 +1,197 @@
+Tue Jan 18 09:13:43 2000 David L. Levine <levine@cs.wustl.edu>
+
+ * ACE-INSTALL.html: ACE works just fine on RedHat 5.1 and
+ later, not just 5.1 through 6.1. Thanks to Raj Narayanaswamy
+ <rnarayanaswamy@hologic.com> for asking about this.
+
Mon Jan 17 18:03:17 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
- registered itself as an event handler with ACE_Reactor, but did
- not properly unregister itself when it closed. For error to be
- noticed, you must instantiate ACE_Process_Manager with an
- ACE_Reactor. ACE_Process_Manager should *not* be run as a
- singleton. It must be instantiated such that it will be
- destroyed *before* the ACE_Reactor is destroyed.
-
- When you call ACE_Process_Manager::spawn, the newly created
- process is added to the ACE_Process_Manager's process table and
- (under WIN32) the ACE_Process_Manager is registered as an event
- handler for the new process (ace/Process_Manager.cpp, line 523)
- using this call:
-
+ * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
+ registered itself as an event handler with ACE_Reactor, but did
+ not properly unregister itself when it closed. For error to be
+ noticed, you must instantiate ACE_Process_Manager with an
+ ACE_Reactor. ACE_Process_Manager should *not* be run as a
+ singleton. It must be instantiated such that it will be
+ destroyed *before* the ACE_Reactor is destroyed.
+
+ When you call ACE_Process_Manager::spawn, the newly created
+ process is added to the ACE_Process_Manager's process table and
+ (under WIN32) the ACE_Process_Manager is registered as an event
+ handler for the new process (ace/Process_Manager.cpp, line 523)
+ using this call:
+
r->register_handler (this, proc->gethandle ());
-
+
This will happen for every process spawned. Thus,
- ACE_Process_Manager will potentially be associated with more
- than one WIN32 process handle.
-
+ ACE_Process_Manager will potentially be associated with more
+ than one WIN32 process handle.
+
When the ACE_Process_Manager was destroyed, the dtor calls
- ACE_Process_Manager::close which (for WIN32) attempts to remove
- ACE_Process_Manager as an Event_Handler from the ACE_Reactor
- using the following code (ace/Process_Manager.cpp, line 256)
-
+ ACE_Process_Manager::close which (for WIN32) attempts to remove
+ ACE_Process_Manager as an Event_Handler from the ACE_Reactor
+ using the following code (ace/Process_Manager.cpp, line 256)
+
this->reactor ()->remove_handler (this, 0);
-
+
This version of ACE_Reactor::remove_handler is:
-
+
int ACE_Reactor::remove_handler
(
ACE_Event_Handler *event_handler,
ACE_Reactor_Mask mask
);
-
+
It calls event_handler->get_handle() to obtain the handle to
- which 'event_handler' is associated. The problem is that
- ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
- the ACE_Reactor never properly unregistered the
- ACE_Process_Manager. This is now fixed and should work correctly
- on Win32 and other platforms.
-
+ which 'event_handler' is associated. The problem is that
+ ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
+ the ACE_Reactor never properly unregistered the
+ ACE_Process_Manager. This is now fixed and should work correctly
+ on Win32 and other platforms.
+
Thanks to Greg Gallant <gcg@intercap.com> for tracking all this
- down and providing the fix.
-
- * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
- #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
- warnings on platforms that don't support setpgid(). Thanks to
- Craig Perras <cperras@watchguard.com> for reporting this.
-
- * ace/NT_Service: Reformatted this head to conform to the ACE
- programming guidelines. Also, replaced
-
- #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
-
+ down and providing the fix.
+
+ * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
+ #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
+ warnings on platforms that don't support setpgid(). Thanks to
+ Craig Perras <cperras@watchguard.com> for reporting this.
+
+ * ace/NT_Service: Reformatted this head to conform to the ACE
+ programming guidelines. Also, replaced
+
+ #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
+
with
-
+
#if defined (ACE_WIN32)
-
+
This change allows a single dll to be built that supports both
- NT and Win9x. The app can use GetVersionEx() to check whether
- the platform is NT or not dynamically, or it can just call the
- various service functions, which will return a function not
- supported error. Thanks to Craig Perras
- <cperras@watchguard.com> for reporting this.
-
- * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
- to shut down Tasks using either the "empty message" strategy or
- the "queue deactivation" strategy.
-
- * ace/Message_Queue.h: Updated the documentation of the enqueue*()
- and dequeue*() methods to clarify which errno values are set
- when the calls return -1.
-
- * examples/Threads/thread_pool.cpp: Updated this example to
- remove the use of the now-defunct "wait_for_threads_to_shutdown"
- feature of ACE_Task.
-
- * ace/Task_T: Removed the recent feature added on
-
- Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
+ NT and Win9x. The app can use GetVersionEx() to check whether
+ the platform is NT or not dynamically, or it can just call the
+ various service functions, which will return a function not
+ supported error. Thanks to Craig Perras
+ <cperras@watchguard.com> for reporting this.
+
+ * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
+ to shut down Tasks using either the "empty message" strategy or
+ the "queue deactivation" strategy.
+
+ * ace/Message_Queue.h: Updated the documentation of the enqueue*()
+ and dequeue*() methods to clarify which errno values are set
+ when the calls return -1.
+
+ * examples/Threads/thread_pool.cpp: Updated this example to
+ remove the use of the now-defunct "wait_for_threads_to_shutdown"
+ feature of ACE_Task.
+
+ * ace/Task_T: Removed the recent feature added on
+
+ Sat Jan 8 09:44:51 2000 Douglas C. Schmidt
+ <schmidt@tango.cs.wustl.edu>
+
that allowed to an ACE_Task's destructor to wait for threads in
- a task to exit. It turns out this is practically impossible to
- use correctly because of the way that destructors are destroyed
- from the "top down". However, it's trivial to get the same
- behavior by simply calling the Tasks's wait() method whenever
- you want to implement barrier synchronization on a Task's thread
- exits.
-
- * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
- various strategies to wait for threads to exit. Thanks to Mark
- C. Barnes <marcus@muse3d.com> for motivating this example.
+ a task to exit. It turns out this is practically impossible to
+ use correctly because of the way that destructors are destroyed
+ from the "top down". However, it's trivial to get the same
+ behavior by simply calling the Tasks's wait() method whenever
+ you want to implement barrier synchronization on a Task's thread
+ exits.
+
+ * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
+ various strategies to wait for threads to exit. Thanks to Mark
+ C. Barnes <marcus@muse3d.com> for motivating this example.
Mon Jan 17 14:20:17 2000 Nanbor Wang <nanbor@cs.wustl.edu>
- * ace/OS.h:
- * ace/OS.i: Changed the signature of isatty to (int) and added a
- (ACE_HANDLE) version for Win32.
+ * ace/OS.h:
+ * ace/OS.i: Changed the signature of isatty to (int) and added a
+ (ACE_HANDLE) version for Win32.
- * ace/Makefile:
- * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
- from int to ACE_HANDLE.
+ * ace/Makefile:
+ * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
+ from int to ACE_HANDLE.
- * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
+ * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
- * ace/OS.i (isatty): Removed WinCE specific section.
+ * ace/OS.i (isatty): Removed WinCE specific section.
Mon Jan 17 00:53:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
- ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
- ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
- used as priority values, which is defined as a long. This
- should solve a problem with the ACE_MAX()/ACE_MIN() templates on
- Linux with G++. Thanks to Bala for reporting this problem.
+ * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
+ ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
+ ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
+ used as priority values, which is defined as a long. This
+ should solve a problem with the ACE_MAX()/ACE_MIN() templates on
+ Linux with G++. Thanks to Bala for reporting this problem.
- * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
- instructs the logging strategy to "wipeout", rather than append
- to, an existing logfile. Thanks to David X. Callaway
- <david.x.callaway@intel.com> for reporting this.
+ * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
+ instructs the logging strategy to "wipeout", rather than append
+ to, an existing logfile. Thanks to David X. Callaway
+ <david.x.callaway@intel.com> for reporting this.
Sun Jan 16 21:32:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
- new $ACE_ROOT/Min_Max.h file, along with their template function
- definitions.
+ * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
+ new $ACE_ROOT/Min_Max.h file, along with their template function
+ definitions.
- * ace: Added a new file called Min_Max.h that uses templates, rather
- than macros, to implement the ACE_MIN and ACE_MAX macros. This
- is a "Good Thing" because the use of macros has undesirable
- side-effects due to the "call-by-name" semantics of macro
- paramter expansion... If for some reason your compiler can't
- handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
- config.h file. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for contributing this.
+ * ace: Added a new file called Min_Max.h that uses templates, rather
+ than macros, to implement the ACE_MIN and ACE_MAX macros. This
+ is a "Good Thing" because the use of macros has undesirable
+ side-effects due to the "call-by-name" semantics of macro
+ paramter expansion... If for some reason your compiler can't
+ handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
+ config.h file. Thanks to Derek Dominish
+ <Derek.Dominish@Australia.Boeing.com> for contributing this.
Sun Jan 16 16:43:10 2000 Ossama Othman <ossama@uci.edu>
- * ace/config.h.in:
+ * ace/config.h.in:
- Removed this file from the repository. It is automatically
- generated when autoconf support is bootstrapped into a
- workspace.
+ Removed this file from the repository. It is automatically
+ generated when autoconf support is bootstrapped into a
+ workspace.
Sun Jan 16 16:13:00 2000 Ossama Othman <ossama@uci.edu>
- * acconfig.h:
- * configure.in:
+ * acconfig.h:
+ * configure.in:
- Added support/tests for:
+ Added support/tests for:
- ACE_LACKS_SETREGID
- ACE_LACKS_SETREUID
- ACE_LACKS_SETREGID_PROTO
- ACE_LACKS_SETREUID_PROTO
+ ACE_LACKS_SETREGID
+ ACE_LACKS_SETREUID
+ ACE_LACKS_SETREGID_PROTO
+ ACE_LACKS_SETREUID_PROTO
- * ace/ACE.cpp:
- * ace/Configuration.cpp:
+ * ace/ACE.cpp:
+ * ace/Configuration.cpp:
- Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
- to ACE.cpp, and fixed them so that they work in the single
- threaded case. The idea is to place this set of template
- instantiations in a "common" area, since TAO also needs these
- templates instantations.
+ Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
+ to ACE.cpp, and fixed them so that they work in the single
+ threaded case. The idea is to place this set of template
+ instantiations in a "common" area, since TAO also needs these
+ templates instantations.
Sun Jan 16 10:49:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
- use fileno and then add a cast to (ACE_HANDLE) since this is
- what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
- Bala for reporting this.
+ * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
+ use fileno and then add a cast to (ACE_HANDLE) since this is
+ what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
+ Bala for reporting this.
- * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
- to supress an unnecessary warning.
+ * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
+ to supress an unnecessary warning.
- * tests/ARGV_Test.cpp (main): Fixed several warnings.
+ * tests/ARGV_Test.cpp (main): Fixed several warnings.
- * ace/Process.i: Rearranged the order of the process_name() methods
- so they are defined before being used/inlined.
+ * ace/Process.i: Rearranged the order of the process_name() methods
+ so they are defined before being used/inlined.
Sat Jan 15 19:59:00 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
- with Darrell's fixes.
+ * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
+ with Darrell's fixes.
Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
@@ -199,113 +206,113 @@ Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
Sat Jan 15 00:41:12 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/ARGV: Added a new add() method that adds an entire argv
- array in one fell swoop.
+ * ace/ARGV: Added a new add() method that adds an entire argv
+ array in one fell swoop.
- * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach.
+ * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach.
- * examples/Service_Configurator/Misc/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach. Note that this required the enhancement shown in the
- following bullet.
+ * examples/Service_Configurator/Misc/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach. Note that this required the enhancement shown in the
+ following bullet.
- * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
- it will also accept strings that are delimited by single quotes,
- as well as double quotes. This helps to simplify the use of
- ACE_ARGV to create svc.conf entries "on-the-fly".
+ * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
+ it will also accept strings that are delimited by single quotes,
+ as well as double quotes. This helps to simplify the use of
+ ACE_ARGV to create svc.conf entries "on-the-fly".
- * tests: Added a new test ARGV_Test.cpp that illustrates how to
- use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
- <kannan@uav.ae.gatech.edu> for contributing this.
+ * tests: Added a new test ARGV_Test.cpp that illustrates how to
+ use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
+ <kannan@uav.ae.gatech.edu> for contributing this.
- * ace/config-win32-common.h: Added
+ * ace/config-win32-common.h: Added
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
+ #define ACE_LACKS_SETREGID
+ #define ACE_LACKS_SETREUID
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- reporting this.
+ reporting this.
- * ace/Task.h: Added a comment to the suspend() and resume() methods
- encouraging developers not to use these methods unless
- absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
- for motivating this.
+ * ace/Task.h: Added a comment to the suspend() and resume() methods
+ encouraging developers not to use these methods unless
+ absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
+ for motivating this.
- * ace: Reorganized the config-win32*.h files
- to insulate the different compiler configurations from each
- other. The changes are as follows:
+ * ace: Reorganized the config-win32*.h files
+ to insulate the different compiler configurations from each
+ other. The changes are as follows:
* Concatenated config-win32.h and config-win32-common.h to form
- the new config-win32-common.h.
+ the new config-win32-common.h.
- * Moved MSVC-specific language defines from config-win32-common.h
- into config-win32-msvc.h
+ * Moved MSVC-specific language defines from config-win32-common.h
+ into config-win32-msvc.h
- * Updated the other compilers' files to add required language
- defines originally in config-win32-common.h.
+ * Updated the other compilers' files to add required language
+ defines originally in config-win32-common.h.
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- contributing this.
+ contributing this.
Fri Jan 14 15:42:28 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/Select_Reactor_T.cpp (work_pending): Made the code more
- general such that any thread can call it, i.e., it is not
- limited to the owner thread. This change alleviated the need
- for the specialization in TP_Reactor.
+ * ace/Select_Reactor_T.cpp (work_pending): Made the code more
+ general such that any thread can call it, i.e., it is not
+ limited to the owner thread. This change alleviated the need
+ for the specialization in TP_Reactor.
Fri Jan 14 01:48:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process: Moved the command_line_argv() from the
- non-Win32 part of the ACE_Process class to the generic
- part since it shouldn't depend on the platform. Thanks
- to Michael Kircher for reporting this.
-
- * ace/Process: Consider a process that spawns a number of
- processes using a same executable name but with different
- arguments <say svc.conf file..>. Depending on the arguments,
- each process does different things. Currently
- <ACE_Process::spawn> calls <execvp> with argv[0] as the
- exeutable name. Therefore, if you do a <ps> command now, all
- these processes will look the same, since they are all launched
- with the same command.
-
- But for <execvp> call, you could actually give a different
- executable name and a different argv[0]. This helps us to have
- the name for a process to be different from the executable
- name. In this case, <ps> command will show the processes with
- different argv[0] names.
-
- Therefore, we added a method called <process_name> to
- ACE_Process_Options to specify the executable name. If you do
- not call <process_name> method, argv[0] is taken as the
- executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
- for these enhancements.
+ * ace/Process: Moved the command_line_argv() from the
+ non-Win32 part of the ACE_Process class to the generic
+ part since it shouldn't depend on the platform. Thanks
+ to Michael Kircher for reporting this.
+
+ * ace/Process: Consider a process that spawns a number of
+ processes using a same executable name but with different
+ arguments <say svc.conf file..>. Depending on the arguments,
+ each process does different things. Currently
+ <ACE_Process::spawn> calls <execvp> with argv[0] as the
+ exeutable name. Therefore, if you do a <ps> command now, all
+ these processes will look the same, since they are all launched
+ with the same command.
+
+ But for <execvp> call, you could actually give a different
+ executable name and a different argv[0]. This helps us to have
+ the name for a process to be different from the executable
+ name. In this case, <ps> command will show the processes with
+ different argv[0] names.
+
+ Therefore, we added a method called <process_name> to
+ ACE_Process_Options to specify the executable name. If you do
+ not call <process_name> method, argv[0] is taken as the
+ executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
+ for these enhancements.
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/TP_Reactor.cpp (work_pending): This version is similar to
- the select reactor except there is no owner check.
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
- * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
- copied before calling select().
+ * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
+ copied before calling select().
Thu Jan 13 16:06:19 2000 Balachandran Natarajan <bala@cs.wustl.edu>
- * bin/auto_compile:
- * bin/run_all.pl:
- * bin/run_all_list.pm: Added an AMI test case for testing in the
- nightly builds.
+ * bin/auto_compile:
+ * bin/run_all.pl:
+ * bin/run_all_list.pm: Added an AMI test case for testing in the
+ nightly builds.
Wed Jan 12 23:46:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Service_Config.h: Updated the
- ACE_Service_Config::close_singletons() method documentation to
- reflect the fact that it no longer deletes the Allocator, which
- is deleted by the ACE_Object_Manager now. Thanks to Craig
- Perras <cperras@watchguard.com> for reporting this.
+ * ace/Service_Config.h: Updated the
+ ACE_Service_Config::close_singletons() method documentation to
+ reflect the fact that it no longer deletes the Allocator, which
+ is deleted by the ACE_Object_Manager now. Thanks to Craig
+ Perras <cperras@watchguard.com> for reporting this.
Wed Jan 12 09:49:57 2000 David L. Levine <levine@cs.wustl.edu>
@@ -369,7 +376,7 @@ Sun Jan 9 00:25:58 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
reporting this problem with VxWorks.
* ace/Pair_T.h: Reformatted to conform to the ACE style.
-
+
Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Threads/thread_pool.cpp: Revised the example to
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index beb8c37c1d0..70bf11a81c1 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,190 +1,197 @@
+Tue Jan 18 09:13:43 2000 David L. Levine <levine@cs.wustl.edu>
+
+ * ACE-INSTALL.html: ACE works just fine on RedHat 5.1 and
+ later, not just 5.1 through 6.1. Thanks to Raj Narayanaswamy
+ <rnarayanaswamy@hologic.com> for asking about this.
+
Mon Jan 17 18:03:17 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
- registered itself as an event handler with ACE_Reactor, but did
- not properly unregister itself when it closed. For error to be
- noticed, you must instantiate ACE_Process_Manager with an
- ACE_Reactor. ACE_Process_Manager should *not* be run as a
- singleton. It must be instantiated such that it will be
- destroyed *before* the ACE_Reactor is destroyed.
-
- When you call ACE_Process_Manager::spawn, the newly created
- process is added to the ACE_Process_Manager's process table and
- (under WIN32) the ACE_Process_Manager is registered as an event
- handler for the new process (ace/Process_Manager.cpp, line 523)
- using this call:
-
+ * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
+ registered itself as an event handler with ACE_Reactor, but did
+ not properly unregister itself when it closed. For error to be
+ noticed, you must instantiate ACE_Process_Manager with an
+ ACE_Reactor. ACE_Process_Manager should *not* be run as a
+ singleton. It must be instantiated such that it will be
+ destroyed *before* the ACE_Reactor is destroyed.
+
+ When you call ACE_Process_Manager::spawn, the newly created
+ process is added to the ACE_Process_Manager's process table and
+ (under WIN32) the ACE_Process_Manager is registered as an event
+ handler for the new process (ace/Process_Manager.cpp, line 523)
+ using this call:
+
r->register_handler (this, proc->gethandle ());
-
+
This will happen for every process spawned. Thus,
- ACE_Process_Manager will potentially be associated with more
- than one WIN32 process handle.
-
+ ACE_Process_Manager will potentially be associated with more
+ than one WIN32 process handle.
+
When the ACE_Process_Manager was destroyed, the dtor calls
- ACE_Process_Manager::close which (for WIN32) attempts to remove
- ACE_Process_Manager as an Event_Handler from the ACE_Reactor
- using the following code (ace/Process_Manager.cpp, line 256)
-
+ ACE_Process_Manager::close which (for WIN32) attempts to remove
+ ACE_Process_Manager as an Event_Handler from the ACE_Reactor
+ using the following code (ace/Process_Manager.cpp, line 256)
+
this->reactor ()->remove_handler (this, 0);
-
+
This version of ACE_Reactor::remove_handler is:
-
+
int ACE_Reactor::remove_handler
(
ACE_Event_Handler *event_handler,
ACE_Reactor_Mask mask
);
-
+
It calls event_handler->get_handle() to obtain the handle to
- which 'event_handler' is associated. The problem is that
- ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
- the ACE_Reactor never properly unregistered the
- ACE_Process_Manager. This is now fixed and should work correctly
- on Win32 and other platforms.
-
+ which 'event_handler' is associated. The problem is that
+ ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
+ the ACE_Reactor never properly unregistered the
+ ACE_Process_Manager. This is now fixed and should work correctly
+ on Win32 and other platforms.
+
Thanks to Greg Gallant <gcg@intercap.com> for tracking all this
- down and providing the fix.
-
- * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
- #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
- warnings on platforms that don't support setpgid(). Thanks to
- Craig Perras <cperras@watchguard.com> for reporting this.
-
- * ace/NT_Service: Reformatted this head to conform to the ACE
- programming guidelines. Also, replaced
-
- #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
-
+ down and providing the fix.
+
+ * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
+ #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
+ warnings on platforms that don't support setpgid(). Thanks to
+ Craig Perras <cperras@watchguard.com> for reporting this.
+
+ * ace/NT_Service: Reformatted this head to conform to the ACE
+ programming guidelines. Also, replaced
+
+ #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
+
with
-
+
#if defined (ACE_WIN32)
-
+
This change allows a single dll to be built that supports both
- NT and Win9x. The app can use GetVersionEx() to check whether
- the platform is NT or not dynamically, or it can just call the
- various service functions, which will return a function not
- supported error. Thanks to Craig Perras
- <cperras@watchguard.com> for reporting this.
-
- * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
- to shut down Tasks using either the "empty message" strategy or
- the "queue deactivation" strategy.
-
- * ace/Message_Queue.h: Updated the documentation of the enqueue*()
- and dequeue*() methods to clarify which errno values are set
- when the calls return -1.
-
- * examples/Threads/thread_pool.cpp: Updated this example to
- remove the use of the now-defunct "wait_for_threads_to_shutdown"
- feature of ACE_Task.
-
- * ace/Task_T: Removed the recent feature added on
-
- Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
+ NT and Win9x. The app can use GetVersionEx() to check whether
+ the platform is NT or not dynamically, or it can just call the
+ various service functions, which will return a function not
+ supported error. Thanks to Craig Perras
+ <cperras@watchguard.com> for reporting this.
+
+ * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
+ to shut down Tasks using either the "empty message" strategy or
+ the "queue deactivation" strategy.
+
+ * ace/Message_Queue.h: Updated the documentation of the enqueue*()
+ and dequeue*() methods to clarify which errno values are set
+ when the calls return -1.
+
+ * examples/Threads/thread_pool.cpp: Updated this example to
+ remove the use of the now-defunct "wait_for_threads_to_shutdown"
+ feature of ACE_Task.
+
+ * ace/Task_T: Removed the recent feature added on
+
+ Sat Jan 8 09:44:51 2000 Douglas C. Schmidt
+ <schmidt@tango.cs.wustl.edu>
+
that allowed to an ACE_Task's destructor to wait for threads in
- a task to exit. It turns out this is practically impossible to
- use correctly because of the way that destructors are destroyed
- from the "top down". However, it's trivial to get the same
- behavior by simply calling the Tasks's wait() method whenever
- you want to implement barrier synchronization on a Task's thread
- exits.
-
- * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
- various strategies to wait for threads to exit. Thanks to Mark
- C. Barnes <marcus@muse3d.com> for motivating this example.
+ a task to exit. It turns out this is practically impossible to
+ use correctly because of the way that destructors are destroyed
+ from the "top down". However, it's trivial to get the same
+ behavior by simply calling the Tasks's wait() method whenever
+ you want to implement barrier synchronization on a Task's thread
+ exits.
+
+ * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
+ various strategies to wait for threads to exit. Thanks to Mark
+ C. Barnes <marcus@muse3d.com> for motivating this example.
Mon Jan 17 14:20:17 2000 Nanbor Wang <nanbor@cs.wustl.edu>
- * ace/OS.h:
- * ace/OS.i: Changed the signature of isatty to (int) and added a
- (ACE_HANDLE) version for Win32.
+ * ace/OS.h:
+ * ace/OS.i: Changed the signature of isatty to (int) and added a
+ (ACE_HANDLE) version for Win32.
- * ace/Makefile:
- * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
- from int to ACE_HANDLE.
+ * ace/Makefile:
+ * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
+ from int to ACE_HANDLE.
- * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
+ * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
- * ace/OS.i (isatty): Removed WinCE specific section.
+ * ace/OS.i (isatty): Removed WinCE specific section.
Mon Jan 17 00:53:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
- ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
- ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
- used as priority values, which is defined as a long. This
- should solve a problem with the ACE_MAX()/ACE_MIN() templates on
- Linux with G++. Thanks to Bala for reporting this problem.
+ * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
+ ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
+ ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
+ used as priority values, which is defined as a long. This
+ should solve a problem with the ACE_MAX()/ACE_MIN() templates on
+ Linux with G++. Thanks to Bala for reporting this problem.
- * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
- instructs the logging strategy to "wipeout", rather than append
- to, an existing logfile. Thanks to David X. Callaway
- <david.x.callaway@intel.com> for reporting this.
+ * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
+ instructs the logging strategy to "wipeout", rather than append
+ to, an existing logfile. Thanks to David X. Callaway
+ <david.x.callaway@intel.com> for reporting this.
Sun Jan 16 21:32:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
- new $ACE_ROOT/Min_Max.h file, along with their template function
- definitions.
+ * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
+ new $ACE_ROOT/Min_Max.h file, along with their template function
+ definitions.
- * ace: Added a new file called Min_Max.h that uses templates, rather
- than macros, to implement the ACE_MIN and ACE_MAX macros. This
- is a "Good Thing" because the use of macros has undesirable
- side-effects due to the "call-by-name" semantics of macro
- paramter expansion... If for some reason your compiler can't
- handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
- config.h file. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for contributing this.
+ * ace: Added a new file called Min_Max.h that uses templates, rather
+ than macros, to implement the ACE_MIN and ACE_MAX macros. This
+ is a "Good Thing" because the use of macros has undesirable
+ side-effects due to the "call-by-name" semantics of macro
+ paramter expansion... If for some reason your compiler can't
+ handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
+ config.h file. Thanks to Derek Dominish
+ <Derek.Dominish@Australia.Boeing.com> for contributing this.
Sun Jan 16 16:43:10 2000 Ossama Othman <ossama@uci.edu>
- * ace/config.h.in:
+ * ace/config.h.in:
- Removed this file from the repository. It is automatically
- generated when autoconf support is bootstrapped into a
- workspace.
+ Removed this file from the repository. It is automatically
+ generated when autoconf support is bootstrapped into a
+ workspace.
Sun Jan 16 16:13:00 2000 Ossama Othman <ossama@uci.edu>
- * acconfig.h:
- * configure.in:
+ * acconfig.h:
+ * configure.in:
- Added support/tests for:
+ Added support/tests for:
- ACE_LACKS_SETREGID
- ACE_LACKS_SETREUID
- ACE_LACKS_SETREGID_PROTO
- ACE_LACKS_SETREUID_PROTO
+ ACE_LACKS_SETREGID
+ ACE_LACKS_SETREUID
+ ACE_LACKS_SETREGID_PROTO
+ ACE_LACKS_SETREUID_PROTO
- * ace/ACE.cpp:
- * ace/Configuration.cpp:
+ * ace/ACE.cpp:
+ * ace/Configuration.cpp:
- Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
- to ACE.cpp, and fixed them so that they work in the single
- threaded case. The idea is to place this set of template
- instantiations in a "common" area, since TAO also needs these
- templates instantations.
+ Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
+ to ACE.cpp, and fixed them so that they work in the single
+ threaded case. The idea is to place this set of template
+ instantiations in a "common" area, since TAO also needs these
+ templates instantations.
Sun Jan 16 10:49:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
- use fileno and then add a cast to (ACE_HANDLE) since this is
- what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
- Bala for reporting this.
+ * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
+ use fileno and then add a cast to (ACE_HANDLE) since this is
+ what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
+ Bala for reporting this.
- * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
- to supress an unnecessary warning.
+ * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
+ to supress an unnecessary warning.
- * tests/ARGV_Test.cpp (main): Fixed several warnings.
+ * tests/ARGV_Test.cpp (main): Fixed several warnings.
- * ace/Process.i: Rearranged the order of the process_name() methods
- so they are defined before being used/inlined.
+ * ace/Process.i: Rearranged the order of the process_name() methods
+ so they are defined before being used/inlined.
Sat Jan 15 19:59:00 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
- with Darrell's fixes.
+ * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
+ with Darrell's fixes.
Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
@@ -199,113 +206,113 @@ Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
Sat Jan 15 00:41:12 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/ARGV: Added a new add() method that adds an entire argv
- array in one fell swoop.
+ * ace/ARGV: Added a new add() method that adds an entire argv
+ array in one fell swoop.
- * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach.
+ * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach.
- * examples/Service_Configurator/Misc/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach. Note that this required the enhancement shown in the
- following bullet.
+ * examples/Service_Configurator/Misc/main.cpp (main): Replaced
+ the ad hoc use of argc/argv processing with the ACE_ARGV
+ approach. Note that this required the enhancement shown in the
+ following bullet.
- * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
- it will also accept strings that are delimited by single quotes,
- as well as double quotes. This helps to simplify the use of
- ACE_ARGV to create svc.conf entries "on-the-fly".
+ * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
+ it will also accept strings that are delimited by single quotes,
+ as well as double quotes. This helps to simplify the use of
+ ACE_ARGV to create svc.conf entries "on-the-fly".
- * tests: Added a new test ARGV_Test.cpp that illustrates how to
- use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
- <kannan@uav.ae.gatech.edu> for contributing this.
+ * tests: Added a new test ARGV_Test.cpp that illustrates how to
+ use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
+ <kannan@uav.ae.gatech.edu> for contributing this.
- * ace/config-win32-common.h: Added
+ * ace/config-win32-common.h: Added
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
+ #define ACE_LACKS_SETREGID
+ #define ACE_LACKS_SETREUID
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- reporting this.
+ reporting this.
- * ace/Task.h: Added a comment to the suspend() and resume() methods
- encouraging developers not to use these methods unless
- absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
- for motivating this.
+ * ace/Task.h: Added a comment to the suspend() and resume() methods
+ encouraging developers not to use these methods unless
+ absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
+ for motivating this.
- * ace: Reorganized the config-win32*.h files
- to insulate the different compiler configurations from each
- other. The changes are as follows:
+ * ace: Reorganized the config-win32*.h files
+ to insulate the different compiler configurations from each
+ other. The changes are as follows:
* Concatenated config-win32.h and config-win32-common.h to form
- the new config-win32-common.h.
+ the new config-win32-common.h.
- * Moved MSVC-specific language defines from config-win32-common.h
- into config-win32-msvc.h
+ * Moved MSVC-specific language defines from config-win32-common.h
+ into config-win32-msvc.h
- * Updated the other compilers' files to add required language
- defines originally in config-win32-common.h.
+ * Updated the other compilers' files to add required language
+ defines originally in config-win32-common.h.
Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- contributing this.
+ contributing this.
Fri Jan 14 15:42:28 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/Select_Reactor_T.cpp (work_pending): Made the code more
- general such that any thread can call it, i.e., it is not
- limited to the owner thread. This change alleviated the need
- for the specialization in TP_Reactor.
+ * ace/Select_Reactor_T.cpp (work_pending): Made the code more
+ general such that any thread can call it, i.e., it is not
+ limited to the owner thread. This change alleviated the need
+ for the specialization in TP_Reactor.
Fri Jan 14 01:48:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Process: Moved the command_line_argv() from the
- non-Win32 part of the ACE_Process class to the generic
- part since it shouldn't depend on the platform. Thanks
- to Michael Kircher for reporting this.
-
- * ace/Process: Consider a process that spawns a number of
- processes using a same executable name but with different
- arguments <say svc.conf file..>. Depending on the arguments,
- each process does different things. Currently
- <ACE_Process::spawn> calls <execvp> with argv[0] as the
- exeutable name. Therefore, if you do a <ps> command now, all
- these processes will look the same, since they are all launched
- with the same command.
-
- But for <execvp> call, you could actually give a different
- executable name and a different argv[0]. This helps us to have
- the name for a process to be different from the executable
- name. In this case, <ps> command will show the processes with
- different argv[0] names.
-
- Therefore, we added a method called <process_name> to
- ACE_Process_Options to specify the executable name. If you do
- not call <process_name> method, argv[0] is taken as the
- executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
- for these enhancements.
+ * ace/Process: Moved the command_line_argv() from the
+ non-Win32 part of the ACE_Process class to the generic
+ part since it shouldn't depend on the platform. Thanks
+ to Michael Kircher for reporting this.
+
+ * ace/Process: Consider a process that spawns a number of
+ processes using a same executable name but with different
+ arguments <say svc.conf file..>. Depending on the arguments,
+ each process does different things. Currently
+ <ACE_Process::spawn> calls <execvp> with argv[0] as the
+ exeutable name. Therefore, if you do a <ps> command now, all
+ these processes will look the same, since they are all launched
+ with the same command.
+
+ But for <execvp> call, you could actually give a different
+ executable name and a different argv[0]. This helps us to have
+ the name for a process to be different from the executable
+ name. In this case, <ps> command will show the processes with
+ different argv[0] names.
+
+ Therefore, we added a method called <process_name> to
+ ACE_Process_Options to specify the executable name. If you do
+ not call <process_name> method, argv[0] is taken as the
+ executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
+ for these enhancements.
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/TP_Reactor.cpp (work_pending): This version is similar to
- the select reactor except there is no owner check.
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
- * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
- copied before calling select().
+ * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
+ copied before calling select().
Thu Jan 13 16:06:19 2000 Balachandran Natarajan <bala@cs.wustl.edu>
- * bin/auto_compile:
- * bin/run_all.pl:
- * bin/run_all_list.pm: Added an AMI test case for testing in the
- nightly builds.
+ * bin/auto_compile:
+ * bin/run_all.pl:
+ * bin/run_all_list.pm: Added an AMI test case for testing in the
+ nightly builds.
Wed Jan 12 23:46:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * ace/Service_Config.h: Updated the
- ACE_Service_Config::close_singletons() method documentation to
- reflect the fact that it no longer deletes the Allocator, which
- is deleted by the ACE_Object_Manager now. Thanks to Craig
- Perras <cperras@watchguard.com> for reporting this.
+ * ace/Service_Config.h: Updated the
+ ACE_Service_Config::close_singletons() method documentation to
+ reflect the fact that it no longer deletes the Allocator, which
+ is deleted by the ACE_Object_Manager now. Thanks to Craig
+ Perras <cperras@watchguard.com> for reporting this.
Wed Jan 12 09:49:57 2000 David L. Levine <levine@cs.wustl.edu>
@@ -369,7 +376,7 @@ Sun Jan 9 00:25:58 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
reporting this problem with VxWorks.
* ace/Pair_T.h: Reformatted to conform to the ACE style.
-
+
Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Threads/thread_pool.cpp: Revised the example to