From 57a62bc073f623d442d5e4f5863f4c025f4b8eb2 Mon Sep 17 00:00:00 2001 From: mutouyun Date: Sun, 11 Jul 2021 13:11:09 +0800 Subject: [PATCH] fix some bugs --- src/ipc.cpp | 6 ++---- test/test_ipc.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ipc.cpp b/src/ipc.cpp index 96aecea..f4c5fa8 100755 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -112,7 +112,7 @@ struct chunk_info_t { } ipc::byte_t* at(std::size_t chunk_size, ipc::storage_id_t id) noexcept { - assert(id >= 0); + if (id < 0) return nullptr; return chunks_mem() + (chunk_size * id); } }; @@ -137,13 +137,11 @@ auto& chunk_storages() { return info; } }; - static ipc::unordered_map chunk_s; + thread_local ipc::unordered_map chunk_s; return chunk_s; } chunk_info_t *chunk_storage_info(std::size_t chunk_size) { - static std::mutex lock; - IPC_UNUSED_ std::lock_guard guard {lock}; return chunk_storages()[chunk_size].get_info(chunk_size); } diff --git a/test/test_ipc.cpp b/test/test_ipc.cpp index a76b365..45590e3 100755 --- a/test/test_ipc.cpp +++ b/test/test_ipc.cpp @@ -128,9 +128,10 @@ void test_sr(char const * name, int s_cnt, int r_cnt) { return; } ASSERT_TRUE((i >= 0) && (i < (int)data_set__.get().size())); - if (data_set__.get()[i] != got) { + auto const &data_set = data_set__.get()[i]; + if (data_set != got) { printf("data_set__.get()[%d] != got, size = %zd/%zd\n", - i, data_set__.get()[i].size(), got.size()); + i, data_set.size(), got.size()); EXPECT_TRUE(false); } } @@ -169,7 +170,7 @@ TEST(IPC, 1vN) { //test_sr("smu", 1, MultiMax); //test_sr("mmu", 1, MultiMax); test_sr("smb", 1, MultiMax); - test_sr("mmb", 1, MultiMax); + //test_sr("mmb", 1, MultiMax); } TEST(IPC, Nv1) {