Skip to content

EntropyEngine::Core::Concurrency::WorkGraphStats

EntropyEngine::Core::Concurrency::WorkGraphStats

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

Real-time metrics for your executing workflow - watch the action unfold. More…

#include <WorkGraphTypes.h>

Name
structSnapshot
Frozen moment in time - all stats captured atomically.
Name
SnapshottoSnapshot() const
Capture all statistics in one consistent snapshot.
Name
std::atomic< uint32_t >totalNodes
How many nodes exist in the graph.
std::chrono::steady_clock::durationtotalExecutionTime
Total wall time.
std::atomic< uint32_t >scheduledNodes
In the work queue.
std::atomic< uint32_t >readyNodes
Ready but not yet scheduled.
std::atomic< uint32_t >pendingNodes
Waiting for dependencies.
std::atomic< size_t >memoryUsage
Approximate memory consumption.
std::atomic< uint32_t >failedNodes
Nodes that threw exceptions.
std::atomic< uint32_t >executingNodes
Currently running.
std::atomic< uint32_t >completedNodes
Successfully finished nodes.
std::atomic< uint32_t >cancelledNodes
Nodes skipped due to parent failure.
struct EntropyEngine::Core::Concurrency::WorkGraphStats;

Real-time metrics for your executing workflow - watch the action unfold.

These statistics are updated atomically as your graph executes, giving you a live view of what’s happening. Since multiple threads update these counters simultaneously, they might be slightly inconsistent if read individually.

That’s why we provide toSnapshot() - it grabs all values at once for a coherent view. Perfect for progress bars, dashboards, or post-mortem analysis.

Memory usage tracking helps you understand the footprint of large workflows. Execution time is wall-clock time from first node start to last node finish.

inline Snapshot toSnapshot() const

Capture all statistics in one consistent snapshot.

Return: Snapshot with all counters captured atomically

std::atomic< uint32_t > totalNodes {0};

How many nodes exist in the graph.

std::chrono::steady_clock::duration totalExecutionTime {};

Total wall time.

std::atomic< uint32_t > scheduledNodes {0};

In the work queue.

std::atomic< uint32_t > readyNodes {0};

Ready but not yet scheduled.

std::atomic< uint32_t > pendingNodes {0};

Waiting for dependencies.

std::atomic< size_t > memoryUsage {0};

Approximate memory consumption.

std::atomic< uint32_t > failedNodes {0};

Nodes that threw exceptions.

std::atomic< uint32_t > executingNodes {0};

Currently running.

std::atomic< uint32_t > completedNodes {0};

Successfully finished nodes.

std::atomic< uint32_t > cancelledNodes {0};

Nodes skipped due to parent failure.


Updated on 2026-01-26 at 16:50:32 -0500