We could re-implement progress similarly to the new barrier. Currently, each communicator progresses it's own send worker, and the shared recv worker. If user creates multiple communicators, each of them has to be progressed explicitly. Instead, we could keep a list of all recv workers and all send workers ever created, and progress all of them - as we progress in the new barrier. This could solve the potential task migration issues, when tasks are migrated together with the communicator. Tasks would be now in dependent of the threads, and threads would progress all of their own workers.
We could re-implement
progresssimilarly to the new barrier. Currently, each communicator progresses it's ownsendworker, and the sharedrecvworker. If user creates multiple communicators, each of them has to be progressed explicitly. Instead, we could keep a list of allrecvworkers and allsendworkers ever created, and progress all of them - as we progress in the new barrier. This could solve the potential task migration issues, when tasks are migrated together with the communicator. Tasks would be now in dependent of the threads, and threads would progress all of their own workers.