saveload.c
changeset 2077 a271195b2722
parent 2051 e369160ce2f3
child 2126 9e3c8fe5d4ce
--- 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 */