diff --git a/internal/user/events.go b/internal/user/events.go index 71098d8c..296243be 100644 --- a/internal/user/events.go +++ b/internal/user/events.go @@ -257,7 +257,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 5fbdb54b..c2634f0a 100644 --- a/internal/user/user.go +++ b/internal/user/user.go @@ -546,7 +546,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() }