copy _subscriptions so that it can't be altered within the loop #21
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.
Fix for Dictionary Size Change During Iteration in
_on_connect
This PR addresses Issue #20, where
_on_connect
in_client.py
(line 168) fails when multiple clients are running and one client publishes a new topic while another subscribes. The root cause is thatself._subscriptions
is modified during iteration, leading to aRuntimeError: dictionary changed size during iteration
.Fix
I converted the iterator into a list before iterating over
self._subscriptions
. This ensures that the loop does not reference the dictionary directly, preventing modifications during iteration.Changes