cvs: /php4/ext/session mod_mm.c php_session.h session.c

From: Date: Wed, 29 Mar 2000 20:37:59 +0000
Subject: cvs: /php4/ext/session mod_mm.c php_session.h session.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-12831@lists.php.net to get a copy of this message
sas Wed Mar 29 12:37:59 2000 EDT Modified files: /php4/ext/session mod_mm.c php_session.h session.c Log: GC now prints out how many session objects were removed Index: php4/ext/session/mod_mm.c diff -u php4/ext/session/mod_mm.c:1.6 php4/ext/session/mod_mm.c:1.7 --- php4/ext/session/mod_mm.c:1.6 Sat Feb 19 15:41:19 2000 +++ php4/ext/session/mod_mm.c Wed Mar 29 12:37:29 2000 @@ -305,6 +305,7 @@ time_t now; ps_sd *sd, *next; + *nrdels = 0; ps_mm_debug("gc\n"); mm_lock(data->mm, MM_LOCK_RW); @@ -315,8 +316,10 @@ for (sd = data->hash[h]; sd; sd = next) { next = sd->next; ps_mm_debug("looking at %s\n", sd->key); - if ((now - sd->ctime) > maxlifetime) + if ((now - sd->ctime) > maxlifetime) { ps_sd_destroy(data, sd); + *nrdels++; + } } mm_unlock(data->mm); Index: php4/ext/session/php_session.h diff -u php4/ext/session/php_session.h:1.28 php4/ext/session/php_session.h:1.29 --- php4/ext/session/php_session.h:1.28 Mon Mar 13 07:49:13 2000 +++ php4/ext/session/php_session.h Wed Mar 29 12:37:29 2000 @@ -35,7 +35,7 @@ #define PS_READ_ARGS void **mod_data, const char *key, char **val, int *vallen #define PS_WRITE_ARGS void **mod_data, const char *key, const char *val, const int vallen #define PS_DESTROY_ARGS void **mod_data, const char *key -#define PS_GC_ARGS void **mod_data, int maxlifetime +#define PS_GC_ARGS void **mod_data, int maxlifetime, int *nrdels typedef struct ps_module_struct { const char *name; Index: php4/ext/session/session.c diff -u php4/ext/session/session.c:1.121 php4/ext/session/session.c:1.122 --- php4/ext/session/session.c:1.121 Wed Mar 29 01:36:27 2000 +++ php4/ext/session/session.c Wed Mar 29 12:37:29 2000 @@ -813,10 +813,15 @@ _php_session_initialize(PSLS_C); if (PS(mod_data) && PS(gc_probability) > 0) { + int nrdels = -1; + srand(time(NULL)); nrand = (int) (100.0*rand()/RAND_MAX); - if (nrand < PS(gc_probability)) - PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime)); + if (nrand < PS(gc_probability)) { + PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime), &nrdels); + if (nrdels != -1) + php_error(E_NOTICE, "Session gc: cleared %d\n", nrdels); + } } }

« previous php.version4 (#12831) next »