diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-02-06 12:40:03 +1100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-02-10 15:38:31 -0800 |
commit | 7842b391b9ad1f6aaa77c0b8397e1dcc0b79e7e7 (patch) | |
tree | 3821d65069f3166220ae07686160269af0cfdbc5 /source3/lib | |
parent | 54fc99e04b3475a9cc04274fa365edbd700d3491 (diff) | |
download | samba-7842b391b9ad1f6aaa77c0b8397e1dcc0b79e7e7.tar.gz samba-7842b391b9ad1f6aaa77c0b8397e1dcc0b79e7e7.tar.bz2 samba-7842b391b9ad1f6aaa77c0b8397e1dcc0b79e7e7.zip |
s3-memcache: update memcache to use new DLIST macros
we don't need a separate lru pointer any more
(cherry picked from commit 4ffd7aca3e38728077bd80c2a65c4efbcfd216fc)
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/memcache.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/source3/lib/memcache.c b/source3/lib/memcache.c index 606d72ab5a..5c4bafa17d 100644 --- a/source3/lib/memcache.c +++ b/source3/lib/memcache.c @@ -31,7 +31,7 @@ struct memcache_element { }; struct memcache { - struct memcache_element *mru, *lru; + struct memcache_element *mru; struct rb_root tree; size_t size; size_t max_size; @@ -161,16 +161,7 @@ bool memcache_lookup(struct memcache *cache, enum memcache_number n, } if (cache->size != 0) { - /* - * Do LRU promotion only when we will ever shrink - */ - if (e == cache->lru) { - cache->lru = e->prev; - } DLIST_PROMOTE(cache->mru, e); - if (cache->mru == NULL) { - cache->mru = e; - } } memcache_element_parse(e, &key, value); @@ -201,9 +192,6 @@ static void memcache_delete_element(struct memcache *cache, { rb_erase(&e->rb_node, &cache->tree); - if (e == cache->lru) { - cache->lru = e->prev; - } DLIST_REMOVE(cache->mru, e); if (memcache_is_talloc(e->n)) { @@ -227,8 +215,8 @@ static void memcache_trim(struct memcache *cache) return; } - while ((cache->size > cache->max_size) && (cache->lru != NULL)) { - memcache_delete_element(cache, cache->lru); + while ((cache->size > cache->max_size) && DLIST_TAIL(cache->mru)) { + memcache_delete_element(cache, DLIST_TAIL(cache->mru)); } } @@ -331,9 +319,6 @@ void memcache_add(struct memcache *cache, enum memcache_number n, rb_insert_color(&e->rb_node, &cache->tree); DLIST_ADD(cache->mru, e); - if (cache->lru == NULL) { - cache->lru = e; - } cache->size += element_size; memcache_trim(cache); |