# HG changeset patch # User Darkvater # Date 1121507731 0 # Node ID 8d9a286eba0d62dfc7e47561cd503c48187f8536 # Parent 987cdb4f2d0ecf6c168d85dd01370f0d66121e53 (svn r2587) - Fix: Don't close the save-thread if it wasn't started because of some error or a network-server diff -r 987cdb4f2d0e -r 8d9a286eba0d saveload.c --- a/saveload.c Fri Jul 15 21:31:09 2005 +0000 +++ b/saveload.c Sat Jul 16 09:55:31 2005 +0000 @@ -1280,7 +1280,7 @@ fclose(_sl.fh); SaveFileDone(); - CloseOTTDThread(); + if (*(bool*)ptr) CloseOTTDThread(); return true; } @@ -1352,6 +1352,7 @@ /* General tactic is to first save the game to memory, then use an available writer * to write it to file, either in threaded mode if possible, or single-threaded */ if (mode == SL_SAVE) { /* SAVE game */ + bool threaded = true; fmt = GetSavegameFormat("memory"); // write to memory _sl.write_bytes = fmt->writer; @@ -1368,9 +1369,10 @@ SlWriteFill(); // flush the save buffer /* Write to file */ - if (_network_server || !CreateOTTDThread(&SaveFileToDisk, NULL)) { + if (_network_server || !CreateOTTDThread(&SaveFileToDisk, &threaded)) { DEBUG(misc, 1) ("cannot create savegame thread, reverting to single-threaded mode..."); - SaveFileToDisk(NULL); + threaded = false; + SaveFileToDisk(&threaded); } } else { /* LOAD game */