Changeset View
Changeset View
Standalone View
Standalone View
source/ps/UserReport.cpp
Show First 20 Lines • Show All 572 Lines • ▼ Show 20 Lines | |||||
void CUserReporter::Initialize() | void CUserReporter::Initialize() | ||||
{ | { | ||||
ENSURE(!m_Worker); // must only be called once | ENSURE(!m_Worker); // must only be called once | ||||
std::string userID = LoadUserID(); | std::string userID = LoadUserID(); | ||||
std::string url; | std::string url; | ||||
CFG_GET_VAL("userreport.url", url); | CFG_GET_VAL("userreport.url", url); | ||||
// Initialise everything except Win32 sockets (because our networking | |||||
// system already inits those) | |||||
curl_global_init(CURL_GLOBAL_ALL & ~CURL_GLOBAL_WIN32); | |||||
m_Worker = new CUserReporterWorker(userID, url); | m_Worker = new CUserReporterWorker(userID, url); | ||||
m_Worker->SetEnabled(IsReportingEnabled()); | m_Worker->SetEnabled(IsReportingEnabled()); | ||||
} | } | ||||
void CUserReporter::Deinitialize() | void CUserReporter::Deinitialize() | ||||
{ | { | ||||
if (!m_Worker) | if (!m_Worker) | ||||
return; | return; | ||||
if (m_Worker->Shutdown()) | if (m_Worker->Shutdown()) | ||||
{ | { | ||||
// Worker was shut down cleanly | // Worker was shut down cleanly | ||||
SAFE_DELETE(m_Worker); | SAFE_DELETE(m_Worker); | ||||
curl_global_cleanup(); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
// Worker failed to shut down in a reasonable time | // Worker failed to shut down in a reasonable time | ||||
// Leak the resources (since that's better than hanging or crashing) | // Leak the resources (since that's better than hanging or crashing) | ||||
m_Worker = NULL; | m_Worker = NULL; | ||||
} | } | ||||
} | } | ||||
Show All 21 Lines |
Wildfire Games · Phabricator