Squid internals The Storage Manager (src/store*.c) Marking a StoreEntry for release when it is finished being used storeRelease(StoreEntry *) Attempt to release the object - if the object is being used, call storeReleaseRequest() storeReleaseRequest(StoreEntry *) Clear the cacheable flag, set the release request flag, and set the store key private Referencing / derefencing a StoreEntry storeLockObject(StoreEntry *) storeUnlockObject(StoreEntry *) If there are no pending clients and the release flag is set, call storeRelease()