fix (client): fix race condition in process.subscribe that made the client crash #702
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.
This PR fixes the race condition described in #426.
The problem was that
process.subscribe
was creating a promise, storing it, making an async call, fetching the promise and returning it. But, depending on the order in which messages are received from Electric, the async call may resolve after the subscription was already delivered and hence the promise had already been deleted. The fix consists of storing the promise in a local variable insideprocess.subscribe
such that it doesn't need to fetch the promise after the async call.