diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-09-04 12:35:42 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-09-04 12:35:42 +0200 |
commit | 233c43eea7e9907cdb5172c07f97fe007d26992d (patch) | |
tree | 7b09183dcc7f217d79800689d61149ae05a3a770 | |
parent | d041392641d91e6ce9c69415e14f3c0261621791 (diff) |
Fix race condition when switching servers or disconnecting
-rw-r--r-- | client_conn.go | 3 | ||||
-rw-r--r-- | content.go | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/client_conn.go b/client_conn.go index 0524b41..62864aa 100644 --- a/client_conn.go +++ b/client_conn.go @@ -115,8 +115,11 @@ func handleClt(cc *clientConn) { if cc.server() != nil { cc.server().Close() + + cc.mu.Lock() cc.server().clt = nil cc.srv = nil + cc.mu.Unlock() } if cc.name != "" { @@ -299,7 +299,6 @@ func muxItemDefs(conns []*contentConn) ([]mt.ItemDef, []struct{ Alias, Orig stri for _, cc := range conns { <-cc.done() - for _, def := range cc.itemDefs { if def.Name == "" { def.Name = "hand" @@ -358,7 +357,6 @@ func muxNodeDefs(conns []*contentConn) (nodeDefs []mt.NodeDef, p0Map param0Map, for _, cc := range conns { <-cc.done() - for _, def := range cc.nodeDefs { if p0Map[cc.name] == nil { p0Map[cc.name] = map[mt.Content]mt.Content{ @@ -414,7 +412,6 @@ func muxMedia(conns []*contentConn) []mediaFile { for _, cc := range conns { <-cc.done() - for _, f := range cc.media { prepend(cc.name, &f.name) media = append(media, f) |