(svn r13412) -Add: OTTDThreadTerminateFunc, for all thread systems, which is called when a thread is terminated. Now GenWorld- and SaveLoad-thread cleanup theirselves correctly, while Fibers don't (as that causes access-violations)

This commit is contained in:
truebrain
2008-06-08 12:06:27 +00:00
parent 96d7f87cc9
commit b95042b05c
9 changed files with 44 additions and 27 deletions

View File

@@ -1695,7 +1695,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb)
SaveFileStart();
if (_network_server ||
(_save_thread = ThreadObject::New(&SaveFileToDiskThread, NULL)) == NULL) {
(_save_thread = ThreadObject::New(&SaveFileToDiskThread, NULL, &ThreadObject::TerminateCleanup)) == NULL) {
if (!_network_server) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode...");
SaveOrLoadResult result = SaveFileToDisk(false);