diff --git a/emper/strategies/AbstractWorkStealingScheduler.cpp b/emper/strategies/AbstractWorkStealingScheduler.cpp index 0dbfb91c619057a030131c791710359ea76d052c..310131debd45f7d5acccb555e9f284681f6a39ad 100644 --- a/emper/strategies/AbstractWorkStealingScheduler.cpp +++ b/emper/strategies/AbstractWorkStealingScheduler.cpp @@ -294,6 +294,9 @@ auto AbstractWorkStealingScheduler::pushBottom(AbstractFiber& fiber) -> bool { uint64_t queueLength = pushed.size; awss::stats.recordScheduledToLocalAndQueueLength(queueLength); } + } else if (!queueFullWarningEmitted) { + queueFullWarningEmitted = true; + LOGW("Pushing to queue failed: Queue full"); } return pushed; } diff --git a/emper/strategies/AbstractWorkStealingScheduler.hpp b/emper/strategies/AbstractWorkStealingScheduler.hpp index 35f808937305384e206aefbf1de1704712e6e07c..9afead16bce5c3356b5b20bcad64c5363b6b6a99 100644 --- a/emper/strategies/AbstractWorkStealingScheduler.hpp +++ b/emper/strategies/AbstractWorkStealingScheduler.hpp @@ -28,6 +28,8 @@ class AbstractWorkStealingScheduler : public Scheduler { auto nextFiberViaAnywhereQueue() -> std::optional<NextFiberResult>; auto tryStealFiberFrom(workerid_t victim) -> std::optional<NextFiberResult>; + bool queueFullWarningEmitted = false; + protected: WsQueue<QUEUE_SIZE>** queues; static thread_local WsQueue<QUEUE_SIZE> queue;