dedis / onet

Overlay Network for distributed protocols
GNU Lesser General Public License v3.0
51 stars 29 forks source link

Use the routine dispatcher to deserve requests asynchronously #603

Closed Gilthoniel closed 4 years ago

Gilthoniel commented 4 years ago

In situation where a node is processing a request that needs interactions with other nodes, it can be stuck as the blocking dispatcher only allows one at a time. This switches to the routine dispatcher that allows multiple requests to be processed.

Gilthoniel commented 4 years ago

@cba33 has issues during simulation as her init phase requires interaction with the nodes and thus the root was stuck waiting for replies to be processed.

ineiti commented 4 years ago

IIRC, this was half on purpose, to avoid some race-conditions when the dispatcher is called twice for the same message. But probably it never really prevented races... If there are more flaky tests in cothority, this might be it...

jeffallen commented 4 years ago

How does this change perform when integrated into Cothority?

Gilthoniel commented 4 years ago

Running the tests locally was alright.