rbb         99/02/17 10:42:03

  Modified:    pthreads/src/main http_main.c
  Log:
  This patch fixes a few different things.  The first, is that if
  MaxRequestsPerChild was set to 0 in the config file, the child would start
  and stop immediately.  This fixes that.  The rest are mostly syntax errors 
that
  my compiler didn't catch before.
  
  Revision  Changes    Path
  1.41      +8 -15     apache-apr/pthreads/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/pthreads/src/main/http_main.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- http_main.c       1999/02/17 16:28:03     1.40
  +++ http_main.c       1999/02/17 18:42:01     1.41
  @@ -1521,7 +1521,7 @@
   static void graceful_sig_handler(int sig)
   {
       requests_this_child = 0;
  -    fprintf(stderr, "SigWINCH received in child\n");
  +    ap_max_requests_per_child = 1;
   }
   
   /*****************************************************************
  @@ -2173,13 +2173,6 @@
    * Child process main loop.
    */
   
  -API_EXPORT(void) ap_child_terminate(request_rec *r)
  -{
  -    r->connection->keepalive = 0;
  -    /*    requests_this_child = ap_max_requests_per_child = 1; */
  -    /* ZZZ doesn't really make sense in a threaded server. */
  -}
  -
   static void process_socket(pool *p, struct sockaddr *sa_client, int csd, int 
my_child_num, int my_thread_num)
   {
       struct sockaddr sa_server; /* ZZZZ */
  @@ -2276,7 +2269,8 @@
       sock_disable_nagle(sd);
       */
   
  -    while (0 < requests_this_child) {
  +    while ((ap_max_requests_per_child != 0 && ++requests_this_child > 0) ||
  +           (ap_max_requests_per_child == 0)) { 
           (void) ap_update_child_status(my_pid, my_tid, SERVER_ACCEPTING, 
                                    (request_rec *) NULL);
        /* lock around the accept if necessary */
  @@ -2298,10 +2292,9 @@
       if (exiting_now == 0) {
        exiting_now++;
        pthread_mutex_unlock(exit_mutex); 
  -        graceful_killer;
  +        graceful_killer();
           clean_child_exit(0);
       }        
  -fprintf(stderr,"thorugh pthread_once\n");
       pthread_exit(NULL);
   }
   
  @@ -2317,7 +2310,8 @@
       free(ti);
   
       ptrans = ap_make_sub_pool(pchild);
  -    while (0 < requests_this_child) {
  +    while ((ap_max_requests_per_child != 0 && ++requests_this_child > 0) ||
  +           (ap_max_requests_per_child == 0)) { 
           (void) ap_update_child_status(my_pid, my_tid, SERVER_READY, 
                                  (request_rec *) NULL);
            
  @@ -2333,10 +2327,9 @@
       if (exiting_now == 0) {
        exiting_now++;
        pthread_mutex_unlock(exit_mutex); 
  -        graceful_killer;
  +        graceful_killer();
           clean_child_exit(0);
       }        
  -    fprintf(stderr,"through with pthread_once worker\n");
       pthread_exit(NULL);
   }
   
  @@ -2819,7 +2812,7 @@
           pid = wait_or_timeout(&status);
           
           if (pid >= 0) {
  -            child_slot = find_child_by_pid(0);
  +            child_slot = find_child_by_pid(pid);
               if (child_slot >= 0) {
              /*                (void) ap_update_child_status(child_slot, 
SERVER_DEAD,
                                            (request_rec *) NULL);
  
  
  

Reply via email to