Mam dwie горотины: strona główna worker
i helper
co obraca się do jakiejś pomocy. helper
mogą pojawić się błędy, więc używam kanał do transmisji błędów helper
do worker
.
func helper(c chan <- error) (){
//do some work
c <- err // send errors/nil on c
}
Oto jak helper()
nazywa się:
func worker() error {
//do some work
c := make(chan error, 1)
go helper(c)
err := <- c
return err
}
Pytania:
Czy stwierdzenie
err := <- c
blokowanieworker
? Nie sądzę, tak jako kanał буферизован.Jeśli zostanie on zablokowany, jak mi się zrobić go nieblokujące? Moje wymóg polega na tym, aby mieć
worker
i jego abonent nadal pozostałą część pracy, nie czekając, aż wartość pojawi się na kanale.
Dziękuję.
c
?