Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Partially revert delegate optimisation
That was done in PR #3865. The changes introduced in #3865 can cause message arrival ordering guarantees between two logical erlang process (sending messages via delegate) to be violated as a message sent to a single destination can overtake a prior message sent as part of a fan-out. This is due to the fact that the fan-out take a different route via the delegate process than the direct delivery that bypasses it. This commit only reverses it for the `invoke_no_result/2|3` API and leaves the optimisation in for the synchronous `invoke/` API. This means that the message send ordering you expect between erlang processes still can be violated when mixing invoke and invoke_no_result invocations. As far as I can see there are no places where the code relies on this and there are uses of invoke (mgmt db) that very well could benefit from avoiding the additional copying. (cherry picked from commit 8804434)
- Loading branch information