Explorar o código

replace label & goto with a method

Work around the const/label conflict bug in go16beta1 by replacing a
label & goto with a method.

https://github.com/golang/go/issues/13684
Ben Burkert %!s(int64=10) %!d(string=hai) anos
pai
achega
29d4b91ea5
Modificáronse 1 ficheiros con 4 adicións e 2 borrados
  1. 4 2
      async_producer.go

+ 4 - 2
async_producer.go

@@ -581,7 +581,8 @@ func (bp *brokerProducer) run() {
 		select {
 		case msg := <-bp.input:
 			if msg == nil {
-				goto shutdown
+				bp.shutdown()
+				return
 			}
 
 			if msg.flags&syn == syn {
@@ -637,8 +638,9 @@ func (bp *brokerProducer) run() {
 			output = nil
 		}
 	}
+}
 
-shutdown:
+func (bp *brokerProducer) shutdown() {
 	for !bp.buffer.empty() {
 		select {
 		case response := <-bp.responses: