httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wr...@apache.org
Subject cvs commit: httpd-2.0/modules/proxy proxy_util.c
Date Wed, 11 Aug 2004 23:10:36 GMT
wrowe       2004/08/11 16:10:36

  Modified:    modules/proxy proxy_util.c
  Log:
  Added dynamic worker limit. It ensures that the addng dynamic
  workers to the balancers never excedes that limit.
  
  Submitted by: mturk
  
  Revision  Changes    Path
  1.133     +14 -2     httpd-2.0/modules/proxy/proxy_util.c
  
  Index: proxy_util.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_util.c,v
  retrieving revision 1.132
  retrieving revision 1.133
  diff -u -r1.132 -r1.133
  --- proxy_util.c	11 Aug 2004 23:09:57 -0000	1.132
  +++ proxy_util.c	11 Aug 2004 23:10:35 -0000	1.133
  @@ -26,6 +26,7 @@
   
   /* Global balancer counter */
   static int lb_workers = 0;
  +static int lb_workers_limit = 0;
   
   static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r);
   static int proxy_match_domainname(struct dirconn_entry *This, request_rec *r);
  @@ -1157,8 +1158,17 @@
   
       ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &mpm_daemons);
       /* Check if we are prefork or single child */
  -    if (worker->hmax && mpm_daemons > 1)
  +    if (worker->hmax && mpm_daemons > 1) {
  +        /* Check only if workers_limit is set */
  +        if (lb_workers_limit && (lb_workers + 1) > lb_workers_limit) {
  +            ap_log_perror(APLOG_MARK, APLOG_ERR, 0, pool,
  +                          "proxy: Can not add worker (%s) to balancer (%s)."
  +                          " Dynamic limit reached.",
  +                          worker->name, balancer->name);
  +            return;
  +        }
           score = ap_get_scoreboard_lb(getpid(), lb_workers);
  +    }
       else
   #endif
       {
  @@ -1859,5 +1869,7 @@
   
   PROXY_DECLARE(int) ap_proxy_lb_workers(void)
   {
  -    return (lb_workers + PROXY_DYNAMIC_BALANCER_LIMIT);
  +    /* Set the dynamic #workers limit */
  +    lb_workers_limit = lb_workers + PROXY_DYNAMIC_BALANCER_LIMIT;
  +    return lb_workers_limit;
   }
  
  
  

Mime
View raw message