Codechange: Replace custom thread code with C++11 thread objects.

We assume a conforming C++11 compiler environment that has a valid <thread>-header.
Failure to run a real thread is handled gracefully.
This commit is contained in:
Michael Lutz
2019-03-17 01:59:46 +01:00
parent 05f4e73608
commit 05bc2ed7cb
35 changed files with 191 additions and 577 deletions

View File

@@ -12,7 +12,7 @@
#ifndef LINKGRAPHJOB_H
#define LINKGRAPHJOB_H
#include "../thread/thread.h"
#include "../thread.h"
#include "linkgraph.h"
#include <list>
@@ -59,7 +59,7 @@ private:
protected:
const LinkGraph link_graph; ///< Link graph to by analyzed. Is copied when job is started and mustn't be modified later.
const LinkGraphSettings settings; ///< Copy of _settings_game.linkgraph at spawn time.
ThreadObject *thread; ///< Thread the job is running in or NULL if it's running in the main thread.
std::thread thread; ///< Thread the job is running in or a default-constructed thread if it's running in the main thread.
Date join_date; ///< Date when the job is to be joined.
NodeAnnotationVector nodes; ///< Extra node data necessary for link graph calculation.
EdgeAnnotationMatrix edges; ///< Extra edge data necessary for link graph calculation.
@@ -266,7 +266,7 @@ public:
* Bare constructor, only for save/load. link_graph, join_date and actually
* settings have to be brutally const-casted in order to populate them.
*/
LinkGraphJob() : settings(_settings_game.linkgraph), thread(NULL),
LinkGraphJob() : settings(_settings_game.linkgraph),
join_date(INVALID_DATE) {}
LinkGraphJob(const LinkGraph &orig);