func extqEnqueue(msgCount int64, q *spscq.ExtQ, batchSize int64, done chan bool) { runtime.LockOSThread() var t int64 OUTER: for { low, high := q.WriteBuffer(batchSize) for low == high { low, high = q.WriteBuffer(batchSize) } for i := low; i < high; i++ { t++ if t > msgCount { q.CommitWriteBuffer(i - low) break OUTER } ringBuffer[i&mask] = unsafe.Pointer(uintptr(t)) } q.CommitWriteBuffer(high - low) if t == msgCount { break } } done <- true }