func pqsDequeue(msgCount int64, q *spscq.PointerQ, done chan bool) { runtime.LockOSThread() start := time.Now().UnixNano() sum := int64(0) checksum := int64(0) var v unsafe.Pointer for i := int64(1); i <= msgCount; i++ { v = q.ReadSingle() for v == nil { v = q.ReadSingle() } pv := int64(uintptr(v)) sum += pv checksum += i if pv != i { print(fmt.Sprintf("Bad message. Expected %d, found %d (found-expected = %d)", pv, i, pv-i)) } } nanos := time.Now().UnixNano() - start printSummary(msgCount, nanos, q.FailedWrites(), q.FailedReads(), "pqs") expect(sum, checksum) done <- true }