package main

import "github.com/smartystreets/go-disruptor"

func publish(writer *disruptor.Writer) {
	for {
		sequence := writer.Reserve(1)
		if sequence != disruptor.Gating {
			// ringBuffer[(sequence-3)&RingMask] = sequence - 3
			// ringBuffer[(sequence-2)&RingMask] = sequence - 2
			// ringBuffer[(sequence-1)&RingMask] = sequence - 1
			ringBuffer[sequence&RingMask] = sequence
			writer.Commit(sequence)
		}
	}
}
