From b2f10371b47a1b35889702555575ed513cd8783a Mon Sep 17 00:00:00 2001 From: xbli10 Date: Wed, 18 Jun 2025 18:02:42 +0800 Subject: [PATCH] bugfix: throw runtime error early on sem_open fail Signed-off-by: xbli10 --- src/fuse/IoRing.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fuse/IoRing.h b/src/fuse/IoRing.h index b7d022c..92ef133 100644 --- a/src/fuse/IoRing.h +++ b/src/fuse/IoRing.h @@ -218,7 +218,11 @@ struct IoRingTable { void init(int cap) { for (int prio = 0; prio <= 2; ++prio) { auto sp = "/" + semOpenPath(prio); - sems.emplace_back(sem_open(sp.c_str(), O_CREAT, 0666, 0), [sp](sem_t *p) { + auto ptr = sem_open(sp.c_str(), O_CREAT, 0666, 0); + if (SEM_FAILED == ptr) { + throw std::runtime_error(fmt::format("Failed create a named semaphore, name {}", sp.c_str())); + } + sems.emplace_back(ptr, [sp](sem_t *p) { sem_close(p); sem_unlink(sp.c_str()); });