Changeset 3362c7


Ignore:
Timestamp:
2008-12-03 17:40:45 (5 years ago)
Author:
Poul-Henning Kamp <phk@…>
Branches:
master, 3.0, 4.0, experimental-ims
Children:
d5d6c2
Parents:
ada8b3
git-author:
Poul-Henning Kamp <phk@…> (2008-12-03 17:40:45)
git-committer:
Poul-Henning Kamp <phk@…> (2008-12-03 17:40:45)
Message:

Resolve the remove/lookup race the simple way.

git-svn-id:  http://www.varnish-cache.org/svn/trunk/varnish-cache@3456 d4fa192b-c00b-0410-8231-f00ffab90ce4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • bin/varnishd/hash_critbit.c

    rada8b3 r3362c7  
    365365{ 
    366366        struct objhead *oh; 
     367        unsigned u; 
    367368         
    368369        assert(params->hash_sha256); 
     
    372373                assert(oh != noh); 
    373374                Lck_Lock(&oh->mtx); 
    374                 oh->refcnt++; 
     375                u = oh->refcnt; 
     376                if (u) 
     377                        oh->refcnt++; 
    375378                Lck_Unlock(&oh->mtx); 
    376                 VSL_stats->hcb_nolock++; 
    377                 if (0) { 
    378                         fprintf(stderr, "%s %d\n", __func__, __LINE__); 
    379                         dump(&hcb_root, stderr); 
     379                if (u) { 
     380                        VSL_stats->hcb_nolock++; 
     381                        return (oh); 
    380382                } 
    381                 return (oh); 
    382383        } 
    383384 
Note: See TracChangeset for help on using the changeset viewer.