summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-21 17:02:41 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-21 17:02:41 +0000
commitde8212ee3cc4537dde481433b07e873dff21215c (patch)
tree2e9b25a958359c411ceedc02e001d06ace46d61e
parentd763489c0dbb45c7b1b48fa8c753c0c1513f47f2 (diff)
downloadATCD-de8212ee3cc4537dde481433b07e873dff21215c.tar.gz
No zombie patch
-rw-r--r--ace/Process.cpp4
-rw-r--r--ace/Process.h6
-rw-r--r--ace/Process.i10
3 files changed, 19 insertions, 1 deletions
diff --git a/ace/Process.cpp b/ace/Process.cpp
index 3a7606d4cc4..2f4abe189f7 100644
--- a/ace/Process.cpp
+++ b/ace/Process.cpp
@@ -92,7 +92,8 @@ ACE_Process::spawn (ACE_Process_Options &options)
return this->child_id_;
#else /* ACE_WIN32 */
// Fork the new process.
- this->child_id_ = ACE_OS::fork (options.command_line_argv ()[0]);
+ this->child_id_ = ACE::fork (options.command_line_argv ()[0],
+ options.avoid_zombies ());
// If we're not supposed to exec, return the process id.
if (ACE_BIT_ENABLED (options.creation_flags (), ACE_Process_Options::NO_EXEC))
@@ -225,6 +226,7 @@ ACE_Process_Options::ACE_Process_Options (int ie,
stdin_ (ACE_INVALID_HANDLE),
stdout_ (ACE_INVALID_HANDLE),
stderr_ (ACE_INVALID_HANDLE),
+ avoid_zombies_ (0),
#endif /* ACE_WIN32 */
set_handles_called_ (0),
environment_buf_index_ (0),
diff --git a/ace/Process.h b/ace/Process.h
index 7a1bf830bb4..b80b0020e12 100644
--- a/ace/Process.h
+++ b/ace/Process.h
@@ -188,6 +188,10 @@ public:
ACE_HANDLE get_stdout (void);
ACE_HANDLE get_stderr (void);
+ void avoid_zombies (int);
+ // Set value for avoid_zombies.
+ int avoid_zombies (void);
+ // Get current value for avoid_zombies.
#endif /* ACE_WIN32 */
protected:
@@ -234,6 +238,8 @@ protected:
ACE_HANDLE stdin_;
ACE_HANDLE stdout_;
ACE_HANDLE stderr_;
+ // Avoid zombies for spawned processes.
+ int avoid_zombies_;
#endif /* ACE_WIN32 */
#if !defined (ACE_HAS_WINCE)
diff --git a/ace/Process.i b/ace/Process.i
index 8d68339895f..ce83a1ec6af 100644
--- a/ace/Process.i
+++ b/ace/Process.i
@@ -151,6 +151,16 @@ ACE_Process_Options::get_stderr (void)
return stderr_;
}
+ACE_INLINE int
+ACE_Process_Options::avoid_zombies (void)
+{
+ return avoid_zombies_;
+}
+ACE_INLINE void
+ACE_Process_Options::avoid_zombies (int avoid_zombies)
+{
+ avoid_zombies_ = avoid_zombies;
+}
#endif /* ACE_WIN32 */
ACE_INLINE LPTSTR