Procházet zdrojové kódy

Merge pull request #100 from dolzenko/fix-race

Fix race in bufferedBytes access
Burke Libbey před 11 roky
rodič
revize
afe5c7e71e
1 změnil soubory, kde provedl 4 přidání a 1 odebrání
  1. 4 1
      producer.go

+ 4 - 1
producer.go

@@ -266,7 +266,10 @@ func (bp *brokerProducer) addMessage(msg *produceMessage, maxBufferBytes uint32)
 }
 }
 
 
 func (bp *brokerProducer) flushIfOverCapacity(maxBufferBytes uint32) {
 func (bp *brokerProducer) flushIfOverCapacity(maxBufferBytes uint32) {
-	if bp.bufferedBytes > maxBufferBytes {
+	bp.mapM.Lock()
+	over := bp.bufferedBytes > maxBufferBytes
+	bp.mapM.Unlock()
+	if over {
 		select {
 		select {
 		case bp.flushNow <- true:
 		case bp.flushNow <- true:
 		default:
 		default: