mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Merge branch 'testnet' into block-generation
This commit is contained in:
commit
e4e77c16c5
463 changed files with 29976 additions and 2517 deletions
|
@ -50,20 +50,30 @@ class ValidatorSessionDescriptionImpl : public ValidatorSessionDescription {
|
|||
td::uint32 self_idx_;
|
||||
|
||||
static constexpr td::uint32 cache_size = (1 << 20);
|
||||
static constexpr size_t mem_chunk_size_perm = (1 << 27);
|
||||
static constexpr size_t mem_chunk_size_temp = (1 << 27);
|
||||
|
||||
struct Cached {
|
||||
const RootObject *ptr;
|
||||
};
|
||||
std::array<std::atomic<Cached>, cache_size> cache_;
|
||||
//std::array<std::atomic<Cached>, cache_size> temp_cache_;
|
||||
|
||||
td::uint8 *pdata_temp_;
|
||||
size_t pdata_temp_ptr_;
|
||||
size_t pdata_temp_size_;
|
||||
class MemPool {
|
||||
public:
|
||||
explicit MemPool(size_t chunk_size);
|
||||
~MemPool();
|
||||
void *alloc(size_t size, size_t align);
|
||||
void clear();
|
||||
bool contains(const void* ptr) const;
|
||||
|
||||
private:
|
||||
size_t chunk_size_;
|
||||
std::vector<td::uint8 *> data_;
|
||||
size_t ptr_ = 0;
|
||||
};
|
||||
MemPool mem_perm_ = MemPool(mem_chunk_size_perm);
|
||||
MemPool mem_temp_ = MemPool(mem_chunk_size_temp);
|
||||
|
||||
size_t pdata_perm_size_;
|
||||
std::vector<td::uint8 *> pdata_perm_;
|
||||
size_t pdata_perm_ptr_;
|
||||
std::atomic<td::uint64> reuse_{0};
|
||||
|
||||
public:
|
||||
|
@ -117,7 +127,7 @@ class ValidatorSessionDescriptionImpl : public ValidatorSessionDescription {
|
|||
void update_hash(const RootObject *obj, HashType hash) override;
|
||||
void *alloc(size_t size, size_t align, bool temp) override;
|
||||
void clear_temp_memory() override {
|
||||
pdata_temp_ptr_ = 0;
|
||||
mem_temp_.clear();
|
||||
}
|
||||
bool is_persistent(const void *ptr) const override;
|
||||
HashType compute_hash(td::Slice data) const override;
|
||||
|
@ -153,12 +163,6 @@ class ValidatorSessionDescriptionImpl : public ValidatorSessionDescription {
|
|||
const ValidatorSessionOptions &opts() const override {
|
||||
return opts_;
|
||||
}
|
||||
~ValidatorSessionDescriptionImpl() {
|
||||
delete[] pdata_temp_;
|
||||
for (auto &x : pdata_perm_) {
|
||||
delete[] x;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace validatorsession
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue