Skip to content

Commit c40d7ce

Browse files
committed
refactor: inline shm cleanup callback into atexit registration
CleanupParentShmRegions was only referenced as the std::atexit callback inside RegisterParentShmRegion. Inline it as a capture-less lambda so the teardown logic lives next to the registration and there's one fewer top-level helper in the anonymous namespace. No behavior change.
1 parent 39096f6 commit c40d7ce

1 file changed

Lines changed: 7 additions & 11 deletions

File tree

src/shm_manager.cc

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,6 @@ std::mutex parent_shm_regions_mu;
4343
std::unordered_set<std::string> parent_shm_regions;
4444
std::atomic<bool> parent_shm_atexit_registered{false};
4545

46-
void
47-
CleanupParentShmRegions()
48-
{
49-
std::lock_guard<std::mutex> lock(parent_shm_regions_mu);
50-
for (const auto& region : parent_shm_regions) {
51-
bi::shared_memory_object::remove(region.c_str());
52-
}
53-
parent_shm_regions.clear();
54-
}
55-
5646
void
5747
RegisterParentShmRegion(const std::string& shm_region_name)
5848
{
@@ -61,7 +51,13 @@ RegisterParentShmRegion(const std::string& shm_region_name)
6151
parent_shm_regions.insert(shm_region_name);
6252
}
6353
if (!parent_shm_atexit_registered.exchange(true)) {
64-
if (std::atexit(CleanupParentShmRegions) != 0) {
54+
if (std::atexit([]() {
55+
std::lock_guard<std::mutex> lock(parent_shm_regions_mu);
56+
for (const auto& region : parent_shm_regions) {
57+
bi::shared_memory_object::remove(region.c_str());
58+
}
59+
parent_shm_regions.clear();
60+
}) != 0) {
6561
std::cerr << "python_backend: failed to register atexit shm cleanup "
6662
"handler; relying on TerminateStub for cleanup"
6763
<< std::endl;

0 commit comments

Comments
 (0)