summaryrefslogtreecommitdiff
path: root/src/emerge.cpp
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2013-12-03 23:32:03 +0100
committersapier <Sapier at GMX dot net>2013-12-15 13:39:42 +0100
commite9e9fd7c3f12bc5119b567ad37527d777859dbc0 (patch)
treecc3eb08bf696444ae6bea4a0cfe2cf29f66b56be /src/emerge.cpp
parent977232261388fa80bd6ab3bb849ae4d7a8ade73e (diff)
downloadminetest-e9e9fd7c3f12bc5119b567ad37527d777859dbc0.tar.gz
minetest-e9e9fd7c3f12bc5119b567ad37527d777859dbc0.tar.bz2
minetest-e9e9fd7c3f12bc5119b567ad37527d777859dbc0.zip
Replace SimpleThread by JThread now implementing same features
Diffstat (limited to 'src/emerge.cpp')
-rw-r--r--src/emerge.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/emerge.cpp b/src/emerge.cpp
index 6635a6518..ff00a0b62 100644
--- a/src/emerge.cpp
+++ b/src/emerge.cpp
@@ -47,7 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapgen_math.h"
-class EmergeThread : public SimpleThread
+class EmergeThread : public JThread
{
public:
Server *m_server;
@@ -61,26 +61,17 @@ public:
std::queue<v3s16> blockqueue;
EmergeThread(Server *server, int ethreadid):
- SimpleThread(),
+ JThread(),
m_server(server),
map(NULL),
emerge(NULL),
mapgen(NULL),
+ enable_mapgen_debug_info(false),
id(ethreadid)
{
}
void *Thread();
-
- void trigger()
- {
- setRun(true);
- if(IsRunning() == false)
- {
- Start();
- }
- }
-
bool popBlockEmerge(v3s16 *pos, u8 *flags);
bool getBlockOrStartGen(v3s16 p, MapBlock **b,
BlockMakeData *data, bool allow_generate);
@@ -137,9 +128,9 @@ EmergeManager::EmergeManager(IGameDef *gamedef) {
EmergeManager::~EmergeManager() {
for (unsigned int i = 0; i != emergethread.size(); i++) {
- emergethread[i]->setRun(false);
+ emergethread[i]->Stop();
emergethread[i]->qevent.signal();
- emergethread[i]->stop();
+ emergethread[i]->Wait();
delete emergethread[i];
delete mapgen[i];
}
@@ -261,9 +252,9 @@ Mapgen *EmergeManager::getCurrentMapgen() {
}
-void EmergeManager::triggerAllThreads() {
+void EmergeManager::startAllThreads() {
for (unsigned int i = 0; i != emergethread.size(); i++)
- emergethread[i]->trigger();
+ emergethread[i]->Start();
}
@@ -499,7 +490,7 @@ void *EmergeThread::Thread() {
mapgen = emerge->mapgen[id];
enable_mapgen_debug_info = emerge->mapgen_debug_info;
- while (getRun())
+ while (!StopRequested())
try {
if (!popBlockEmerge(&p, &flags)) {
qevent.wait();