Extract multilist_alloc_t

This commit is contained in:
Vitaliy Filippov
2025-11-23 19:08:23 +03:00
parent 1ccb241eef
commit 229c19dee4
6 changed files with 306 additions and 287 deletions
+1 -17
View File
@@ -12,6 +12,7 @@
#include "../client/object_id.h"
#include "../../cpp-btree/btree_map.h"
#include "blockstore_disk.h"
#include "multilist.h"
struct pool_shard_settings_t
{
@@ -110,23 +111,6 @@ struct heap_inflight_lsn_t
uint64_t flags;
};
struct multilist_alloc_t
{
const uint32_t count, maxn;
std::vector<int32_t> sizes;
std::vector<uint32_t> nexts, prevs, heads;
multilist_alloc_t(uint32_t count, uint32_t maxn);
bool is_free(uint32_t pos);
uint32_t find(uint32_t size);
void use_full(uint32_t pos);
void use(uint32_t pos, uint32_t size);
void do_free(uint32_t pos);
void free(uint32_t pos);
void verify();
void print();
};
class blockstore_heap_t
{
friend class heap_write_t;