From ef2825148101449c598a36ed0aefbee5fc0ee356 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 14 Apr 2025 14:01:51 +0300 Subject: Various improvements. --- tdutils/td/utils/ChainScheduler.h | 2 +- tdutils/td/utils/ConcurrentHashTable.h | 8 ++++++-- tdutils/td/utils/FlatHashMapChunks.h | 2 +- tdutils/test/ChainScheduler.cpp | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) (limited to 'tdutils') diff --git a/tdutils/td/utils/ChainScheduler.h b/tdutils/td/utils/ChainScheduler.h index 9d6bce64f..10dc96122 100644 --- a/tdutils/td/utils/ChainScheduler.h +++ b/tdutils/td/utils/ChainScheduler.h @@ -138,7 +138,7 @@ class ChainScheduler final : public ChainSchedulerBase { struct Task { enum class State { Pending, Active, Paused } state{State::Pending}; vector chains; - ExtraT extra; + ExtraT extra{}; }; FlatHashMap> chains_; FlatHashMap limited_tasks_; diff --git a/tdutils/td/utils/ConcurrentHashTable.h b/tdutils/td/utils/ConcurrentHashTable.h index b7bad15a7..dab06fc61 100644 --- a/tdutils/td/utils/ConcurrentHashTable.h +++ b/tdutils/td/utils/ConcurrentHashTable.h @@ -209,12 +209,15 @@ class ConcurrentHashMap { int migrate_generation_{0}; HashMap *migrate_from_hash_map_{nullptr}; HashMap *migrate_to_hash_map_{nullptr}; + struct Task { size_t begin; size_t end; + bool empty() const { return begin >= end; } + size_t size() const { if (empty()) { return 0; @@ -224,9 +227,10 @@ class ConcurrentHashMap { }; struct TaskCreator { - size_t chunk_size; - size_t size; + size_t chunk_size{0}; + size_t size{0}; std::atomic pos{0}; + Task create() { auto i = pos++; auto begin = i * chunk_size; diff --git a/tdutils/td/utils/FlatHashMapChunks.h b/tdutils/td/utils/FlatHashMapChunks.h index 35a7aee6a..97f822bd5 100644 --- a/tdutils/td/utils/FlatHashMapChunks.h +++ b/tdutils/td/utils/FlatHashMapChunks.h @@ -68,7 +68,7 @@ struct MaskPortable { static MaskIterator<1> equal_mask(uint8 *bytes, uint8 needle) { uint64 res = 0; for (int i = 0; i < 16; i++) { - res |= (bytes[i] == needle) << i; + res |= static_cast(bytes[i] == needle) << i; } return {res & ((1u << 14) - 1)}; } diff --git a/tdutils/test/ChainScheduler.cpp b/tdutils/test/ChainScheduler.cpp index 19df4f8ce..d338eeccd 100644 --- a/tdutils/test/ChainScheduler.cpp +++ b/tdutils/test/ChainScheduler.cpp @@ -109,7 +109,7 @@ TEST(ChainScheduler, Stress) { int ChainsN = 4; struct QueryWithParents { - TaskId task_id; + TaskId task_id = -1; QueryPtr id; td::vector parents; }; -- cgit v1.2.3