Skip to content

EntropyEngine::Core::Concurrency::NodeDeferredEvent

EntropyEngine::Core::Concurrency::NodeDeferredEvent

Section titled “EntropyEngine::Core::Concurrency::NodeDeferredEvent”

Work queue is full - this node has to wait. More…

#include <WorkGraphEvents.h>

Inherits from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
NodeDeferredEvent(const WorkGraph * g, NodeHandle n, size_t depth)
Name
size_tqueueDepth
How many nodes are waiting in deferred queue.
NodeHandlenode
The node that couldn’t be scheduled.

Public Functions inherited from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
WorkGraphEvent(const WorkGraph * g)

Public Attributes inherited from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
std::chrono::steady_clock::time_pointtimestamp
When this event was created.
const WorkGraph *graph
Which graph emitted this event.
struct EntropyEngine::Core::Concurrency::NodeDeferredEvent;

Work queue is full - this node has to wait.

When the WorkContractGroup is at capacity, ready nodes get deferred instead of dropped. This event lets you monitor back-pressure in your system. High deferral rates suggest you need more worker threads or smaller work items.

eventBus->subscribe<NodeDeferredEvent>([](const auto& event) {
LOG_WARN("Node {} deferred - queue depth: {}",
event.node.getData()->name, event.queueDepth);
if (event.queueDepth > 100) {
LOG_ERROR("Severe backlog detected!");
}
});
inline NodeDeferredEvent(
const WorkGraph * g,
NodeHandle n,
size_t depth
)
size_t queueDepth;

How many nodes are waiting in deferred queue.

NodeHandle node;

The node that couldn’t be scheduled.


Updated on 2026-01-26 at 17:14:35 -0500