add a param to prevent running the callbacks background thread, for manual dispatch
This commit is contained in:
parent
7700cd5dda
commit
09979e8eca
@ -216,7 +216,7 @@ public:
|
||||
|
||||
|
||||
// Deprecated. Applications should use SteamAPI_RunCallbacks() or SteamGameServer_RunCallbacks() instead.
|
||||
STEAM_PRIVATE_API( void RunFrame(); )
|
||||
STEAM_PRIVATE_API( void RunFrame() );
|
||||
|
||||
// returns the number of IPC calls made since the last time this function was called
|
||||
// Used for perf debugging so you can understand how many IPC calls your game makes per frame
|
||||
@ -298,7 +298,7 @@ public:
|
||||
void RegisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall);
|
||||
void UnregisterCallResult( class CCallbackBase *pCallback, SteamAPICall_t hAPICall);
|
||||
|
||||
void RunCallbacks(bool runClientCB, bool runGameserverCB);
|
||||
void RunCallbacks(bool runClientCB, bool runGameserverCB, bool runBackgroundThread=true);
|
||||
void setAppID(uint32 appid);
|
||||
void userLogIn();
|
||||
void serverInit();
|
||||
|
@ -40,7 +40,7 @@ static void steam_callback(void *object, Common_Message *msg)
|
||||
|
||||
static void steam_run_every_runcb(void *object)
|
||||
{
|
||||
PRINT_DEBUG("steam_networkingsockets_run_every_runcb\n");
|
||||
PRINT_DEBUG("steam_networkingsockets_serialized_run_every_runcb\n");
|
||||
|
||||
Steam_Networking_Sockets_Serialized *steam_networkingsockets = (Steam_Networking_Sockets_Serialized *)object;
|
||||
steam_networkingsockets->RunCallbacks();
|
||||
|
@ -1199,7 +1199,7 @@ SteamAPICall_t RequestGlobalStats( int nHistoryDays )
|
||||
{
|
||||
PRINT_DEBUG("Steam_User_Stats::RequestGlobalStats %i\n", nHistoryDays);
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
GlobalStatsReceived_t data;
|
||||
GlobalStatsReceived_t data{};
|
||||
data.m_nGameID = settings->get_local_game_id().ToUint64();
|
||||
data.m_eResult = k_EResultOK;
|
||||
return callback_results->addCallResult(data.k_iCallback, &data, sizeof(data));
|
||||
|
@ -1872,34 +1872,45 @@ void Steam_Client::UnregisterCallResult( class CCallbackBase *pCallback, SteamAP
|
||||
callback_results_server->rmCallBack(hAPICall, pCallback);
|
||||
}
|
||||
|
||||
void Steam_Client::RunCallbacks(bool runClientCB, bool runGameserverCB)
|
||||
void Steam_Client::RunCallbacks(bool runClientCB, bool runGameserverCB, bool runBackgroundThread)
|
||||
{
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks begin ------------------------------------------------------\n");
|
||||
std::lock_guard<std::recursive_mutex> lock(global_mutex);
|
||||
if (!background_keepalive.joinable()) background_keepalive = std::thread(background_thread, this);
|
||||
if (runBackgroundThread && !background_keepalive.joinable()) {
|
||||
background_keepalive = std::thread(background_thread, this);
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks spawned background thread *********\n");
|
||||
}
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks network *********\n");
|
||||
network->Run();
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks steam_matchmaking_servers\n");
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks steam_matchmaking_servers *********\n");
|
||||
steam_matchmaking_servers->RunCallbacks();
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks run_every_runcb *********\n");
|
||||
run_every_runcb->run();
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks steam_gameserver *********\n");
|
||||
steam_gameserver->RunCallbacks();
|
||||
|
||||
if (runClientCB) {
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callback_results_client\n");
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callback_results_client *********\n");
|
||||
callback_results_client->runCallResults();
|
||||
}
|
||||
|
||||
if (runGameserverCB) {
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callback_results_server\n");
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callback_results_server *********\n");
|
||||
callback_results_server->runCallResults();
|
||||
}
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callbacks_server\n");
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callbacks_server *********\n");
|
||||
callbacks_server->runCallBacks();
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callbacks_client\n");
|
||||
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks callbacks_client *********\n");
|
||||
callbacks_client->runCallBacks();
|
||||
|
||||
last_cb_run = std::chrono::duration_cast<std::chrono::duration<unsigned long long>>(std::chrono::system_clock::now().time_since_epoch()).count();
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks done\n");
|
||||
PRINT_DEBUG("Steam_Client::RunCallbacks done ------------------------------------------------------\n\n");
|
||||
}
|
||||
|
||||
void Steam_Client::DestroyAllInterfaces()
|
||||
|
Loading…
x
Reference in New Issue
Block a user