This factors port management out of Communicator into a new PortManager class, move the port closing logic from Instance to Communicator, and redoes the C++ tests for all this to more closely align with the way it's done in Python.
While at it, I discovered some issues with error handling and MPI, so those got fixed too.
This factors port management out of
Communicator
into a newPortManager
class, move the port closing logic fromInstance
toCommunicator
, and redoes the C++ tests for all this to more closely align with the way it's done in Python.While at it, I discovered some issues with error handling and MPI, so those got fixed too.