Changeset 141


Ignore:
Timestamp:
2006-09-07T13:40:09+02:00 (8 years ago)
Author:
moo
Message:

fix cache clear corrupted bug

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/1.0/xcache.c

    r86 r141  
    403403            if (cache->deletes) { 
    404404                last = (xc_delete_t *) &cache->deletes; 
    405                 for (p = *last; p; p = p->next) { 
     405                for (p = *last; p; p = *last) { 
    406406                    if (t - p->dtime > 3600) { 
    407407                        p->refcount = 0; 
     
    12071207        case XC_OP_CLEAR: 
    12081208            { 
    1209                 xc_entry_t *e; 
     1209                xc_entry_t *e, *next; 
    12101210                int i, c; 
    12111211 
     
    12181218                ENTER_LOCK(cache) { 
    12191219                    for (i = 0, c = cache->hentry->size; i < c; i ++) { 
    1220                         for (e = cache->entries[i]; e; e = e->next) { 
     1220                        for (e = cache->entries[i]; e; e = next) { 
     1221                            next = e->next; 
    12211222                            xc_entry_remove_dmz(e TSRMLS_CC); 
    12221223                        } 
  • trunk/xcache.c

    r140 r141  
    343343 
    344344    pp = &cache->deletes; 
    345     for (p = *pp; p; p = p->next) { 
     345    for (p = *pp; p; p = *pp) { 
    346346        if (XG(request_time) - p->dtime > 3600) { 
    347347            p->refcount = 0; 
     
    14891489        case XC_OP_CLEAR: 
    14901490            { 
    1491                 xc_entry_t *e; 
     1491                xc_entry_t *e, *next; 
    14921492                int i, c; 
    14931493 
     
    15001500                ENTER_LOCK(cache) { 
    15011501                    for (i = 0, c = cache->hentry->size; i < c; i ++) { 
    1502                         for (e = cache->entries[i]; e; e = e->next) { 
     1502                        for (e = cache->entries[i]; e; e = next) { 
     1503                            next = e->next; 
    15031504                            xc_entry_remove_dmz(e TSRMLS_CC); 
    15041505                        } 
Note: See TracChangeset for help on using the changeset viewer.