aboutsummaryrefslogtreecommitdiffstats
path: root/src/libdcache
diff options
context:
space:
mode:
Diffstat (limited to 'src/libdcache')
-rw-r--r--src/libdcache/dcache_add.c8
-rw-r--r--src/libdcache/dcache_init.c1
-rw-r--r--src/libdcache/dcache_load.c12
3 files changed, 11 insertions, 10 deletions
diff --git a/src/libdcache/dcache_add.c b/src/libdcache/dcache_add.c
index 7260726..7e1d871 100644
--- a/src/libdcache/dcache_add.c
+++ b/src/libdcache/dcache_add.c
@@ -75,11 +75,11 @@ static inline int dcache_add_unbounded (dcache_t *z, char const *key, uint16_t k
return 1 ;
}
-int dcache_add (dcache_t *z, uint64_t max, char const *key, uint16_t keylen, char const *data, uint16_t datalen, tain const *expire, tain const *stamp)
+int dcache_add (dcache_t *z, char const *key, uint16_t keylen, char const *data, uint16_t datalen, tain const *expire, tain const *stamp)
{
uint64_t size = DCACHE_NODE_OVERHEAD + keylen + datalen ;
- if (size > max) return (errno = EINVAL, 0) ;
- if (z->size > max - size) dcache_clean_expired(z, stamp) ;
- if (z->size > max - size) dcache_gc_by_entry(z, max - size) ;
+ if (size > z->max) return (errno = EINVAL, 0) ;
+ if (z->size > z->max - size) dcache_clean_expired(z, stamp) ;
+ if (z->size > z->max - size) dcache_gc_by_entry(z, z->max - size) ;
return dcache_add_unbounded(z, key, keylen, data, datalen, expire, stamp) ;
}
diff --git a/src/libdcache/dcache_init.c b/src/libdcache/dcache_init.c
index d42ec62..91c529e 100644
--- a/src/libdcache/dcache_init.c
+++ b/src/libdcache/dcache_init.c
@@ -50,6 +50,7 @@ void dcache_init (dcache_t *z, uint64_t max)
avltree_init(&z->by_key, max >> 9, 3, 8, &key_dtok, &key_cmp, &z->storage) ;
avltree_init(&z->by_entry, max >> 9, 3, 8, &entry_dtok, &tain_cmp, &z->storage) ;
avltree_init(&z->by_expire, max >> 9, 3, 8, &expire_dtok, &tain_cmp, &z->storage) ;
+ z->max = max ;
z->size = 0 ;
z->motion = 0 ;
}
diff --git a/src/libdcache/dcache_load.c b/src/libdcache/dcache_load.c
index d1b9274..176a722 100644
--- a/src/libdcache/dcache_load.c
+++ b/src/libdcache/dcache_load.c
@@ -14,7 +14,7 @@
#include <skalibs/posixishard.h>
-static inline int dcache_load_node (dcache_t *z, uint64_t max, buffer *b)
+static inline int dcache_load_node (dcache_t *z, buffer *b)
{
tain entry = { .nano = 0 } ;
tain expire = { .nano = 0 } ;
@@ -35,12 +35,12 @@ static inline int dcache_load_node (dcache_t *z, uint64_t max, buffer *b)
if (!r) return (errno = EPIPE, -1) ;
if (r < len) return -1 ;
if (blob[len]) return (errno = EPROTO, -1) ;
- if (!dcache_add(z, max, blob, keylen, blob + keylen, datalen, &expire, &entry)) return -1 ;
+ if (!dcache_add(z, blob, keylen, blob + keylen, datalen, &expire, &entry)) return -1 ;
}
return 1 ;
}
-static inline int dcache_load_from_buffer (dcache_t *z, uint64_t max, buffer *b)
+static inline int dcache_load_from_buffer (dcache_t *z, buffer *b)
{
{
char banner[sizeof(DCACHE_MAGIC) - 1] ;
@@ -55,7 +55,7 @@ static inline int dcache_load_from_buffer (dcache_t *z, uint64_t max, buffer *b)
}
for (;;)
{
- int r = dcache_load_node(z, max, b) ;
+ int r = dcache_load_node(z, b) ;
if (r < 0) return 0 ;
if (!r) break ;
}
@@ -64,14 +64,14 @@ static inline int dcache_load_from_buffer (dcache_t *z, uint64_t max, buffer *b)
#define N 8192
-int dcache_load (dcache_t *z, uint64_t max, char const *file)
+int dcache_load (dcache_t *z, char const *file)
{
char buf[N] ;
buffer b ;
int fd = open_readb(file) ;
if (fd == -1) return 0 ;
buffer_init(&b, &buffer_read, fd, buf, N) ;
- if (!dcache_load_from_buffer(z, max, &b)) goto err ;
+ if (!dcache_load_from_buffer(z, &b)) goto err ;
fd_close(fd) ;
return 1 ;