func bcqarDequeue(msgCount int64, q *spscq.ByteChunkQ, done chan bool) { runtime.LockOSThread() start := time.Now().UnixNano() sum := int64(0) checksum := int64(0) for i := int64(0); i < msgCount; i++ { readBuffer := q.AcquireRead() for readBuffer == nil { readBuffer = q.AcquireRead() } sum += int64(readBuffer[0]) checksum += int64(byte(i)) q.ReleaseRead() } nanos := time.Now().UnixNano() - start printSummary(msgCount, nanos, q.FailedWrites(), q.FailedReads(), "bcqar") expect(sum, checksum) done <- true }