mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-04 19:02:28 +00:00
network: introduce peer sending queues
Two queues for high-priority and ordinary messages. Fixes #590. These queues are deliberately made small to avoid buffer bloat problem, there is gonna be another queueing layer above them to compensate for that. The queues are designed to be synchronous in enqueueing, async capabilities are to be added layer above later.
This commit is contained in:
parent
7f0882767c
commit
0ba6b2a754
6 changed files with 173 additions and 53 deletions
|
@ -30,8 +30,8 @@ func TestPeerHandshake(t *testing.T) {
|
|||
require.Equal(t, false, tcpC.Handshaked())
|
||||
|
||||
// No ordinary messages can be written.
|
||||
require.Error(t, tcpS.WriteMsg(&Message{}))
|
||||
require.Error(t, tcpC.WriteMsg(&Message{}))
|
||||
require.Error(t, tcpS.EnqueueMessage(&Message{}))
|
||||
require.Error(t, tcpC.EnqueueMessage(&Message{}))
|
||||
|
||||
// Try to mess with VersionAck on both client and server, it should fail.
|
||||
require.Error(t, tcpS.SendVersionAck(&Message{}))
|
||||
|
@ -80,6 +80,6 @@ func TestPeerHandshake(t *testing.T) {
|
|||
require.Error(t, tcpS.SendVersionAck(&Message{}))
|
||||
|
||||
// Now regular messaging can proceed.
|
||||
require.NoError(t, tcpS.WriteMsg(&Message{}))
|
||||
require.NoError(t, tcpC.WriteMsg(&Message{}))
|
||||
require.NoError(t, tcpS.EnqueueMessage(&Message{}))
|
||||
require.NoError(t, tcpC.EnqueueMessage(&Message{}))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue