bjh         99/10/11 07:44:26

  Modified:    src/lib/apr/threadproc/os2 proc.c threadproc.h
  Log:
  OS/2: Implement detached processes & fix some parameter ordering.
  
  Revision  Changes    Path
  1.4       +16 -8     apache-2.0/src/lib/apr/threadproc/os2/proc.c
  
  Index: proc.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/os2/proc.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- proc.c    1999/10/04 16:37:37     1.3
  +++ proc.c    1999/10/11 14:44:24     1.4
  @@ -65,6 +65,7 @@
   #include <sys/wait.h>
   #include <unistd.h>
   #include <process.h>
  +#include <stdlib.h>
   #define INCL_DOS
   #include <os2.h>
   
  @@ -85,6 +86,7 @@
       (*new)->child_err = NULL;
       (*new)->currdir = NULL; 
       (*new)->cmdtype = APR_PROGRAM;
  +    (*new)->detached = FALSE;
       return APR_SUCCESS;
   }
   
  @@ -93,20 +95,20 @@
   {
       ap_status_t stat;
       if (in) {
  -        if ((stat = ap_create_pipe(attr->cntxt, &attr->child_in, 
  -                            &attr->parent_in)) != APR_SUCCESS) {
  +        if ((stat = ap_create_pipe(&attr->child_in, &attr->parent_in,
  +                                   attr->cntxt)) != APR_SUCCESS) {
               return stat;
           }
       } 
       if (out) {
  -        if ((stat = ap_create_pipe(attr->cntxt, &attr->parent_out, 
  -                            &attr->child_out)) != APR_SUCCESS) {
  +        if ((stat = ap_create_pipe(&attr->parent_out, &attr->child_out,
  +                                   attr->cntxt)) != APR_SUCCESS) {
               return stat;
           }
       } 
       if (err) {
  -        if ((stat = ap_create_pipe(attr->cntxt, &attr->parent_err, 
  -                            &attr->child_err)) != APR_SUCCESS) {
  +        if ((stat = ap_create_pipe(&attr->parent_err, &attr->child_err,
  +                                   attr->cntxt)) != APR_SUCCESS) {
               return stat;
           }
       } 
  @@ -130,6 +132,12 @@
       return APR_SUCCESS;
   }
   
  +ap_status_t ap_setprocattr_detach(struct procattr_t *attr, ap_int32_t 
detach) 
  +{
  +    attr->detached = detach;
  +    return APR_SUCCESS;
  +}
  +
   ap_status_t ap_fork(struct proc_t **proc, ap_context_t *cont)
   {
       int pid;
  @@ -229,9 +237,9 @@
           }
   
           newargs[i + 3] = NULL;
  -        (*new)->pid = spawnve(P_NOWAIT, SHELL_PATH, newargs, env);
  +        (*new)->pid = spawnve(attr->detached ? P_DETACH : P_NOWAIT, 
SHELL_PATH, newargs, env);
       } else {
  -        (*new)->pid = spawnve(P_NOWAIT, progname, args, env);
  +        (*new)->pid = spawnve(attr->detached ? P_DETACH : P_NOWAIT, 
progname, args, env);
       }
       
       stat = (*new)->pid < 0 ? errno : APR_SUCCESS;
  
  
  
  1.2       +1 -0      apache-2.0/src/lib/apr/threadproc/os2/threadproc.h
  
  Index: threadproc.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/os2/threadproc.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- threadproc.h      1999/08/17 15:59:50     1.1
  +++ threadproc.h      1999/10/11 14:44:25     1.2
  @@ -93,6 +93,7 @@
       ap_file_t *child_err;
       char *currdir;
       ap_int32_t cmdtype;
  +    ap_int32_t detached;
   };
   
   struct proc_t {
  
  
  

Reply via email to