Mám dve goroutines: hlavná worker
a helper
že to zdarma off pre nejakú pomoc. helper
môžu sa vyskytnúť chyby, tak používam kanál na komunikáciu chyby viac z helper
na worker
.
func helper(c chan <- error) (){
//do some work
c <- err // send errors/nil on c
}
Tu je, ako helper()
sa nazýva:
func worker() error {
//do some work
c := make(chan error, 1)
go helper(c)
err := <- c
return err
}
Otázky:
Je vyhlásenie
err := <- c
blokovanieworker
? Ja myslím, že nie, pretože kanál je nárazníkový.Ak je blokovanie, ako môžem, aby to non-blocking? Moja požiadavka je, aby sme sa
worker
a jeho volajúceho pokračovať so zvyškom práce, bez čakania na hodnotu, aby sa objaví na kanál.
Vďaka.
c
?