httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bnicho...@apache.org
Subject cvs commit: httpd-2.0/server/mpm/netware mpm_netware.c
Date Tue, 30 Apr 2002 14:32:07 GMT
bnicholes    02/04/30 07:32:07

  Modified:    server/mpm/netware mpm_netware.c
  Log:
  Readjusting how the bucket alloc is done for each worker thread.  Allocate
  the bucket once per thread rather than on every request.  This change
  increases our performance significantly.
  
  Revision  Changes    Path
  1.49      +14 -10    httpd-2.0/server/mpm/netware/mpm_netware.c
  
  Index: mpm_netware.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/netware/mpm_netware.c,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- mpm_netware.c	15 Apr 2002 19:23:59 -0000	1.48
  +++ mpm_netware.c	30 Apr 2002 14:32:07 -0000	1.49
  @@ -204,10 +204,9 @@
   #endif
   
   /* a clean exit from a child with proper cleanup */
  -static void clean_child_exit(int code, int worker_num, apr_bucket_alloc_t *bucket_alloc)
__attribute__ ((noreturn));
  -static void clean_child_exit(int code, int worker_num, apr_bucket_alloc_t *bucket_alloc)
  +static void clean_child_exit(int code, int worker_num) __attribute__ ((noreturn));
  +static void clean_child_exit(int code, int worker_num)
   {
  -    apr_bucket_alloc_destroy(bucket_alloc);
       apr_thread_mutex_lock(worker_thread_count_mutex);
       worker_thread_count--;
       apr_thread_mutex_unlock(worker_thread_count_mutex);
  @@ -353,6 +352,7 @@
       ap_listen_rec *lr;
       ap_listen_rec *last_lr = NULL;
       apr_pool_t *ptrans;
  +    apr_pool_t *pbucket;
       apr_allocator_t *allocator;
       apr_bucket_alloc_t *bucket_alloc;
       conn_rec *current_conn;
  @@ -375,9 +375,14 @@
       apr_allocator_create(&allocator);
       apr_pool_create_ex(&ptrans, NULL, NULL, allocator);
       apr_allocator_set_owner(allocator, ptrans);
  -
       apr_pool_tag(ptrans, "transaction");
   
  +    apr_allocator_create(&allocator);
  +    apr_pool_create_ex(&pbucket, NULL, NULL, allocator);
  +    apr_allocator_set_owner(allocator, pbucket);
  +    apr_pool_tag(pbucket, "bucket_allocs");
  +    bucket_alloc = apr_bucket_alloc_create(pbucket);
  +
       apr_thread_mutex_lock(worker_thread_count_mutex);
       worker_thread_count++;
       apr_thread_mutex_unlock(worker_thread_count_mutex);
  @@ -391,11 +396,10 @@
           */
           current_conn = NULL;
           apr_pool_clear(ptrans);
  -        bucket_alloc = apr_bucket_alloc_create(ptrans);
   
           if ((ap_max_requests_per_child > 0
               && requests_this_child++ >= ap_max_requests_per_child)) {
  -            clean_child_exit(0, my_worker_num, bucket_alloc);
  +            clean_child_exit(0, my_worker_num);
           }
   
           ap_update_child_status_from_indexes(0, my_worker_num, WORKER_READY, 
  @@ -412,7 +416,7 @@
               if (shutdown_pending || restart_pending || (ap_scoreboard_image->servers[0][my_worker_num].status
== WORKER_IDLE_KILL)) {
                   DBPRINT1 ("\nThread slot %d is shutting down\n", my_worker_num);
                   apr_thread_mutex_unlock(accept_mutex);
  -                clean_child_exit(0, my_worker_num, bucket_alloc);
  +                clean_child_exit(0, my_worker_num);
               }
   
               /* If we just satisfied a request on listen port x, assume that more 
  @@ -518,13 +522,13 @@
                           ap_log_error(APLOG_MARK, APLOG_EMERG, stat, ap_server_conf,
                               "apr_accept: giving up.");
                           apr_thread_mutex_unlock(accept_mutex);
  -                        clean_child_exit(APEXIT_CHILDFATAL, my_worker_num, bucket_alloc);
  +                        clean_child_exit(APEXIT_CHILDFATAL, my_worker_num);
   
                       default:
                           ap_log_error(APLOG_MARK, APLOG_ERR, stat, ap_server_conf,
                               "apr_accept: (client socket)");
                           apr_thread_mutex_unlock(accept_mutex);
  -                        clean_child_exit(1, my_worker_num, bucket_alloc);
  +                        clean_child_exit(1, my_worker_num);
                   }
               }
           }
  @@ -546,7 +550,7 @@
           }
           request_count++;
       }
  -    clean_child_exit(0, my_worker_num, bucket_alloc);
  +    clean_child_exit(0, my_worker_num);
   }
   
   
  
  
  

Mime
View raw message