File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -93,6 +93,9 @@ func (m *Mesh) SetAddresses(addresses []string, connect bool) {
93
93
func (m * Mesh ) addAddress (address string , connect bool ) (bool , error ) {
94
94
m .mutex .Lock ()
95
95
defer m .mutex .Unlock ()
96
+ if m .isClosed () {
97
+ return false , nil
98
+ }
96
99
_ , isActive := m .active [address ]
97
100
if isActive {
98
101
return false , nil
@@ -142,14 +145,21 @@ func (m *Mesh) removeAddress(address string) bool {
142
145
func (m * Mesh ) Close () error {
143
146
m .mutex .Lock ()
144
147
defer m .mutex .Unlock ()
145
- select {
146
- case <- m .closed :
148
+ if m .isClosed () {
147
149
return nil
148
- default :
149
150
}
150
151
close (m .closed )
151
152
for _ , cancelFunc := range m .active {
152
153
cancelFunc ()
153
154
}
154
155
return nil
155
156
}
157
+
158
+ func (m * Mesh ) isClosed () bool {
159
+ select {
160
+ case <- m .closed :
161
+ return true
162
+ default :
163
+ }
164
+ return false
165
+ }
You can’t perform that action at this time.
0 commit comments