project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapPreviewGenerator.java
changeset 7582 714310efad8f
parent 7508 763d3961400b
child 7584 7831c84cc644
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapPreviewGenerator.java	Mon Aug 20 20:16:37 2012 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapPreviewGenerator.java	Mon Aug 20 20:19:35 2012 +0200
@@ -89,7 +89,11 @@
 					} catch (InterruptedException e) {
 						// ignore
 					}
-				} while(!resultAvailable && System.nanoTime()-startTime < 15000000000l); // 15 seconds timeout
+					if(System.nanoTime()-startTime > 15000000000l) {
+						Log.w(TAG, "Error generating map preview: timeout");
+						resultAvailable = true;
+					}
+				} while(!resultAvailable); // 15 seconds timeout
 			} finally {
 				Flib.INSTANCE.flib_mapconn_destroy(conn);
 				postToListener(result);
@@ -117,9 +121,7 @@
 		new Thread(new Runnable() {
 			public void run() {
 				Log.d(TAG, "Starting engine "+port);
-				synchronized(PascalExports.engineMutex) {
-					PascalExports.HWGenLandPreview(port);
-				}
+				PascalExports.synchronizedGenLandPreview(port);
 				Log.d(TAG, "Engine finished");
 			}
 		}).start();
@@ -139,7 +141,6 @@
 	 */
 	private final MapimageCallback successCb = new MapimageCallback() {
 		public void callback(Pointer context, Pointer buffer, int hedgehogCount) {
-			Log.d(TAG, "Running success handler");
 			byte[] mapdata = buffer.getByteArray(0, Frontlib.MAPIMAGE_BYTES);
 			
 			int leftmostPixel = Frontlib.MAPIMAGE_WIDTH;
@@ -192,7 +193,7 @@
 	
 	private final StrCallback failureCb = new StrCallback() {
 		public void callback(Pointer context, String reason) {
-			Log.e(TAG, "Error generating map preview: "+reason);
+			Log.w(TAG, "Error generating map preview: "+reason);
 			result = null;
 			resultAvailable = true;
 		}