mirror of
https://github.com/Zygo/bees.git
synced 2025-06-17 01:56:16 +02:00
context: get rid of shared_ptr<BeesContext> in every single cached Fd object
Support for multiple BeesContext objects sharing a FdCache was wasting significant space and atomic inc/dec memory cycles for no good reason since the shared-FdCache feature was deprecated. open_root and open_root_ino still need a BeesContext to work. Pass the BeesContext pointer through the function object instead of the cache key arguments. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
15
src/bees.h
15
src/bees.h
@ -697,15 +697,16 @@ public:
|
||||
};
|
||||
|
||||
class BeesFdCache {
|
||||
LRUCache<Fd, shared_ptr<BeesContext>, uint64_t> m_root_cache;
|
||||
LRUCache<Fd, shared_ptr<BeesContext>, uint64_t, uint64_t> m_file_cache;
|
||||
Timer m_root_cache_timer;
|
||||
Timer m_file_cache_timer;
|
||||
shared_ptr<BeesContext> m_ctx;
|
||||
LRUCache<Fd, uint64_t> m_root_cache;
|
||||
LRUCache<Fd, uint64_t, uint64_t> m_file_cache;
|
||||
Timer m_root_cache_timer;
|
||||
Timer m_file_cache_timer;
|
||||
|
||||
public:
|
||||
BeesFdCache();
|
||||
Fd open_root(shared_ptr<BeesContext> ctx, uint64_t root);
|
||||
Fd open_root_ino(shared_ptr<BeesContext> ctx, uint64_t root, uint64_t ino);
|
||||
BeesFdCache(shared_ptr<BeesContext> ctx);
|
||||
Fd open_root(uint64_t root);
|
||||
Fd open_root_ino(uint64_t root, uint64_t ino);
|
||||
void clear();
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user