Handle errors from reconfigure tasks

This commit is contained in:
Neil Alexander 2018-12-30 12:04:42 +00:00
parent 2925920c70
commit 7fae1c993a
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
9 changed files with 64 additions and 72 deletions

View file

@ -23,7 +23,7 @@ import (
type admin struct {
core *Core
reconfigure chan bool
reconfigure chan chan error
listenaddr string
listener net.Listener
handlers []admin_handlerInfo
@ -54,18 +54,17 @@ func (a *admin) addHandler(name string, args []string, handler func(admin_info)
// init runs the initial admin setup.
func (a *admin) init(c *Core) {
a.core = c
a.reconfigure = make(chan bool, 1)
a.reconfigure = make(chan chan error, 1)
go func() {
for {
select {
case _ = <-a.reconfigure:
case e := <-a.reconfigure:
a.core.configMutex.RLock()
a.core.log.Println("Notified: admin")
if a.core.config.AdminListen != a.core.configOld.AdminListen {
a.core.log.Println("AdminListen has changed!")
}
a.core.configMutex.RUnlock()
continue
e <- nil
}
}
}()