Unsubscribe from 'token_received' events before re-subscribing #630
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
OAuthService::setupRefreshTimeris called multiple times from several places in the code, e.g. from the constructor of the service or when astorageis changed viaOAuthService::setStorage.The
setupRefreshTimeris itself subscribing toOAuthService::eventseach time it's called, and the subscriptions get stacked creating at the very least a memory leak. In the worst case, this can also lead to undefined behavior and race conditions since the subscription handler ofthis.events...insetupRefreshTimeris callingsetupExpirationTimerswhich in turn is also performing subscriptions.This PR adds a resubscription procedure to
setupRefreshTimerwhich will unsubscribe fromOAuthService::eventsbefore subscribing to them again.