diff --git a/src/cam/event_loop.cpp b/src/cam/event_loop.cpp
index 94c5d1d362455f33..34a55da30c537ac7 100644
--- a/src/cam/event_loop.cpp
+++ b/src/cam/event_loop.cpp
@@ -62,7 +62,7 @@ void EventLoop::interrupt()
 
 void EventLoop::callLater(const std::function<void()> &func)
 {
-	{
+	if (!exit_.load(std::memory_order_acquire)) {
 		std::unique_lock<std::mutex> locker(lock_);
 		calls_.push_back(func);
 	}
