diff options
author | harrison <harrison@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-05-12 16:05:47 +0000 |
---|---|---|
committer | harrison <harrison@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-05-12 16:05:47 +0000 |
commit | d454837af56ecf5f7410f8dbdce5e8fcab224177 (patch) | |
tree | d93d99c9d300e0dd58dc6d7225ffe0f54039f6e5 | |
parent | d71d5bde6c04a3e66ddcf690b725cabffaa88020 (diff) | |
download | ATCD-d454837af56ecf5f7410f8dbdce5e8fcab224177.tar.gz |
The old ACE_Process has been replaced with what used to be
ACE_ProcessEx. The ACE_Process_Manager has changed to use the new
ACE_Process API.
-rw-r--r-- | ace/Process.cpp | 4 | ||||
-rw-r--r-- | ace/Process_Manager.cpp | 23 | ||||
-rw-r--r-- | ace/Process_Manager.h | 9 |
3 files changed, 11 insertions, 25 deletions
diff --git a/ace/Process.cpp b/ace/Process.cpp index 6d5f3b738b0..e5610f02e2f 100644 --- a/ace/Process.cpp +++ b/ace/Process.cpp @@ -538,7 +538,8 @@ ACE_Process::ACE_Process (char *argv[], ACE_Process_Options::ACE_Process_Options (int ie, int cobl) - : inherit_environment_ (ie), + : command_line_buf_ (0), + inherit_environment_ (ie), #if defined (ACE_WIN32) handle_inheritence_ (TRUE), creation_flags_ (0), @@ -553,7 +554,6 @@ ACE_Process_Options::ACE_Process_Options (int ie, #endif /* ACE_WIN32 */ environment_buf_index_ (0), environment_argv_index_ (0), - command_line_buf_ (0), command_line_argv_calculated_ (0) { ACE_NEW (command_line_buf_, char[cobl]); diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp index 1ee99f29703..21e5fc65e7a 100644 --- a/ace/Process_Manager.cpp +++ b/ace/Process_Manager.cpp @@ -125,22 +125,12 @@ ACE_Process_Manager::~ACE_Process_Manager (void) // held... pid_t -ACE_Process_Manager::start (char *argv[], - char *envp[]) +ACE_Process_Manager::start (ACE_Process_Options &options) { ACE_TRACE ("ACE_Process_Manager::start"); - // Create a new process, potentially causing an exec(), as well. - // This API clearly needs to be improved to pass more information - // in... - ACE_Process process; - - process.set_handles (ACE_INVALID_HANDLE, - ACE_INVALID_HANDLE, - ACE_INVALID_HANDLE); - - pid_t pid = process.start (argv, envp); + pid_t pid = process.start (options); // Only include the pid in the parent's table. if (pid == -1 || pid == 0) @@ -159,23 +149,20 @@ ACE_Process_Manager::start (char *argv[], // Create N new processs running FUNC. int -ACE_Process_Manager::start_n (size_t n, - char *argv[], - char *envp[]) +ACE_Process_Manager::start_n (size_t n, ACE_Process_Options &options) { ACE_TRACE ("ACE_Process_Manager::spawn_n"); #if 0 // This doesn't work (yet). for (size_t i = 0; i < n; i++) - if (this->start (argv, envp) == -1) + if (this->start (options) == -1) return -1; return 0; #else ACE_UNUSED_ARG (n); - ACE_UNUSED_ARG (argv); - ACE_UNUSED_ARG (envp); + ACE_UNUSED_ARG (options); ACE_NOTSUP_RETURN (-1); #endif /* 0 */ } diff --git a/ace/Process_Manager.h b/ace/Process_Manager.h index 651d236c097..4cb9554efd2 100644 --- a/ace/Process_Manager.h +++ b/ace/Process_Manager.h @@ -18,6 +18,7 @@ #define ACE_PROCESS_MANAGER_H #include "ace/Synch.h" +#include "ace/Process.h" class ACE_Export ACE_Process_Descriptor // = Title @@ -62,15 +63,13 @@ public: int close (void); // Release all resources. - pid_t start (char *argv[], char *envp[] = 0); - // Create a new process using <ACE_Process::start>. + pid_t start (ACE_Process_Options &options); + // Create a new process using ACE_Process::start (<options>). // Returns: on success a unique group id that can be used to control // other processs added to the same group. On failure, returns -1. - int start_n (size_t n, - char *argv[], - char *envp[] = 0); + int start_n (size_t n, ACE_Process_Options &options); // Create N new processs. // Returns: on success a unique group id that can be used to control |