-
Notifications
You must be signed in to change notification settings - Fork 7
Description
If a start a data flow that contains at least one Python node, it is (almost) impossible to abort it.
The only way to stop the data flow is to send a SIGKILL signal on the process of the Zenoh-Flow runtime driving its execution.
The reason is that the async task running the Python asynchronous code is blocked on run_until_complete. This behaviour is particularly easy to exhibit when waiting for an Input (in Python): the task will block until data is received.
The PyO3 documentation mentions calling py::check_signals()? but this is not a viable approach in our situation: the Zenoh-Flow runtime already intercepts some signals (notably SIGINT) to abort all running data flows.
The Zenoh-Flow runtime must convey that information to the node. Through a dedicated channel?