2017-05-10 14:23:29 +02:00
package signals
2017-05-28 11:31:11 +02:00
import (
2017-05-29 08:15:21 +02:00
"sync"
2017-06-28 13:42:38 +02:00
2017-07-02 16:54:55 +02:00
"github.com/NyaaPantsu/nyaa/utils/log"
2017-05-28 11:31:11 +02:00
)
2017-05-29 08:15:21 +02:00
// registered interrupt callbacks.
// currently only used to gracefully close the server.
var intEvents struct {
2017-06-28 13:42:38 +02:00
lock sync . Mutex
2017-05-29 08:15:21 +02:00
funcs [ ] func ( )
}
2017-07-23 07:46:29 +02:00
// OnInterrupt handles signal interupts
2017-05-29 08:15:21 +02:00
func OnInterrupt ( fn func ( ) ) {
intEvents . lock . Lock ( )
intEvents . funcs = append ( intEvents . funcs , fn )
intEvents . lock . Unlock ( )
}
2017-05-28 11:31:11 +02:00
func handleReload ( ) {
log . Info ( "Got SIGHUP" )
2017-06-28 13:42:38 +02:00
//router.ReloadTemplates()
2017-05-28 11:31:11 +02:00
log . Info ( "reloaded templates" )
}
2017-05-10 14:23:29 +02:00
// handle interrupt signal, platform independent
func interrupted ( ) {
2017-05-29 08:15:21 +02:00
intEvents . lock . Lock ( )
for _ , fn := range intEvents . funcs {
fn ( )
}
intEvents . lock . Unlock ( )
2017-05-10 14:23:29 +02:00
}