fix(idlewatcher): correctly restart on config reload

This commit is contained in:
yusing
2025-10-10 21:57:36 +08:00
parent ef34c3ffdd
commit 357ce38b18
3 changed files with 12 additions and 5 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/yusing/godoxy/internal/common"
config "github.com/yusing/godoxy/internal/config/types"
"github.com/yusing/godoxy/internal/notif"
"github.com/yusing/godoxy/internal/watcher"
"github.com/yusing/godoxy/internal/watcher/events"
@@ -70,7 +71,7 @@ func Reload() gperr.Error {
// cancel all current subtasks -> wait
// -> replace config -> start new subtasks
GetState().Task().FinishAndWait("config changed")
GetState().Task().FinishAndWait(config.ErrConfigChanged)
SetState(newState)
if err := newState.StartProviders(); err != nil {

View File

@@ -2,6 +2,7 @@ package config
import (
"context"
"errors"
"iter"
"net/http"
@@ -33,3 +34,5 @@ type State interface {
// could be nil
var ActiveState synk.Value[State]
var ErrConfigChanged = errors.New("config changed")