rbb         99/12/13 12:42:22

  Modified:    src/lib/apr/include apr_lib.h apr_pools.h
               src/lib/apr/lib apr_pools.c
  Log:
  Fi ap_note_subprocess to use ap_proc_t's instead of pid's.
  
  Revision  Changes    Path
  1.21      +2 -1      apache-2.0/src/lib/apr/include/apr_lib.h
  
  Index: apr_lib.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_lib.h,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- apr_lib.h 1999/12/01 20:35:34     1.20
  +++ apr_lib.h 1999/12/13 20:42:02     1.21
  @@ -66,6 +66,7 @@
   
   #include "apr_general.h"
   #include "apr_file_io.h"
  +#include "apr_thread_proc.h"
   
   #if APR_HAVE_STDARG_H
   #include <stdarg.h>
  @@ -353,7 +354,7 @@
   API_EXPORT(ap_status_t) ap_getpass(const char *prompt, char *pwbuf, size_t 
*bufsize);
   API_EXPORT_NONSTD(ap_status_t) ap_null_cleanup(void *data);
   
  -API_EXPORT(void) ap_note_subprocess(struct context_t *a, pid_t pid,
  +API_EXPORT(void) ap_note_subprocess(struct context_t *a, ap_proc_t *pid,
                                     enum kill_conditions how);
   API_EXPORT(int)
        ap_spawn_child(ap_context_t *p,
  
  
  
  1.8       +1 -14     apache-2.0/src/lib/apr/include/apr_pools.h
  
  Index: apr_pools.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_pools.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- apr_pools.h       1999/12/01 20:35:39     1.7
  +++ apr_pools.h       1999/12/13 20:42:05     1.8
  @@ -90,7 +90,7 @@
   #endif
   
   struct process_chain {
  -    pid_t pid;
  +    ap_proc_t *pid;
       enum kill_conditions kill_how;
       struct process_chain *next;
   };
  @@ -241,19 +241,6 @@
    */
   #define ap_table_elts(t) ((ap_array_header_t *)(t))
   #define ap_is_empty_table(t) (((t) == NULL)||(((ap_array_header_t 
*)(t))->nelts == 0))
  -
  -/* ... even child processes (which we may want to wait for,
  - * or to kill outright, on unexpected termination).
  - *
  - * ap_spawn_child is a utility routine which handles an awful lot of
  - * the rigamarole associated with spawning a child --- it arranges
  - * for pipes to the child's stdin and stdout, if desired (if not,
  - * set the associated args to NULL).  It takes as args a function
  - * to call in the child, and an argument to be passed to the function.
  - */
  -
  -API_EXPORT(void) ap_note_subprocess(struct context_t *a, pid_t pid,
  -                                 enum kill_conditions how);
   
   /* magic numbers --- min free bytes to consider a free ap_context_t block 
useable,
    * and the min amount to allocate if we have to go to malloc() */
  
  
  
  1.29      +6 -6      apache-2.0/src/lib/apr/lib/apr_pools.c
  
  Index: apr_pools.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_pools.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- apr_pools.c       1999/12/09 21:00:43     1.28
  +++ apr_pools.c       1999/12/13 20:42:18     1.29
  @@ -1216,7 +1216,7 @@
    * generic interface, but for now, it's a special case
    */
   
  -API_EXPORT(void) ap_note_subprocess(struct context_t *a, pid_t pid,
  +API_EXPORT(void) ap_note_subprocess(struct context_t *a, ap_proc_t *pid,
                                     enum kill_conditions how)
   {
       struct process_chain *new =
  @@ -1304,7 +1304,7 @@
   #ifndef NEED_WAITPID
       /* Pick up all defunct processes */
       for (p = procs; p; p = p->next) {
  -     if (waitpid(p->pid, (int *) 0, WNOHANG) > 0) {
  +     if (ap_wait_proc(p->pid, APR_NOWAIT) > 0) {
            p->kill_how = kill_never;
        }
       }
  @@ -1316,12 +1316,12 @@
            /*
             * Subprocess may be dead already.  Only need the timeout if not.
             */
  -         if (kill(p->pid, SIGTERM) != -1) {
  +         if (ap_kill(p->pid, SIGTERM) != -1) {
                need_timeout = 1;
            }
        }
        else if (p->kill_how == kill_always) {
  -         kill(p->pid, SIGKILL);
  +         ap_kill(p->pid, SIGKILL);
        }
       }
   
  @@ -1339,11 +1339,11 @@
       for (p = procs; p; p = p->next) {
   
        if (p->kill_how == kill_after_timeout) {
  -         kill(p->pid, SIGKILL);
  +         ap_kill(p->pid, SIGKILL);
        }
   
        if (p->kill_how != kill_never) {
  -         waitpid(p->pid, &status, 0);
  +         status = ap_wait_proc(p->pid, APR_WAIT);
        }
       }
   #endif /* WIN32 */
  
  
  

Reply via email to