costin      01/12/07 15:10:34

  Modified:    jk/native2/include jk_endpoint.h jk_objCache.h jk_worker.h
  Log:
  Finish jk_objCache, start using it in jk_worker.
  
  ( the code is moved from ajp13_worker ). I added it to lb_worker, not yet to
  jni - but it may be usefull in few other places as well.
  
  Make sure the 'per connection' pool in endpoint is different from the
  'main' pool ( that has the same life as the endpoint ).
  
  It seems the objCache code is a bit inefficient, I don't know why it works
  the way it does ( it could just be a stack ).
  
  Revision  Changes    Path
  1.4       +9 -3      jakarta-tomcat-connectors/jk/native2/include/jk_endpoint.h
  
  Index: jk_endpoint.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_endpoint.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_endpoint.h     2001/12/06 22:48:49     1.3
  +++ jk_endpoint.h     2001/12/07 23:10:34     1.4
  @@ -61,7 +61,7 @@
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           
    * Author:      Dan Milstein <[EMAIL PROTECTED]>                            
    * Author:      Henri Gomez <[EMAIL PROTECTED]>                               
  - * Version:     $Revision: 1.3 $                                          
  + * Version:     $Revision: 1.4 $                                          
    ***************************************************************************/
   
   #ifndef JK_ENDPOINT_H
  @@ -127,9 +127,15 @@
   
       struct jk_worker *worker;
   
  -    /** Each thread has it's own endpoint instance and is recycled.
  -        This pool can be unsynchronized */ 
  +    /** 'main' pool for this endpoint. Used to store properties of the
  +        endpoint. Will be alive until the endpoint is destroyed.
  +    */
       jk_pool_t *pool;
  +
  +    /** Connection pool. Used to store temporary data. It'll be
  +        recycled after each transaction.
  +    */
  +    jk_pool_t *cPool;
       
       int proto;       /* PROTOCOL USED AJP13/AJP14 */
   
  
  
  
  1.2       +13 -0     jakarta-tomcat-connectors/jk/native2/include/jk_objCache.h
  
  Index: jk_objCache.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_objCache.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_objCache.h     2001/12/06 22:40:41     1.1
  +++ jk_objCache.h     2001/12/07 23:10:34     1.2
  @@ -69,7 +69,14 @@
   #endif /* __cplusplus */
   
   struct jk_objCache;
  +struct jk_logger;
  +struct jk_pool;
   typedef struct jk_objCache jk_objCache_t;
  +
  +#define JK_OBJCACHE_DEFAULT_SZ          (128)
  +
  +    
  +jk_objCache_t *jk_objCache_create(struct jk_pool *pool, struct jk_logger *l );
       
   /**
    * Simple object cache ( or pool for java people - don't confuse with the
  @@ -92,10 +99,16 @@
   
       void *(*get)(jk_objCache_t *_this);
   
  +    int (*init)(jk_objCache_t *_this, int cacheSize);
  +
  +    int (*destroy)(jk_objCache_t *_this);
  +
       /* private, move to impl ( if any other impl is available) */
       int ep_cache_sz;
       JK_CRIT_SEC cs;
       void **ep_cache;
  +    struct jk_logger *l;
  +    struct jk_pool *pool;
   };
       
   #ifdef __cplusplus
  
  
  
  1.5       +11 -5     jakarta-tomcat-connectors/jk/native2/include/jk_worker.h
  
  Index: jk_worker.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_worker.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_worker.h       2001/12/06 22:48:49     1.4
  +++ jk_worker.h       2001/12/07 23:10:34     1.5
  @@ -58,7 +58,7 @@
   /***************************************************************************
    * Description: Workers controller header file                             *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           * 
  - * Version:     $Revision: 1.4 $                                           *
  + * Version:     $Revision: 1.5 $                                           *
    ***************************************************************************/
   
   #ifndef JK_WORKER_H
  @@ -70,6 +70,7 @@
   #include "jk_map.h"
   #include "jk_mt.h"
   #include "jk_uriMap.h"
  +#include "jk_objCache.h"
   
   #ifdef __cplusplus
   extern "C" {
  @@ -78,6 +79,7 @@
   struct jk_worker;
   struct jk_endpoint;
   struct jk_env;
  +struct jk_objCache;
   typedef struct jk_worker jk_worker_t;
   
       
  @@ -194,7 +196,11 @@
          sort out after */
       struct sockaddr_in worker_inet_addr; /* Contains host and port */
       int connect_retry_attempts;
  - 
  +
  +    /** Reuse the endpoint and it's connection
  +     */
  +    struct jk_objCache *endpointCache;
  +    
       /* 
        * Open connections cache...
        *
  @@ -202,9 +208,9 @@
        * 2. Cache size. 
        * 3. An array of "open" endpoints.
        */
  -    JK_CRIT_SEC cs;
  -    int ep_cache_sz;
  -    struct jk_endpoint **ep_cache;
  +    /*     JK_CRIT_SEC cs; */
  +    /*     int ep_cache_sz; */
  +    /*     struct jk_endpoint **ep_cache; */
   
       int proto;
       struct jk_login_service *login;
  
  
  

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

Reply via email to