costin      01/12/13 23:14:59

  Modified:    jk/native2/server/apache2 jk_apache2.h jk_logger_apache2.c
                        jk_pool_apr.c mod_jk.c
  Log:
  Switch to jk_pools so I can test them.
  
  The apr pools seem to work fine, we seem to clean up everything
  ( i.e. reset the pool - I fixed a small bug there ). I run few 100.000 requests,
  the memory is constant.
  
  It also seem jk_pools are fine ( and no malloc happens after the
  warmup, all pools are recycled and we have constant memory as well ! ).
  
  ( I'll remove the debug statements tommorow )
  
  Revision  Changes    Path
  1.2       +5 -1      jakarta-tomcat-connectors/jk/native2/server/apache2/jk_apache2.h
  
  Index: jk_apache2.h
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_apache2.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_apache2.h      2001/12/13 18:50:33     1.1
  +++ jk_apache2.h      2001/12/14 07:14:59     1.2
  @@ -59,7 +59,7 @@
    * Description: Apache 2 plugin for Jakarta/Tomcat                         
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           
    *                 Henri Gomez <[EMAIL PROTECTED]>                            
  - * Version:     $Revision: 1.1 $                                           
  + * Version:     $Revision: 1.2 $                                           
    */
   
   #include "jk_global.h"
  @@ -81,6 +81,10 @@
   
   int  jk_pool_apr_factory(jk_env_t *env, jk_pool_t *pool,
                            void **result, char *type, char *name);
  +
  +int  jk_map_aprtable_factory(jk_env_t *env, jk_pool_t *pool,
  +                             void **result,
  +                             char *type, char *name);
   
   /* Temp. - we should use the factory ( we may need few changes ) */
   int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent,
  
  
  
  1.8       +2 -0      
jakarta-tomcat-connectors/jk/native2/server/apache2/jk_logger_apache2.c
  
  Index: jk_logger_apache2.c
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_logger_apache2.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- jk_logger_apache2.c       2001/12/13 19:05:31     1.7
  +++ jk_logger_apache2.c       2001/12/14 07:14:59     1.8
  @@ -132,6 +132,8 @@
       char buf[HUGE_BUFFER_SIZE];
   #endif
   
  +    if( level >= l->level )
  +        return JK_TRUE;
   
       if( s==NULL ) {
           return JK_FALSE;
  
  
  
  1.5       +46 -15    
jakarta-tomcat-connectors/jk/native2/server/apache2/jk_pool_apr.c
  
  Index: jk_pool_apr.c
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_pool_apr.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_pool_apr.c     2001/12/13 19:05:31     1.4
  +++ jk_pool_apr.c     2001/12/14 07:14:59     1.5
  @@ -68,8 +68,12 @@
   
   #include "jk_apache2.h"
   
  -int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent, apr_pool_t *aprPool 
);
  +#define POOL_DEBUG
   
  +
  +int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent,
  +                        apr_pool_t *aprPool );
  +
   int JK_METHOD jk_pool_apr_factory(jk_env_t *env,
                                     jk_pool_t *pool,
                                     void **result,
  @@ -79,7 +83,9 @@
    */
   static void jk_pool_apr_close(jk_pool_t *p)
   {
  -    
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_close %p\n", p);
  +#endif
   }
   
   /** Nothing - apache will take care.
  @@ -88,12 +94,18 @@
   */
   static void jk_pool_apr_reset(jk_pool_t *p)
   {
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_reset %p\n", p);
  +#endif
       apr_pool_clear(p->_private);
   }
   
   static void *jk_pool_apr_calloc(jk_pool_t *p, 
  -                           size_t size)
  +                                size_t size)
   {
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_calloc %p %d\n", p, size);
  +#endif
       /* assert( p->_private != NULL ) */
       return apr_pcalloc( (apr_pool_t *)p->_private, (apr_size_t)size);
   }
  @@ -101,16 +113,23 @@
   static void *jk_pool_apr_alloc(jk_pool_t *p, 
                                  size_t size)
   {
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_alloc %p %d\n", p, size);
  +#endif
  +
       return apr_palloc( (apr_pool_t *)p->_private, (apr_size_t)size);
   }
   
   static void *jk_pool_apr_realloc(jk_pool_t *p, 
  -                             size_t sz,
  -                             const void *old,
  -                             size_t old_sz)
  +                                 size_t sz,
  +                                 const void *old,
  +                                 size_t old_sz)
   {
       void *rc;
   
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_realloc %p %d\n", p, sz);
  +#endif
       if(!p || (!old && old_sz)) {
           return NULL;
       }
  @@ -126,10 +145,13 @@
   static void *jk_pool_apr_strdup(jk_pool_t *p, 
                                   const char *s)
   {
  +#ifdef POOL_DEBUG
  +    fprintf(stderr, "apr_strdup %p %d\n", p, ((s==NULL)?-1: (int)strlen(s)));
  +#endif
       return apr_pstrdup( (apr_pool_t *)p->_private, s);
   }
  -
   
  +static void jk_pool_apr_initMethods( jk_pool_t *_this );
   
   static jk_pool_t *jk_pool_apr_createChild( jk_pool_t *_this, int sizeHint ) {
       apr_pool_t *parentAprPool=_this->_private;
  @@ -138,20 +160,30 @@
   
       apr_pool_create( &childAprPool, parentAprPool );
   
  -    jk_pool_apr_create( &newPool, _this, childAprPool );
  +    newPool=(jk_pool_t *)apr_palloc(parentAprPool, sizeof( jk_pool_t ));
       
  +    jk_pool_apr_initMethods( newPool );
  +    newPool->_private=childAprPool;
  +    
       return newPool;
   }
   
   
  -int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent, apr_pool_t *aprPool)
  +int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent,
  +                        apr_pool_t *aprPool)
   {
  -    jk_pool_t *_this=(jk_pool_t *)apr_palloc(aprPool, sizeof( jk_pool_t ));
  -    
  -    _this->_private=aprPool;
  -    
  +    jk_pool_t *_this;
  +
  +    _this=(jk_pool_t *)apr_palloc(aprPool, sizeof( jk_pool_t ));
       *newPool = _this;
   
  +    _this->_private=aprPool;
  +    jk_pool_apr_initMethods( _this );
  +    return JK_TRUE;
  +}
  +
  +static void jk_pool_apr_initMethods( jk_pool_t *_this )
  +{
       /* methods */
       _this->create=jk_pool_apr_createChild;
       _this->close=jk_pool_apr_close;
  @@ -160,9 +192,8 @@
       _this->calloc=jk_pool_apr_calloc;
       _this->pstrdup=jk_pool_apr_strdup;
       _this->realloc=jk_pool_apr_realloc;
  -    
  -    return JK_TRUE;
   }
  +
   
   /* Not used yet */
   int  jk_pool_apr_factory(jk_env_t *env, jk_pool_t *pool,
  
  
  
  1.11      +18 -14    jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c
  
  Index: mod_jk.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- mod_jk.c  2001/12/13 19:05:31     1.10
  +++ mod_jk.c  2001/12/14 07:14:59     1.11
  @@ -59,7 +59,7 @@
    * Description: Apache 2 plugin for Jakarta/Tomcat                         *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
    *                 Henri Gomez <[EMAIL PROTECTED]>                               *
  - * Version:     $Revision: 1.10 $                                           *
  + * Version:     $Revision: 1.11 $                                           *
    ***************************************************************************/
   
   /*
  @@ -150,7 +150,8 @@
       
       if (context[0]!='/') return "Context must start with /";
   
  -    map_put( workerEnv->init_data, context, worker, NULL );
  +    workerEnv->init_data->put( NULL, workerEnv->init_data,
  +                               context, worker, NULL );
   
       return NULL;
   }
  @@ -184,18 +185,20 @@
       /** Read worker files
        */
       l->jkLog(l, JK_LOG_DEBUG, "Reading map %s %d\n",
  -           workerEnv->worker_file, map_size( workerEnv->init_data ) );
  +             workerEnv->worker_file,
  +             workerEnv->init_data->size(NULL, workerEnv->init_data) );
       
       if( workerEnv->worker_file != NULL ) {
  -        int err=map_read_properties(workerEnv->init_data,
  -                                    workerEnv->worker_file);
  +        int err=jk_map_readFileProperties(NULL, workerEnv->init_data,
  +                                          workerEnv->worker_file);
           if( err==JK_TRUE ) {
               l->jkLog(l, JK_LOG_DEBUG, 
                      "Read map %s %d\n", workerEnv->worker_file,
  -                   map_size( workerEnv->init_data ) );
  +                     workerEnv->init_data->size( NULL, workerEnv->init_data ) );
           } else {
               l->jkLog(l, JK_LOG_ERROR, "Error reading map %s %d\n",
  -                   workerEnv->worker_file, map_size( workerEnv->init_data ) );
  +                   workerEnv->worker_file,
  +                     workerEnv->init_data->size( NULL, workerEnv->init_data ) );
           }
       }
   
  @@ -220,9 +223,9 @@
       
       jk_map_t *m=workerEnv->init_data;
       
  -    value = map_replace_properties(value, m );
  +    value = jk_map_replaceProperties(NULL, m, m->pool, value);
   
  -    oldv = map_get_string(m, name, NULL);
  +    oldv = jk_map_getString(NULL, m, name, NULL);
   
       if(oldv) {
           char *tmpv = apr_palloc(cmd->pool,
  @@ -245,7 +248,7 @@
       
       if(value) {
           void *old = NULL;
  -        map_put(m, name, value, &old);
  +        m->put(NULL, m, name, value, &old);
           /*printf("Setting %s %s\n", name, value);*/
       } 
       return NULL;
  @@ -272,7 +275,7 @@
       if (logFileA == NULL)
           return "JkLogFile file_name invalid";
   
  -    map_put( workerEnv->init_data, "logger.file.name", logFileA, NULL);
  +    workerEnv->init_data->put( NULL, workerEnv->init_data, "logger.file.name", 
logFileA, NULL);
    
       return NULL;
   }
  @@ -291,7 +294,7 @@
       jk_workerEnv_t *workerEnv =
           (jk_workerEnv_t *)ap_get_module_config(s->module_config, &jk_module);
   
  -    map_put( workerEnv->init_data, "logger.file.level", log_level, NULL);
  +    workerEnv->init_data->put( NULL, workerEnv->init_data, "logger.file.level", 
log_level, NULL);
       return NULL;
   }
   
  @@ -308,7 +311,7 @@
       jk_workerEnv_t *workerEnv =
           (jk_workerEnv_t *)ap_get_module_config(s->module_config, &jk_module);
   
  -    map_put( workerEnv->init_data, "logger.file.timeFormat", log_format, NULL);
  +    workerEnv->init_data->put( NULL, workerEnv->init_data, 
"logger.file.timeFormat", log_format, NULL);
       return NULL;
   }
   
  @@ -510,7 +513,7 @@
   
       workerEnv->envvars_in_use = JK_TRUE;
   
  -    map_put(workerEnv->envvars, env_name, default_value, NULL);
  +    workerEnv->envvars->put(NULL, workerEnv->envvars, env_name, default_value, 
NULL);
   
       return NULL;
   }
  @@ -679,6 +682,7 @@
   
       /** First create a pool
        */
  +#define NO_APACHE_POOL
   #ifdef NO_APACHE_POOL
       jk_pool_create( &globalPool, NULL, 2048 );
   #else
  
  
  

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

Reply via email to