mturk       2002/06/29 11:28:10

  Modified:    jk/native2/common jk_worker_lb.c
  Log:
  Move the worker initalization to channel, so we can skip the channels
  that not need that option.
  
  Revision  Changes    Path
  1.22      +6 -13     jakarta-tomcat-connectors/jk/native2/common/jk_worker_lb.c
  
  Index: jk_worker_lb.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_lb.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- jk_worker_lb.c    29 Jun 2002 07:48:20 -0000      1.21
  +++ jk_worker_lb.c    29 Jun 2002 18:28:10 -0000      1.22
  @@ -85,7 +85,6 @@
   
   typedef struct {
       struct jk_mutex *cs;
  -    int    init_timeout;
       int    initializing;
   } jk_worker_lb_private_t;
   
  @@ -385,7 +384,7 @@
           s->jvm_route = rec->route;
   
           s->realWorker = rec;
  -        if (!rec->initialized && !lb_priv->initializing && lb->cs != NULL) {
  +        if (rec->mbean->initialize && !lb_priv->initializing && lb->cs != NULL) {
               /* If the worker has not been called yet serialize the call */
               lb->cs->lock(env, lb->cs);
               lb_priv->initializing = JK_TRUE;
  @@ -397,18 +396,18 @@
               rec->in_error_state = JK_FALSE;
               rec->error_time     = 0;
               /* Set the initialized flag to TRUE if that was the first call */
  -            if (!rec->initialized && lb->cs != NULL) {
  -                rec->initialized = JK_TRUE;
  +            if (rec->mbean->initialize && lb->cs != NULL) {
  +                rec->mbean->initialize = 0;
                   lb_priv->initializing = JK_FALSE;
                   lb->cs->unLock(env, lb->cs);
               }
               return JK_OK;
           }
           
  -        if (!rec->initialized && lb->cs != NULL) {
  +        if (rec->mbean->initialize && lb->cs != NULL) {
               time_t now = time(NULL);
               /* In the case of initialization timeout disable the worker */
  -            if ((int)(now - rec->error_time) > lb_priv->init_timeout) {
  +            if ((int)(now - rec->error_time) > rec->mbean->initialize) {
                   rec->mbean->disabled = JK_TRUE;
                   lb_priv->initializing = JK_FALSE;
                   s->is_recoverable_error = JK_FALSE;
  @@ -524,11 +523,7 @@
           lb->noWorkerCode=atoi( value );
       } else if( strcmp( name, "hwBalanceErr") == 0 ) {
           lb->hwBalanceErr=atoi( value );
  -    } else if( strcmp( name, "initTimeout") == 0 ) {
  -        jk_worker_lb_private_t *priv = lb->worker_private;
  -        priv->init_timeout=atoi( value );
       }
  -
       return JK_ERR;
   }
   
  @@ -595,8 +590,6 @@
       worker_private = (jk_worker_lb_private_t *)pool->calloc(env,
                             pool, sizeof(jk_worker_lb_private_t));
       
  -    /* one minute service startup */
  -    worker_private->init_timeout = 60;
       jkb=env->createBean2(env, pool,"threadMutex", NULL);
       if( jkb != NULL ) {
           worker_private->cs=jkb->object;
  @@ -625,7 +618,7 @@
   
       w->workerEnv=env->getByName( env, "workerEnv" );
       w->workerEnv->addWorker( env, w->workerEnv, w );
  -    
  +
       return JK_OK;
   }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to