Comment 22 for bug 1811583

Revision history for this message
Notabilis (notabilis27) wrote :

I haven't expected any (useful) response regarding the command queue, no problem. I know roughly how it is working which is fine for now. The desync happens because somehow additional commands have been added to the command queue for only one of the players, which is something that should not happen. Since I was unable to trigger the desync by loading any of the provided savegames it was probably some player action that added the command. Unfortunately the syncstream does not provide any information about the type of the acting entity.

wake_me() has the same problem as sleep() since it is also calling coroutine.yield() (see coroutine.lua). In generally these functions are fine and they probably don't make any problems in the main loop. The problem is if only one player calls one of these functions and the others do not. So as long as all player execute the main loop the same way and all or none are going to call sleep/wake_me(), it is fine.