Skip to content

EntropyEngine::Core::Concurrency::DependencyResolvedEvent

EntropyEngine::Core::Concurrency::DependencyResolvedEvent

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

One step closer - a parent completed and child’s dependency count dropped. More…

#include <WorkGraphEvents.h>

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

Name
DependencyResolvedEvent(const WorkGraph * g, NodeHandle parent, NodeHandle child, uint32_t remaining)
Name
NodeHandleto
Child being notified.
uint32_tremainingDependencies
How many more parents must complete.
NodeHandlefrom
Parent that just completed.

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::DependencyResolvedEvent;

One step closer - a parent completed and child’s dependency count dropped.

This granular event fires each time a parent node completes and decrements a child’s dependency counter. When remainingDependencies reaches zero, the child becomes ready. Useful for understanding the cascade of execution.

eventBus->subscribe<DependencyResolvedEvent>([](const auto& event) {
LOG_DEBUG("{} completed, {} now has {} dependencies left",
event.from.getData()->name,
event.to.getData()->name,
event.remainingDependencies);
if (event.remainingDependencies == 0) {
LOG_INFO("{} is now ready!", event.to.getData()->name);
}
});
inline DependencyResolvedEvent(
const WorkGraph * g,
NodeHandle parent,
NodeHandle child,
uint32_t remaining
)
NodeHandle to;

Child being notified.

uint32_t remainingDependencies;

How many more parents must complete.

NodeHandle from;

Parent that just completed.


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