मैं दो goroutines: मुख्य worker
और एक helper
कि यह स्पिन बंद के लिए कुछ मदद की है । helper
का सामना कर सकते हैं त्रुटियों, तो मैं का उपयोग एक चैनल से संवाद करने के लिए त्रुटियों से helper
करने के लिए worker
.
func helper(c chan <- error) (){
//do some work
c <- err // send errors/nil on c
}
यहाँ है कैसे helper()
कहा जाता है:
func worker() error {
//do some work
c := make(chan error, 1)
go helper(c)
err := <- c
return err
}
सवाल:
बयान है
err := <- c
अवरुद्धworker
? मैं ऐसा नहीं लगता है के बाद से, चैनल बफर है.अगर यह अवरुद्ध है, मैं कैसे बनाने के लिए यह गैर-अवरुद्ध? मेरी आवश्यकता है के लिए है
worker
और अपने फोन के साथ जारी रखने के काम के आराम के बिना, प्रतीक्षा के लिए मूल्य पर प्रदर्शित करने के लिए चैनल.
धन्यवाद.
c
?