diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-12-13 20:10:23 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-12-13 20:10:23 +0100 |
commit | a595a4a842123f10a4b27ae082794bad0250a307 (patch) | |
tree | b0f50e06e6f7a55a8d5a18cfb37a53234f527236 /src/Protocol/MojangAPI.cpp | |
parent | Added cocoa pod. (diff) | |
parent | Merge pull request #1663 from mc-server/APIDumpSize (diff) | |
download | cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.gz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.bz2 cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.lz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.xz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.zst cuberite-a595a4a842123f10a4b27ae082794bad0250a307.zip |
Diffstat (limited to 'src/Protocol/MojangAPI.cpp')
-rw-r--r-- | src/Protocol/MojangAPI.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/Protocol/MojangAPI.cpp b/src/Protocol/MojangAPI.cpp index 67f513e44..570754204 100644 --- a/src/Protocol/MojangAPI.cpp +++ b/src/Protocol/MojangAPI.cpp @@ -161,26 +161,38 @@ class cMojangAPI::cUpdateThread : { typedef cIsThread super; public: - cUpdateThread() : - super("cMojangAPI::cUpdateThread") + cUpdateThread(cMojangAPI & a_MojangAPI) : + super("cMojangAPI::cUpdateThread"), + m_MojangAPI(a_MojangAPI) { } ~cUpdateThread() { + // Notify the thread that it should stop: + m_ShouldTerminate = true; m_evtNotify.Set(); + + // Wait for the thread to actually finish work: Stop(); } protected: + + /** The cMojangAPI instance to update. */ + cMojangAPI & m_MojangAPI; + + /** The event used for notifying that the thread should terminate, as well as timing. */ cEvent m_evtNotify; + + // cIsThread override: virtual void Execute(void) override { do { - cRoot::Get()->GetMojangAPI().Update(); - } while (!m_evtNotify.Wait(60 * 60 * 1000)); // Repeat every 60 minutes + m_MojangAPI.Update(); + } while (!m_ShouldTerminate && !m_evtNotify.Wait(60 * 60 * 1000)); // Repeat every 60 minutes until termination request } } ; @@ -197,7 +209,7 @@ cMojangAPI::cMojangAPI(void) : m_UUIDToProfileServer(DEFAULT_UUID_TO_PROFILE_SERVER), m_UUIDToProfileAddress(DEFAULT_UUID_TO_PROFILE_ADDRESS), m_RankMgr(nullptr), - m_UpdateThread(new cUpdateThread()) + m_UpdateThread(new cUpdateThread(*this)) { } |