0ad/source/network
wraitii 2d40068cd1 Thread the NetClient session.
This threads the netclient session, which avoids timeouts when the
main-thread is not polling (map creation, very long simulation frames).

Unlike the NetServer, which should be as independent as possible from
the main thread, the NetClient is fundamentally tied to the game thread.
Therefore, this only threads the session object.
To ensure good performance and ease-of-use, lock-free queues for
in/out-going messages are used.

This fixes artificial timeouts, while also improving actual ping reports
(since frame-time is no longer a factor).
It effectively reverts D1513/eda236522c and 2e7e1c0b2b, all hacks around
lag-timeouts (and bits of 1a3fb29ff3).

Based on a patch by: Stan
Comments by: Vladislavbelov
Fixes #3700, refs #3373

Differential Revision: https://code.wildfiregames.com/D2848
This was SVN commit r24518.
2021-01-06 15:26:11 +00:00
..
scripting [SM78 2/2] Update to Spidermonkey 78 APIs 2020-12-06 14:03:02 +00:00
tests Improve JS Exception handling. 2020-11-15 18:29:17 +00:00
fsm.cpp Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
fsm.h Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
NetClient.cpp Thread the NetClient session. 2021-01-06 15:26:11 +00:00
NetClient.h Thread the NetClient session. 2021-01-06 15:26:11 +00:00
NetClientTurnManager.cpp Implement NetClient PushGuiMessage using parameter pack and ScriptInterface::CreateObject from D2080 / b4626359f5 to replace remaining Eval function calls. 2019-09-07 16:51:44 +00:00
NetClientTurnManager.h Split TurnManager classes into individual files per class. Patch by echotangoecho, fixes #4095. 2017-01-24 02:04:50 +00:00
NetFileTransfer.cpp Split NetFileTransfer message parsing into one function per case, refs #5212. 2019-09-17 14:18:46 +00:00
NetFileTransfer.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
NetHost.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
NetHost.h Always inform clients why the server chose to disconnect them, i.e. stop using NDR_UNKNOWN as a disconnect reason when the reason is known and add a LOGWARNING for future authors. 2019-09-26 11:36:03 +00:00
NetMessage.cpp Pass ScriptInterface as a const ref where possible. 2017-08-24 00:32:42 +00:00
NetMessage.h Fix few typos found with the Debian lintian tool. 2017-10-28 22:34:57 +00:00
NetMessages.h Remove DefPersistentRooted and unneeded includes. 2020-11-12 08:24:30 +00:00
NetMessageSim.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
NetServer.cpp Thread the NetClient session. 2021-01-06 15:26:11 +00:00
NetServer.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
NetServerTurnManager.cpp Fix two Clang warnings. 2021-01-05 11:49:24 +00:00
NetServerTurnManager.h Don't trigger a NetServerTurnManager debug breakpoint if a modified or unmodified client sends a non-sequential turnnumber. 2018-01-26 23:02:13 +00:00
NetSession.cpp Thread the NetClient session. 2021-01-06 15:26:11 +00:00
NetSession.h Thread the NetClient session. 2021-01-06 15:26:11 +00:00
NetStats.cpp Clean up ThreadUtil, use standard C++11 constructs instead of custom ones. 2019-06-06 19:30:48 +00:00
NetStats.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
NMTCreator.h Fix segfault when sending a very large net chat message. 2020-08-01 15:25:13 +00:00
Serialization.h Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
StringConverters.h Provide JSON-compatible string escaping 2011-11-04 01:18:34 +00:00
StunClient.cpp Improve JS Exception handling. 2020-11-15 18:29:17 +00:00
StunClient.h Fix unreported glooxwrapper leaks following 61261d14fc, refs #2305. 2019-08-17 00:12:19 +00:00