shutdown your background workers!

I believe everything #74 was caused by not shutting down the userDaemon
when we do a pseudo-restart. shutdown of it and the invite daemon are
now deferred so this should fix any problems and reduce log spam.
This commit is contained in:
Harvey Tindall 2021-04-06 18:12:06 +01:00
parent e6e5231f63
commit 47ac505cac
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 11 additions and 2 deletions

View File

@ -576,11 +576,13 @@ func start(asDaemon, firstCall bool) {
os.Exit(0)
}
inviteDaemon := newInviteDaemon(time.Duration(60*time.Second), app)
go inviteDaemon.run()
invDaemon := newInviteDaemon(time.Duration(60*time.Second), app)
go invDaemon.run()
defer invDaemon.shutdown()
userDaemon := newUserDaemon(time.Duration(60*time.Second), app)
go userDaemon.run()
defer userDaemon.shutdown()
if app.config.Section("password_resets").Key("enabled").MustBool(false) && serverType == mediabrowser.JellyfinServer {
go app.StartPWR()

View File

@ -42,6 +42,13 @@ func (rt *userDaemon) run() {
}
}
func (rt *userDaemon) shutdown() {
rt.Stopped = true
rt.ShutdownChannel <- "Down"
<-rt.ShutdownChannel
close(rt.ShutdownChannel)
}
func (app *appContext) checkUsers() {
if err := app.storage.loadUsers(); err != nil {
app.err.Printf("Failed to load user expiries: %v", err)