func batchqSingleDequeue(msgCount int64, q *spscq.BatchQ, batchSize int64, done chan bool) { runtime.LockOSThread() start := time.Now().UnixNano() sum := int64(0) checksum := int64(0) var v unsafe.Pointer for i := int64(0); i < msgCount; i++ { v = q.ReadSingle() for v == nil { v = q.ReadSingle() } sum += int64(uintptr(v)) checksum += i + 1 } nanos := time.Now().UnixNano() - start printTimings(msgCount, nanos, "batchq") expect(sum, checksum) done <- true }