Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make SBFT application's enqueue operations non-blocking
Backend has a main consumer process (run()) handling the content of its queue (called 'queue', a channel). This goroutine has to be only a consumer but as it executes messages from the queue, sometimes, it has to also insert items acting as a producer. In this case, blocking enqueue operations may block the whole replica (application). One example for this phenomenon is an enqueued message of type Receive. This calls SBFT's Receive which may call function recordBacklogMsg which may then call System's Reconnect. This is implemented by Backend and tries to enqueue a Connection message (enqueueConnection) blocking the replica. Change-Id: I1dd2a900570a1305ea17d20bfcd8cba81b437d24 Signed-off-by: Gabor Hosszu <gabor@digitalasset.com>
- Loading branch information