Fix for deadlock if MessageNotifier called from UI thread.

Fixes #3173

// FREEBIE
This commit is contained in:
Moxie Marlinspike 2015-05-15 08:26:04 -07:00
parent 8011b308c2
commit 4f78309e51
1 changed files with 5 additions and 3 deletions

View File

@ -21,7 +21,6 @@ import android.util.Log;
import android.util.Pair;
import com.android.gallery3d.data.Exif;
import com.makeramen.RoundedDrawable;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.mms.PartAuthority;
@ -263,7 +262,7 @@ public class BitmapUtil {
final AtomicBoolean created = new AtomicBoolean(false);
final Bitmap[] result = new Bitmap[1];
new Handler(Looper.getMainLooper()).post(new Runnable() {
Runnable runnable = new Runnable() {
@Override
public void run() {
if (drawable instanceof BitmapDrawable) {
@ -295,7 +294,10 @@ public class BitmapUtil {
result.notifyAll();
}
}
});
};
if (Looper.myLooper() == Looper.getMainLooper()) runnable.run();
else new Handler(Looper.getMainLooper()).post(runnable);
synchronized (result) {
while (!created.get()) Util.wait(result, 0);