At least in the C++ version of libmuscle, it seems like we're not draining muscle_settings_in when closing incoming ports, so that we'll end up hanging if we have something trying to send us new settings while something else that we have an F_INIT port from has quit.
Should check if it's also the case in Python, and fix where needed. And add some regression tests.
Actually, maybe what we should do is make muscle_settings_in as much as possible a normal (although hidden from the user-facing API) port, rather than the special status it has now.
At least in the C++ version of libmuscle, it seems like we're not draining
muscle_settings_in
when closing incoming ports, so that we'll end up hanging if we have something trying to send us new settings while something else that we have anF_INIT
port from has quit.Should check if it's also the case in Python, and fix where needed. And add some regression tests.
Actually, maybe what we should do is make
muscle_settings_in
as much as possible a normal (although hidden from the user-facing API) port, rather than the special status it has now.