summaryrefslogtreecommitdiff
path: root/src/saveload.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-14 19:54:33 +0000
committerrubidium <rubidium@openttd.org>2008-04-14 19:54:33 +0000
commit12188e7a5dde4cdd4304b3e738b7905e55f3ad9a (patch)
treea38226d767be0babf008f3304e7a61a4a00af2aa /src/saveload.cpp
parenta8008db23daf504af9f313ff0c53c5b89e756e05 (diff)
downloadopenttd-12188e7a5dde4cdd4304b3e738b7905e55f3ad9a.tar.xz
(svn r12706) -Merge: the thread rewrite from NoAI. The rewrite makes the threading we have better extendable.
Diffstat (limited to 'src/saveload.cpp')
-rw-r--r--src/saveload.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/saveload.cpp b/src/saveload.cpp
index cfcbab3c5..00713718b 100644
--- a/src/saveload.cpp
+++ b/src/saveload.cpp
@@ -1499,7 +1499,7 @@ void SaveFileError()
SaveFileDone();
}
-static OTTDThread* save_thread;
+static ThreadObject *save_thread;
/** We have written the whole game into memory, _Savegame_pool, now find
* and appropiate compressor and start writing to file.
@@ -1561,7 +1561,7 @@ static SaveOrLoadResult SaveFileToDisk(bool threaded)
}
}
-static void* SaveFileToDiskThread(void *arg)
+static void * CDECL SaveFileToDiskThread(void *arg)
{
SaveFileToDisk(true);
return NULL;
@@ -1569,7 +1569,9 @@ static void* SaveFileToDiskThread(void *arg)
void WaitTillSaved()
{
- OTTDJoinThread(save_thread);
+ if (save_thread == NULL) return;
+
+ save_thread->Join();
save_thread = NULL;
}
@@ -1641,7 +1643,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb)
SaveFileStart();
if (_network_server ||
- (save_thread = OTTDCreateThread(&SaveFileToDiskThread, NULL)) == NULL) {
+ (save_thread = ThreadObject::New(&SaveFileToDiskThread, NULL)) == NULL) {
if (!_network_server) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode...");
SaveOrLoadResult result = SaveFileToDisk(false);