diff --git a/internal/user/events.go b/internal/user/events.go index b6a9349d..03172cbd 100644 --- a/internal/user/events.go +++ b/internal/user/events.go @@ -312,7 +312,7 @@ func (user *User) handleUpdateAddressEvent(_ context.Context, event proton.Addre } return nil - }, user.apiAddrsLock) + }, user.apiAddrsLock, user.updateChLock) } func (user *User) handleDeleteAddressEvent(_ context.Context, event proton.AddressEvent) error { diff --git a/internal/user/user.go b/internal/user/user.go index 64d0fdd0..1c163a66 100644 --- a/internal/user/user.go +++ b/internal/user/user.go @@ -553,7 +553,7 @@ func (user *User) Close() { user.client.Close() // Close the user's update channels. - safe.RLock(func() { + safe.Lock(func() { for _, updateCh := range xslices.Unique(maps.Values(user.updateCh)) { updateCh.CloseAndDiscardQueued() }