hi all,these days i am studying the sourcecode of the memcached,now i have some
questions about the memcached.in item_get function,this function calls the
do_item_get_notedeleted function,the do_item_get_notedeleted function checks
whethter the item is expired,if item has expired then calls the do_item_unlink
function,the do_item_unlink set the item's flag ~ITEM_LINKED,and calls the
assoc_delete to delete the item from the hash table,then calls the
item_unlink_q function,the item_unlink_q function delete the item from the
global variant heads and tails according to the item's slabs_clsid,when the
item_unlink_q function returns,the do_item_unlink function then check the
item's refcount,if the refcount is equal to zero then calls item_free function
to release the item's memory to freelist or memory poll.so i have a question
,if the refcount is larger than zero?what will happen? the item has been
deleted from the hash table already,but not has returned its memory back.if the
refcount is larger than zero,i think it should be just dec the refcount ,but
the source code is not.i am from china,wish your answern:)thank you
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/