コード例 #1
0
ファイル: bcqar.go プロジェクト: roger2000hk/flib
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
}
コード例 #2
0
ファイル: bcqar.go プロジェクト: roger2000hk/flib
func bcqarEnqueue(msgCount int64, q *spscq.ByteChunkQ, done chan bool) {
	runtime.LockOSThread()
	for i := int64(0); i < msgCount; i++ {
		writeBuffer := q.AcquireWrite()
		for writeBuffer == nil {
			writeBuffer = q.AcquireWrite()
		}
		writeBuffer[0] = byte(i)
		q.ReleaseWrite()
	}
	done <- true
}