func bqarlDequeue(msgCount, msgSize int64, q *spscq.ByteQ, 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(msgSize) for len(readBuffer) == 0 { readBuffer = q.AcquireRead(msgSize) } sum += int64(readBuffer[0]) checksum += int64(byte(i)) rem := msgSize - int64(len(readBuffer)) q.ReleaseReadLazy() for rem > 0 { readBuffer = q.AcquireRead(rem) rem -= int64(len(readBuffer)) q.ReleaseReadLazy() } } nanos := time.Now().UnixNano() - start printSummary(msgCount, nanos, q.FailedWrites(), q.FailedReads(), "bqarl") expect(sum, checksum) done <- true }
func bqrwDequeue(msgCount, msgSize int64, q *spscq.ByteQ, done chan bool) { runtime.LockOSThread() start := time.Now().UnixNano() sum := int64(0) checksum := int64(0) buffer := make([]byte, msgSize) for i := int64(1); i <= msgCount; i++ { for r := false; r == false; r = q.Read(buffer) { } sum += int64(buffer[0]) checksum += int64(byte(i)) } nanos := time.Now().UnixNano() - start printSummary(msgCount, nanos, q.FailedWrites(), q.FailedReads(), "bqrw") expect(sum, checksum) done <- true }