Unpickle Events, Variables, Queues and Semaphore safely without Client context #7579
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 is breaking out all the changes to Events, Variables, etc. in #7564 to allow for deserialization in a context w/out worker or client, i.e. on a scheduler.
All of these objects share quite some common infrastructure but I consider refactoring this out of scope.
Note: A minor behavioral change is that the roundtrips no longer preserve scheduler addresses, i.e. the will establish a connection to whatever client is returned by get_client (which internally has some defined precedence of where to look up the client, e.g. it starts with a worker client).
I don't believe we have the case of cross-scheduler serialization in reality