diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-21 17:02:41 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-21 17:02:41 +0000 |
commit | de8212ee3cc4537dde481433b07e873dff21215c (patch) | |
tree | 2e9b25a958359c411ceedc02e001d06ace46d61e | |
parent | d763489c0dbb45c7b1b48fa8c753c0c1513f47f2 (diff) | |
download | ATCD-de8212ee3cc4537dde481433b07e873dff21215c.tar.gz |
No zombie patch
-rw-r--r-- | ace/Process.cpp | 4 | ||||
-rw-r--r-- | ace/Process.h | 6 | ||||
-rw-r--r-- | ace/Process.i | 10 |
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 |