diff options
-rw-r--r-- | items.c | 4 | ||||
-rw-r--r-- | memcached.h | 6 | ||||
-rw-r--r-- | slabs.c | 3 | ||||
-rw-r--r-- | slabs.h | 2 | ||||
-rw-r--r-- | thread.c | 4 |
5 files changed, 9 insertions, 10 deletions
@@ -88,7 +88,7 @@ item *do_item_alloc(char *key, const size_t nkey, const int flags, const rel_tim if (id == 0) return 0; - it = slabs_alloc(ntotal); + it = slabs_alloc(ntotal, id); if (it == 0) { int tries = 50; item *search; @@ -119,7 +119,7 @@ item *do_item_alloc(char *key, const size_t nkey, const int flags, const rel_tim break; } } - it = slabs_alloc(ntotal); + it = slabs_alloc(ntotal, id); if (it == 0) return NULL; } diff --git a/memcached.h b/memcached.h index 7fe473a..6c70276 100644 --- a/memcached.h +++ b/memcached.h @@ -291,7 +291,7 @@ char *mt_item_stats_sizes(int *bytes); void mt_item_unlink(item *it); void mt_item_update(item *it); void mt_run_deferred_deletes(void); -void *mt_slabs_alloc(size_t size); +void *mt_slabs_alloc(size_t size, unsigned int id); void mt_slabs_free(void *ptr, size_t size); int mt_slabs_reassign(unsigned char srcid, unsigned char dstid); char *mt_slabs_stats(int *buflen); @@ -320,7 +320,7 @@ int mt_store_item(item *item, int comm); # define item_update(x) mt_item_update(x) # define item_unlink(x) mt_item_unlink(x) # define run_deferred_deletes() mt_run_deferred_deletes() -# define slabs_alloc(x) mt_slabs_alloc(x) +# define slabs_alloc(x,y) mt_slabs_alloc(x,y) # define slabs_free(x,y) mt_slabs_free(x,y) # define slabs_reassign(x,y) mt_slabs_reassign(x,y) # define slabs_stats(x) mt_slabs_stats(x) @@ -353,7 +353,7 @@ int mt_store_item(item *item, int comm); # define item_unlink(x) do_item_unlink(x) # define item_update(x) do_item_update(x) # define run_deferred_deletes() do_run_deferred_deletes() -# define slabs_alloc(x) do_slabs_alloc(x) +# define slabs_alloc(x,y) do_slabs_alloc(x,y) # define slabs_free(x,y) do_slabs_free(x,y) # define slabs_reassign(x,y) do_slabs_reassign(x,y) # define slabs_stats(x) do_slabs_stats(x) @@ -218,10 +218,9 @@ static int do_slabs_newslab(const unsigned int id) { } /*@null@*/ -void *do_slabs_alloc(const size_t size) { +void *do_slabs_alloc(const size_t size, unsigned int id) { slabclass_t *p; - unsigned int id = slabs_clsid(size); if (id < POWER_SMALLEST || id > power_largest) return NULL; @@ -17,7 +17,7 @@ void slabs_init(const size_t limit, const double factor, const bool prealloc); unsigned int slabs_clsid(const size_t size); /** Allocate object of given length. 0 on error */ /*@null@*/ -void *do_slabs_alloc(const size_t size); +void *do_slabs_alloc(const size_t size, unsigned int id); /** Free previously allocated object */ void do_slabs_free(void *ptr, size_t size); @@ -571,11 +571,11 @@ void mt_assoc_move_next_bucket() { /******************************* SLAB ALLOCATOR ******************************/ -void *mt_slabs_alloc(size_t size) { +void *mt_slabs_alloc(size_t size, unsigned int id) { void *ret; pthread_mutex_lock(&slabs_lock); - ret = do_slabs_alloc(size); + ret = do_slabs_alloc(size, id); pthread_mutex_unlock(&slabs_lock); return ret; } |