diff --git a/xcache.c b/xcache.c index 8b8e3dc..9ea3184 100644 --- a/xcache.c +++ b/xcache.c @@ -230,6 +230,9 @@ static xc_entry_t *xc_entry_find_dmz(xc_entry_t *xce TSRMLS_DC) /* {{{ */ /* }}} */ static void xc_entry_hold_php_dmz(xc_entry_t *xce TSRMLS_DC) /* {{{ */ { +#ifdef DEBUG + fprintf(stderr, "hold %s\n", ZSTR_S(xce->name)); +#endif xce->refcount ++; xc_stack_push(&XG(php_holds)[xce->cache->cacheid], (void *)xce); } @@ -584,11 +587,17 @@ static inline void xc_entry_unholds_real(xc_stack_t *holds, xc_cache_t **caches, for (i = 0; i < cachecount; i ++) { s = &holds[i]; +#ifdef DEBUG + fprintf(stderr, "holded %d\n", xc_stack_size(s)); +#endif if (xc_stack_size(s)) { cache = ((xc_entry_t *)xc_stack_top(s))->cache; ENTER_LOCK(cache) { - while (xc_stack_size(holds)) { - xce = (xc_entry_t*) xc_stack_pop(holds); + while (xc_stack_size(s)) { + xce = (xc_entry_t*) xc_stack_pop(s); +#ifdef DEBUG + fprintf(stderr, "unhold %s\n", ZSTR_S(xce->name)); +#endif xce->refcount --; assert(xce->refcount >= 0); }