summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorharrison <harrison@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-05-12 16:05:47 +0000
committerharrison <harrison@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-05-12 16:05:47 +0000
commitd454837af56ecf5f7410f8dbdce5e8fcab224177 (patch)
treed93d99c9d300e0dd58dc6d7225ffe0f54039f6e5
parentd71d5bde6c04a3e66ddcf690b725cabffaa88020 (diff)
downloadATCD-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.cpp4
-rw-r--r--ace/Process_Manager.cpp23
-rw-r--r--ace/Process_Manager.h9
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