Possible trouble:
Segmentation fault in reading a vector in SendRecv while it is being resized.
Possible solution:
Turn vector data structures that are modified in AddStreams into arrays. This way the arrays do have to be allocated when MPWide is started (compiled), but it saves a load of trouble because they are then immutable. It is then up to users to set a sensible maximum number of streams to be used within a single session.