add sync for proper termination (#1507)
This commit is contained in:
parent
6fd954f19c
commit
d0892abc2c
1 changed files with 6 additions and 3 deletions
|
@ -24,6 +24,7 @@ func init() {
|
||||||
// WARNING: this data may be unsync after an invalid attempt of reload Corefile.
|
// WARNING: this data may be unsync after an invalid attempt of reload Corefile.
|
||||||
var r = reload{interval: defaultInterval, usage: unused, quit: make(chan bool)}
|
var r = reload{interval: defaultInterval, usage: unused, quit: make(chan bool)}
|
||||||
var once sync.Once
|
var once sync.Once
|
||||||
|
var shutOnce sync.Once
|
||||||
|
|
||||||
func setup(c *caddy.Controller) error {
|
func setup(c *caddy.Controller) error {
|
||||||
c.Next() // 'reload'
|
c.Next() // 'reload'
|
||||||
|
@ -73,9 +74,11 @@ func setup(c *caddy.Controller) error {
|
||||||
})
|
})
|
||||||
|
|
||||||
// re-register on finalShutDown as the instance most-likely will be changed
|
// re-register on finalShutDown as the instance most-likely will be changed
|
||||||
c.OnFinalShutdown(func() error {
|
shutOnce.Do(func() {
|
||||||
r.quit <- true
|
c.OnFinalShutdown(func() error {
|
||||||
return nil
|
r.quit <- true
|
||||||
|
return nil
|
||||||
|
})
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue