From 8a10fc629a5f6a43cbed167cc993ee03e1f557dc Mon Sep 17 00:00:00 2001 From: Andrei Coman Date: Fri, 29 Jan 2016 14:11:36 -0800 Subject: [PATCH] Remove timeout from MessageQueueThreadImpl creation Reviewed By: oli Differential Revision: D2880630 fb-gh-sync-id: bd31395abc69750f16a6ab32d11c55af3ec985a4 --- .../react/bridge/queue/MessageQueueThreadImpl.java | 7 +++---- .../react/common/futures/SimpleSettableFuture.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java index 621845126..f4377f4fe 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java @@ -11,7 +11,6 @@ package com.facebook.react.bridge.queue; import java.util.concurrent.Callable; import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; import android.os.Looper; @@ -158,7 +157,7 @@ public class MessageQueueThreadImpl implements MessageQueueThread { registrationFuture.set(null); } }); - registrationFuture.getOrThrow(5000, TimeUnit.MILLISECONDS); + registrationFuture.getOrThrow(); } return mqt; } @@ -180,14 +179,14 @@ public class MessageQueueThreadImpl implements MessageQueueThread { Looper.prepare(); looperFuture.set(Looper.myLooper()); - MessageQueueThreadRegistry.register(mqtFuture.getOrThrow(5000, TimeUnit.MILLISECONDS)); + MessageQueueThreadRegistry.register(mqtFuture.getOrThrow()); Looper.loop(); } }, "mqt_" + name); bgThread.start(); - Looper myLooper = looperFuture.getOrThrow(5000, TimeUnit.MILLISECONDS); + Looper myLooper = looperFuture.getOrThrow(); MessageQueueThreadImpl mqt = new MessageQueueThreadImpl(name, myLooper, exceptionHandler); mqtFuture.set(mqt); diff --git a/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java b/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java index 063279ad3..55fc9eb08 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java +++ b/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java @@ -91,6 +91,18 @@ public class SimpleSettableFuture implements Future { return mResult; } + /** + * Convenience wrapper for {@link #get()} that re-throws get()'s Exceptions as + * RuntimeExceptions. + */ + public @Nullable T getOrThrow() { + try { + return get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e); + } + } + /** * Convenience wrapper for {@link #get(long, TimeUnit)} that re-throws get()'s Exceptions as * RuntimeExceptions.