Python: resolving #10642 - public events fail to propagate #10643
+9
−8
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.
Motivation and Context
Resolves #10642 -- failure of
KernelProcessEventVisibility.Public
events to propagate.Description
First,
KernelProcessEvent
was configured to use enum values -- though throughout the code,KernelProcessEvent.visibility
is compared as an enum.Second, when handling events emitted by a KernelProcessStep, any
Public
visibility events are/were passed throughLocalStep.scoped_event
(which modifies the event's namespace) before queueing up any matching edges on the source step. This change to the event namespace effectively prevents the event from propagating (since I don't know how we'd 'listen' for events on the local process handle from within the function that builds that very process...)Allowing
visibility
onKernelProcessEvent
to be an enum, combined with an exchange in the order of processing event messages (matching event to edge before re-emitting any events marked as 'Public') causes public events to propagate as expected.Contribution Checklist