diff --git a/client/internal/updatemanager/manager.go b/client/internal/updatemanager/manager.go index 48db70c43..91df097b3 100644 --- a/client/internal/updatemanager/manager.go +++ b/client/internal/updatemanager/manager.go @@ -61,11 +61,6 @@ func NewUpdateManager(statusRecorder *peer.Status) *UpdateManager { return manager } -func (u *UpdateManager) WithCustomVersionUpdate(versionUpdate UpdateInterface) *UpdateManager { - u.update = versionUpdate - return u -} - func (u *UpdateManager) Start(ctx context.Context) { if u.cancel != nil { log.Errorf("UpdateManager already started") @@ -124,10 +119,12 @@ func (u *UpdateManager) Stop() { } u.cancel() + u.expectedVersionMutex.Lock() if u.update != nil { u.update.StopWatch() u.update = nil } + u.expectedVersionMutex.Unlock() u.wg.Wait() } @@ -151,6 +148,9 @@ func (u *UpdateManager) handleUpdate(ctx context.Context) { var updateVersion *v.Version u.expectedVersionMutex.Lock() + if u.update == nil { + return + } expectedVersion := u.expectedVersion useLatest := u.updateToLatestVersion curLatestVersion := u.update.LatestVersion() @@ -176,7 +176,7 @@ func (u *UpdateManager) handleUpdate(ctx context.Context) { return } - ctx, cancel := context.WithDeadline(ctx, time.Now().Add(time.Minute)) + ctx, cancel := context.WithTimeout(ctx, time.Minute) defer cancel() u.lastTrigger = time.Now() diff --git a/client/internal/updatemanager/manager_test.go b/client/internal/updatemanager/manager_test.go index 85998cd09..f1a3cee30 100644 --- a/client/internal/updatemanager/manager_test.go +++ b/client/internal/updatemanager/manager_test.go @@ -8,6 +8,11 @@ import ( "time" ) +func (u *UpdateManager) WithCustomVersionUpdate(versionUpdate UpdateInterface) *UpdateManager { + u.update = versionUpdate + return u +} + type versionUpdateMock struct { latestVersion *v.Version onUpdate func() diff --git a/client/internal/updatemanager/update_js.go b/client/internal/updatemanager/update_js.go new file mode 100644 index 000000000..b5085e11c --- /dev/null +++ b/client/internal/updatemanager/update_js.go @@ -0,0 +1,10 @@ +//go:build js + +package updatemanager + +import "context" + +func triggerUpdate(ctx context.Context, targetVersion string) error { + // TODO: Implement + return nil +}