You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/05/31 20:09:13 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_workerEnv.c jk_env.c jk_objCache.c jk_worker_lb.c

costin      2002/05/31 11:09:13

  Modified:    jk/native2/common jk_workerEnv.c jk_env.c jk_objCache.c
                        jk_worker_lb.c
  Log:
  Use jk_mutex.
  
  Revision  Changes    Path
  1.50      +24 -14    jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c
  
  Index: jk_workerEnv.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- jk_workerEnv.c	30 May 2002 18:24:09 -0000	1.49
  +++ jk_workerEnv.c	31 May 2002 18:09:13 -0000	1.50
  @@ -59,7 +59,7 @@
    * Description: Workers controller                                         *
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
    * Author:      Henri Gomez <hg...@slib.fr>                               *
  - * Version:     $Revision: 1.49 $                                           *
  + * Version:     $Revision: 1.50 $                                           *
    ***************************************************************************/
   
   #include "jk_env.h"
  @@ -353,6 +353,12 @@
           configFile=wEnv->config->file;
       }
   
  +    jkb=env->createBean2(env, wEnv->mbean->pool,"threadMutex", NULL);
  +    if( jkb != NULL ) {
  +        wEnv->cs=jkb->object;
  +        jkb->init(env, jkb );
  +    }
  +
       if( wEnv->logger_name!=NULL){
           jkb=env->getBean(env,wEnv->logger_name);
           if (jkb == NULL){
  @@ -550,8 +556,8 @@
       jk_bean_t *jkb;
       int csOk;
       
  -    JK_ENTER_CS(&wEnv->cs, csOk);
  -    if( !csOk ) return JK_ERR;
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->lock( env, wEnv->cs );
   
       ch->mbean->id=wEnv->channel_map->size( env, wEnv->channel_map );
       wEnv->channel_map->add(env, wEnv->channel_map, ch->mbean->name, ch);
  @@ -562,7 +568,8 @@
       if( jkb == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
                         "workerEnv.addChannel(): Can't find ajp13 worker\n" );
  -        JK_LEAVE_CS( &wEnv->cs, csOk );
  +        if( wEnv->cs != NULL ) 
  +            wEnv->cs->unLock( env, wEnv->cs );
           return JK_ERR;
       }
       ch->worker=jkb->object;
  @@ -570,7 +577,8 @@
       ch->worker->channel=ch;
               
       /* XXX Set additional parameters - use defaults otherwise */
  -    JK_LEAVE_CS( &wEnv->cs, csOk );
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->unLock( env, wEnv->cs );
   
       return JK_OK;
   }
  @@ -579,9 +587,8 @@
   {
       int csOk;
       
  -    JK_ENTER_CS(&wEnv->cs, csOk);
  -    if( !csOk ) return JK_ERR;
  -
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->lock( env, wEnv->cs );
       {
           int pos=wEnv->endpointMap->size( env, wEnv->endpointMap );
           
  @@ -590,7 +597,8 @@
   
           ep->mbean->init( env, ep->mbean );
       }
  -    JK_LEAVE_CS( &wEnv->cs, csOk );
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->unLock( env, wEnv->cs );
       return JK_OK;
   }
   
  @@ -602,8 +610,8 @@
       jk_worker_t *oldW = NULL;
       int csOk;
       
  -    JK_ENTER_CS(&wEnv->cs, csOk);
  -    if( !csOk ) return JK_ERR;
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->lock( env, wEnv->cs ); 
   
       w->workerEnv=wEnv;
   
  @@ -614,6 +622,8 @@
       err=w->rPoolCache->init( env, w->rPoolCache,
                                1024 ); /* XXX make it unbound */
   
  +    fprintf( stderr, "XXXWE.addWorker 2 %p %p\n", w, w->rPoolCache );
  +
       wEnv->worker_map->put(env, wEnv->worker_map, w->mbean->name, w, (void *)&oldW);
               
       if(oldW!=NULL) {
  @@ -624,7 +634,8 @@
               oldW->mbean->destroy(env, oldW->mbean);
       }
       
  -    JK_LEAVE_CS( &wEnv->cs, csOk );
  +    if( wEnv->cs != NULL ) 
  +        wEnv->cs->unLock( env, wEnv->cs );
       return JK_OK;
   }
   
  @@ -787,7 +798,6 @@
           env->alias(env, "shm:", "shm");
           wEnv->shm=(jk_shm_t *)jkb->object;
       }
  -    JK_INIT_CS(&(wEnv->cs), csOk);
  -    
  +
       return JK_OK;
   }
  
  
  
  1.33      +4 -3      jakarta-tomcat-connectors/jk/native2/common/jk_env.c
  
  Index: jk_env.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_env.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- jk_env.c	29 May 2002 17:51:23 -0000	1.32
  +++ jk_env.c	31 May 2002 18:09:13 -0000	1.33
  @@ -507,13 +507,14 @@
       
       jk2_map_default_create( env, & env->_registry, env->globalPool );
       jk2_map_default_create( env, & env->_objects, env->globalPool );
  +
  +    env->tmpPool=env->globalPool->create(env, env->globalPool, HUGE_POOL_SIZE);;
  +
  +    jk2_registry_init(env);
       
       env->envCache= jk2_objCache_create( env, env->globalPool  );
       env->envCache->init( env, env->envCache, 64 );
       env->envCache->maxSize=-1;
  -    env->tmpPool=env->globalPool->create(env, env->globalPool, HUGE_POOL_SIZE);;
  -
  -    jk2_registry_init(env);
   }
   
   
  
  
  
  1.7       +41 -46    jakarta-tomcat-connectors/jk/native2/common/jk_objCache.c
  
  Index: jk_objCache.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_objCache.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- jk_objCache.c	25 Apr 2002 18:51:15 -0000	1.6
  +++ jk_objCache.c	31 May 2002 18:09:13 -0000	1.7
  @@ -72,44 +72,39 @@
       if(_this->size <= 0 )
           return JK_ERR;
   
  -    
  -    JK_ENTER_CS(&_this->cs, rc);
  -    if(rc==JK_TRUE) {
  -
  -        rc=JK_FALSE;
  +    if( _this->cs != NULL )
  +        _this->cs->lock(env, _this->cs );
   
  -        if( _this->count >= _this->size && _this->maxSize== -1 ) {
  -            /* Realloc */
  -            void **oldData=_this->data;
  -            _this->data =
  -                (void **)_this->pool->calloc(env, _this->pool,
  -                                             2 * sizeof(void *) * _this->size);
  -            memcpy( _this->data, oldData, _this->size );
  -            _this->size *= 2;
  -            /* XXX Can we destroy the old data ? Probably not.
  -               It may be better to have a list - but it's unlikely
  -               we'll have too many reallocations */
  -        }
  -
  -        if( _this->count < _this->size ) {
  -            _this->data[_this->count++]=obj;
  -        }
  -
  -        JK_LEAVE_CS(&_this->cs, rc);
  -        if(rc==JK_TRUE) {
  -            /*   l->jkLog(l, JK_LOG_DEBUG, "Return endpoint to pool\n"); */
  -            return JK_OK;
  -        }
  +    rc=JK_FALSE;
  +    
  +    if( _this->count >= _this->size && _this->maxSize== -1 ) {
  +        /* Realloc */
  +        void **oldData=_this->data;
  +        _this->data =
  +            (void **)_this->pool->calloc(env, _this->pool,
  +                                         2 * sizeof(void *) * _this->size);
  +        memcpy( _this->data, oldData, _this->size );
  +        _this->size *= 2;
  +        /* XXX Can we destroy the old data ? Probably not.
  +           It may be better to have a list - but it's unlikely
  +           we'll have too many reallocations */
       }
  +    
  +    if( _this->count < _this->size ) {
  +        _this->data[_this->count++]=obj;
  +    }
  +    
  +    if( _this->cs != NULL )
  +        _this->cs->unLock(env, _this->cs );
   
  -    /* Can't enter CS */ 
  -    return JK_ERR; 
  +    return JK_OK;
   }
   
   static int
   jk2_objCache_init(jk_env_t *env, jk_objCache_t *_this, int cacheSize ) {
       int i;
  -
  +    jk_bean_t *jkb;
  +    
       if( cacheSize <= 0 ) {
           _this->size= 64;
       } else {
  @@ -125,11 +120,10 @@
       if( _this->data==NULL )
           return JK_ERR;
       
  -    JK_INIT_CS(&(_this->cs), i);
  -    if (!i) {
  -        env->l->jkLog(env, env->l, JK_LOG_ERROR,
  -                      "objCache.create(): Can't init CS\n");
  -        return JK_ERR;
  +    jkb=env->createBean2(env, _this->pool,"threadMutex", NULL);
  +    if( jkb != NULL ) {
  +        _this->cs=jkb->object;
  +        jkb->init(env, jkb );
       }
   
       return JK_OK;
  @@ -139,7 +133,8 @@
   jk2_objCache_destroy(jk_env_t *env, jk_objCache_t *_this ) {
       int i;
   
  -    JK_DELETE_CS(&(_this->cs), i);
  +    if( _this->cs != NULL ) 
  +        _this->cs->mbean->destroy( env, _this->cs->mbean );
   
       _this->count=0;
       /* Nothing to free, we use pools */
  @@ -154,18 +149,18 @@
       int rc;
       void *ae=NULL;
   
  -    JK_ENTER_CS(&_this->cs, rc);
  -    if (rc==JK_TRUE) {
  -        if( _this->count > 0 ) {
  -            _this->count--;
  -            ae=_this->data[ _this->count ];
  -        }
  +    if( _this->cs != NULL )
  +        _this->cs->lock(env, _this->cs );
   
  -        JK_LEAVE_CS(&_this->cs, rc);
  -
  -        return ae;
  +    if( _this->count > 0 ) {
  +        _this->count--;
  +        ae=_this->data[ _this->count ];
       }
  -    return NULL;
  +
  +    if( _this->cs != NULL )
  +        _this->cs->unLock(env, _this->cs );
  +
  +    return ae;
   }
   
   jk_objCache_t *jk2_objCache_create(jk_env_t *env, jk_pool_t *pool ) {
  
  
  
  1.18      +0 -1      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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- jk_worker_lb.c	16 May 2002 21:03:45 -0000	1.17
  +++ jk_worker_lb.c	31 May 2002 18:09:13 -0000	1.18
  @@ -69,7 +69,6 @@
   #include "jk_config.h"
   #include "jk_env.h"
   #include "jk_requtil.h"
  -#include "jk_mt.h"
   
   #define DEFAULT_LB_FACTOR           (1.0)
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>