Fix SharedService clientId locking with multiple services. #107
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.
Each instance of SharedService was acquiring a Web Lock on its clientId. When implementing multiple services (i.e. with different service names) instance after the first one would block.
The ideal fix would probably be to use a Web Lock name unique to each instance's clientId+serviceName combination, and pass that name in the service request. That would allow better generalized instance lifetime management. Since this is just a proof of concept and this issue doesn't affect the demos here (or applications where service consumers don't need to terminate before their Javascript context does), this PR simply ensures that each context only acquires the lock once.