blob: 67baf10d144c8d03ae59d7ca3c8a66a39089281d [file] [log] [blame]
package disruptor
type CompositeBarrier struct {
cursors []*Cursor
}
func NewCompositeBarrier(upstream []*Cursor) *CompositeBarrier {
cursors := make([]*Cursor, len(upstream))
copy(cursors, upstream)
return &CompositeBarrier{cursors}
}
func (this *CompositeBarrier) Load() int64 {
minimum := MaxSequenceValue
for _, item := range this.cursors {
cursor := item.Load()
if cursor < minimum {
minimum = cursor
}
}
return minimum
}