|
@@ -57,6 +57,7 @@ type NetUI struct {
|
|
|
workers []Worker
|
|
|
workersMutex sync.Mutex
|
|
|
sock *net.Listener
|
|
|
+ sockMu sync.Mutex
|
|
|
exit chan interface{}
|
|
|
}
|
|
|
|
|
@@ -95,6 +96,8 @@ func (n *NetUI) Update() {
|
|
|
|
|
|
// Close shuts the TCPserver down synchronously
|
|
|
func (n *NetUI) Close() {
|
|
|
+ n.sockMu.Lock()
|
|
|
+ defer n.sockMu.Unlock()
|
|
|
if n.sock != nil {
|
|
|
(*n.sock).Close()
|
|
|
}
|
|
@@ -141,7 +144,9 @@ func (n *NetUI) Run(sock net.Listener) error {
|
|
|
if n.sock != nil {
|
|
|
return fmt.Errorf("More than one Run for a single NetUI is currently unsupported")
|
|
|
}
|
|
|
+ n.sockMu.Lock()
|
|
|
n.sock = &sock
|
|
|
+ n.sockMu.Unlock()
|
|
|
defer sock.Close()
|
|
|
for {
|
|
|
conn, err := sock.Accept()
|