Changeset 739
- Timestamp:
- 03/03/08 05:08:31 (21 months ago)
- Location:
- trunk/server
- Files:
-
- 5 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/server/items.c
r738 r739 145 145 void item_free(item *it) { 146 146 size_t ntotal = ITEM_ntotal(it); 147 unsigned int clsid; 147 148 assert((it->it_flags & ITEM_LINKED) == 0); 148 149 assert(it != heads[it->slabs_clsid]); … … 151 152 152 153 /* so slab size changer can tell later if item is already free or not */ 154 clsid = it->slabs_clsid; 153 155 it->slabs_clsid = 0; 154 156 it->it_flags |= ITEM_SLABBED; 155 157 DEBUG_REFCNT(it, 'F'); 156 slabs_free(it, ntotal );158 slabs_free(it, ntotal, clsid); 157 159 } 158 160 -
trunk/server/memcached.h
r738 r739 293 293 void mt_run_deferred_deletes(void); 294 294 void *mt_slabs_alloc(size_t size, unsigned int id); 295 void mt_slabs_free(void *ptr, size_t size );295 void mt_slabs_free(void *ptr, size_t size, unsigned int id); 296 296 int mt_slabs_reassign(unsigned char srcid, unsigned char dstid); 297 297 char *mt_slabs_stats(int *buflen); … … 322 322 # define run_deferred_deletes() mt_run_deferred_deletes() 323 323 # define slabs_alloc(x,y) mt_slabs_alloc(x,y) 324 # define slabs_free(x,y ) mt_slabs_free(x,y)324 # define slabs_free(x,y,z) mt_slabs_free(x,y,z) 325 325 # define slabs_reassign(x,y) mt_slabs_reassign(x,y) 326 326 # define slabs_stats(x) mt_slabs_stats(x) … … 355 355 # define run_deferred_deletes() do_run_deferred_deletes() 356 356 # define slabs_alloc(x,y) do_slabs_alloc(x,y) 357 # define slabs_free(x,y ) do_slabs_free(x,y)357 # define slabs_free(x,y,z) do_slabs_free(x,y,z) 358 358 # define slabs_reassign(x,y) do_slabs_reassign(x,y) 359 359 # define slabs_stats(x) do_slabs_stats(x) -
trunk/server/slabs.c
r738 r739 258 258 } 259 259 260 void do_slabs_free(void *ptr, const size_t size) { 261 unsigned char id = slabs_clsid(size); 260 void do_slabs_free(void *ptr, const size_t size, unsigned int id) { 262 261 slabclass_t *p; 263 262 -
trunk/server/slabs.h
r738 r739 21 21 22 22 /** Free previously allocated object */ 23 void do_slabs_free(void *ptr, size_t size );23 void do_slabs_free(void *ptr, size_t size, unsigned int id); 24 24 25 25 /** Fill buffer with stats */ /*@null@*/ -
trunk/server/thread.c
r738 r739 581 581 } 582 582 583 void mt_slabs_free(void *ptr, size_t size ) {583 void mt_slabs_free(void *ptr, size_t size, unsigned int id) { 584 584 pthread_mutex_lock(&slabs_lock); 585 do_slabs_free(ptr, size );585 do_slabs_free(ptr, size, id); 586 586 pthread_mutex_unlock(&slabs_lock); 587 587 }
