diff -r c92596feac0d -r 714310efad8f project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapPreviewGenerator.java --- 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; }