Narrow retained UI overlay lifetime debt

This commit is contained in:
2026-06-15 19:26:11 +02:00
parent f907d88c26
commit 565564c061
15 changed files with 603 additions and 67 deletions

View File

@@ -82,6 +82,12 @@ private:
class NodeLifetimeTree {
public:
// Thread-affinity and mutation contract:
// - Node and callback handles are generation-validated on each lookup.
// - Destroyed, disconnected, or stale handles are rejected with explicit status.
// - Mutations may occur during callback dispatch. Callbacks execute from a
// captured snapshot, so create/remove connections and destroy subtrees are
// safely observed by the current dispatch loop.
using Callback = std::function<void(NodeHandle)>;
[[nodiscard]] pp::foundation::Result<NodeHandle> create_root();