Closed GoogleCodeExporter closed 8 years ago
Are you talking about the queueing of acks on line 31 of
NetReliableOrderedReceiver.cs for example? That line only adds an ack message
to a queue; it's picked up in the heartbeat of the connection so there
shouldn't be any thrashing there?
Original comment by lidg...@gmail.com
on 6 Feb 2012 at 8:24
I'm talking about this code flow:
NetPeer.Heartbeat() ->
sender.ReceivedLibraryMessage(tp, ptr, payloadByteLength) ->
chan.ReceiveAcknowledge(now, seqNr) ->
which, in NetReliableSenderChannel.cs line 250, may do a
m_connection.QueueSendMessage(rmsg, rnr);
which will cause corruption, if this code flow happens for several
NetConnections (in NetPeer's packet receive loop) before proceeding to the
connection-specific Heartbeats.
Original comment by loorni@gmail.com
on 6 Feb 2012 at 11:11
Alas! You are correct. Nasty bug; good find! I've checked in a fix in 284 where
incoming acks are queued and handled in the NetConnection.Heartbeat method
instead.
Original comment by lidg...@gmail.com
on 6 Feb 2012 at 12:48
Have you checked if this solves your issue?
Original comment by lidg...@gmail.com
on 1 Mar 2012 at 7:13
Yes, it does solve it.
Original comment by loorni@gmail.com
on 1 Mar 2012 at 8:59
Original comment by lidg...@gmail.com
on 22 Mar 2012 at 3:56
Original issue reported on code.google.com by
loorni@gmail.com
on 4 Feb 2012 at 9:26