Changeset - r21352:172f883033dd
[Not reviewed]
master
0 3 0
planetmaker - 10 years ago 2014-04-08 20:19:41
planetmaker@openttd.org
(svn r26449) -Add: Allow more sound sleep for dedicated servers when there's nothing to do and nobody paying attention
3 files changed with 23 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/network/network.cpp
Show inline comments
 
@@ -97,6 +97,18 @@ byte _network_clients_connected = 0;
 
extern void StateGameLoop();
 

	
 
/**
 
 * Return whether there is any client connected or trying to connect at all.
 
 * @return whether we have any client activity
 
 */
 
bool HasClients()
 
{
 
	NetworkClientSocket *cs;
 
	FOR_ALL_CLIENT_SOCKETS(cs) return true;
 

	
 
	return false;
 
}
 

	
 
/**
 
 * Basically a client is leaving us right now.
 
 */
 
NetworkClientInfo::~NetworkClientInfo()
src/network/network.h
Show inline comments
 
@@ -18,6 +18,7 @@
 
void NetworkStartUp();
 
void NetworkShutDown();
 
void NetworkDrawChatMessage();
 
bool HasClients();
 

	
 
extern bool _networking;         ///< are we in networking mode?
 
extern bool _network_server;     ///< network-server is active
 
@@ -31,6 +32,7 @@ extern bool _is_network_server;  ///< Do
 
static inline void NetworkStartUp() {}
 
static inline void NetworkShutDown() {}
 
static inline void NetworkDrawChatMessage() {}
 
static inline bool HasClients() { return false; }
 

	
 
#define _networking 0
 
#define _network_server 0
src/video/dedicated_v.cpp
Show inline comments
 
@@ -316,7 +316,15 @@ void VideoDriver_Dedicated::MainLoop()
 
		}
 

	
 
		/* Don't sleep when fast forwarding (for desync debugging) */
 
		if (!_ddc_fastforward) CSleep(1);
 
		if (!_ddc_fastforward) {
 
			/* Sleep longer on a dedicated server, if the game is paused and no clients connected.
 
			 * That can allow the CPU to better use deep sleep states. */
 
			if (_pause_mode != 0 && !HasClients()) {
 
				CSleep(100);
 
			} else {
 
				CSleep(1);
 
			}
 
		}
 
	}
 
}
 

	
0 comments (0 inline, 0 general)