Browse Source

[prefab] savePrefabDat retries writing file if exception occured

Clément Espeute 8 months ago
parent
commit
ab523028dd
1 changed files with 17 additions and 1 deletions
  1. 17 1
      hide/prefab/ContextShared.hx

+ 17 - 1
hide/prefab/ContextShared.hx

@@ -91,7 +91,23 @@ class ContextShared extends hrt.prefab.ContextShared.ContextSharedBase {
 			}
 			return;
 		}else{
-			sys.io.File.saveBytes(file, bytes);
+			final numRetries = 5;
+			var success = false;
+			var lastError = null;
+			for (i in 0...numRetries) {
+				try {
+					sys.io.File.saveBytes(file, bytes);
+					success = true;
+					break;
+				} catch (e) {
+					lastError = e;
+					Sys.sleep(0.1);
+					continue;
+				}
+			}
+			if (!success) {
+				throw lastError;
+			}
 		}
 	}