func batchqBatchEnqueue(msgCount int64, q *spscq.BatchQ, batchSize int64, done chan bool) { runtime.LockOSThread() var t int64 var buffer []unsafe.Pointer OUTER: for { buffer = q.WriteBuffer(batchSize) for buffer == nil { buffer = q.WriteBuffer(batchSize) } for i := range buffer { t++ if t > msgCount { q.CommitWriteBuffer(int64(i)) break OUTER } buffer[i] = unsafe.Pointer(uintptr(uint(t))) } q.CommitWriteBuffer(int64(len(buffer))) if t == msgCount { break } } done <- true }