Преглед изворни кода

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 пре 10 година
родитељ
комит
29d4b91ea5
1 измењених фајлова са 4 додато и 2 уклоњено
  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: