// safely get the group for the point or create one if it doesn't exist. func (j *JoinNode) getGroup(p models.PointInterface) *group { group := j.groups[p.PointGroup()] if group == nil { group = newGroup(len(j.ins), j) j.groups[p.PointGroup()] = group j.runningGroups.Add(1) go group.run() } return group }
// safely get the group for the point or create one if it doesn't exist. func (j *JoinNode) getGroup(p models.PointInterface) *group { j.mu.Lock() defer j.mu.Unlock() group := j.groups[p.PointGroup()] if group == nil { group = newGroup(len(j.ins), j) j.groups[p.PointGroup()] = group j.runningGroups.Add(1) j.logger.Println("D! group started ") go group.run() } return group }
// Increment the ollected count of the group for this edge. func (e *Edge) incCollected(p models.PointInterface) { e.groupMu.Lock() defer e.groupMu.Unlock() if stats, ok := e.groupStats[p.PointGroup()]; ok { stats.collected += 1 } else { stats = &edgeStat{ collected: 1, tags: p.PointTags(), dims: p.PointDimensions(), } e.groupStats[p.PointGroup()] = stats } }
// safely get the group for the point or create one if it doesn't exist. func (j *JoinNode) getGroup(p models.PointInterface, groupErrs chan<- error) *group { group := j.groups[p.PointGroup()] if group == nil { group = newGroup(len(j.ins), j) j.groups[p.PointGroup()] = group j.runningGroups.Add(1) go func() { err := group.run() if err != nil { j.logger.Println("E! join group error:", err) select { case groupErrs <- err: default: } } }() } return group }