4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-07-06 06:24:06 +00:00

Fix deadlock when reconfiguring multicast

This commit is contained in:
Neil Alexander
2019-03-04 23:16:46 +00:00
parent 88925d3e06
commit 2ef823e69c
2 changed files with 11 additions and 6 deletions

View File

@ -76,14 +76,17 @@ func (l *link) init(c *Core) error {
go func() {
for {
e := <-l.reconfigure
response := make(chan error)
l.tcp.reconfigure <- response
if err := <-response; err != nil {
tcpresponse := make(chan error)
awdlresponse := make(chan error)
l.tcp.reconfigure <- tcpresponse
if err := <-tcpresponse; err != nil {
e <- err
continue
}
l.awdl.reconfigure <- response
if err := <-response; err != nil {
l.awdl.reconfigure <- awdlresponse
if err := <-awdlresponse; err != nil {
e <- err
continue
}
e <- nil
}