Hi,

i have an intresting problem where the read and draw are beeing  
performed in seperate threads, i end up having updated my own  
position, but not yet that of the other ships, as a result, on the  
next update the ships "leap" ahead to the new posion. Avoiding this  
problem requires the client to know when the server has completed  
it's transmission of the update.

Depending on some vars the server will do something like:

	updateTorps();
	updatePlasmas();
	updateStatus(TRUE);
	updateSelf(FALSE);
	updatePhasers();
	updateShips();
	updatePlanets();
	updateMessages();
	updatePlayerStats();

If the updateSelf would be the last action to be performed it could  
function also as a "end of update cycle" marker. since it is always  
sent. The same issue should also occur in COW i think, but i never  
noticed it. The only synchronize there is on a full frame length  
read. This would mean that unless SP_YOU and all SP_PLAYER packets  
arrive in a single frame, the same condition would occur there.

Suggest moving updateSelf to last position or remove it all together,  
there is a secondairy check that fires a SP_YOU when no other data is  
sent anyway. (seems a bit double.) However i might miss the finer  
insight about what how this is tackled and would love your opinion.

regards

Chris

/Who will implement the same trick as COW as an excercise anyway :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.us.netrek.org/pipermail/netrek-dev/attachments/20070218/e65261ac/attachment.htm