(node *PlanNode, events api.EventProcessor)
| 61 | } |
| 62 | |
| 63 | func (gt *groupTracker) onNodeStart(node *PlanNode, events api.EventProcessor) { |
| 64 | if node.Group == "" { |
| 65 | // Ungrouped: emit individual event |
| 66 | emitStartEvent(node, events) |
| 67 | return |
| 68 | } |
| 69 | gt.mu.Lock() |
| 70 | defer gt.mu.Unlock() |
| 71 | gs := gt.groups[node.Group] |
| 72 | gs.started++ |
| 73 | if gs.started == 1 { |
| 74 | events.On(newEvent(gs.eventName, api.Working, "Recreate")) |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | func (gt *groupTracker) onNodeDone(node *PlanNode, events api.EventProcessor) { |
| 79 | if node.Group == "" { |
no test coverage detected