diff --git a/user.go b/user.go index 5918505..a5ed8f3 100644 --- a/user.go +++ b/user.go @@ -468,7 +468,7 @@ func (user *User) AsyncLoginGoogleStart(cookies map[string]string) (outEmoji str errChanPtr := &errChan if !user.googleAsyncPairErrChan.CompareAndSwap(nil, errChanPtr) { close(errChan) - outErr = ErrLoginInProgress + outErr = fmt.Errorf("%w: wait not called", ErrLoginInProgress) return } var callbackDone bool @@ -480,6 +480,10 @@ func (user *User) AsyncLoginGoogleStart(cookies map[string]string) (outEmoji str outEmoji = emoji initialWait.Done() } + if cancelPrevLogin := user.cancelLogin; cancelPrevLogin != nil { + user.zlog.Warn().Msg("Another async google login started while previous one was in progress") + cancelPrevLogin() + } var ctx context.Context ctx, user.cancelLogin = context.WithCancel(context.Background()) go func() {