summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/android/net/util/FdEventsReader.java32
-rw-r--r--src/android/net/util/PacketReader.java2
2 files changed, 13 insertions, 21 deletions
diff --git a/src/android/net/util/FdEventsReader.java b/src/android/net/util/FdEventsReader.java
index 1380ea7..e82c69b 100644
--- a/src/android/net/util/FdEventsReader.java
+++ b/src/android/net/util/FdEventsReader.java
@@ -63,7 +63,6 @@ import java.io.IOException;
* the Handler constructor argument is associated.
*
* @param <BufferType> the type of the buffer used to read data.
- * @hide
*/
public abstract class FdEventsReader<BufferType> {
private static final int FD_EVENTS = EVENT_INPUT | EVENT_ERROR;
@@ -93,27 +92,21 @@ public abstract class FdEventsReader<BufferType> {
}
/** Start this FdEventsReader. */
- public void start() {
- if (onCorrectThread()) {
- createAndRegisterFd();
- } else {
- mHandler.post(() -> {
- logError("start() called from off-thread", null);
- createAndRegisterFd();
- });
+ public boolean start() {
+ if (!onCorrectThread()) {
+ throw new IllegalStateException("start() called from off-thread");
}
+
+ return createAndRegisterFd();
}
/** Stop this FdEventsReader and destroy the file descriptor. */
public void stop() {
- if (onCorrectThread()) {
- unregisterAndDestroyFd();
- } else {
- mHandler.post(() -> {
- logError("stop() called from off-thread", null);
- unregisterAndDestroyFd();
- });
+ if (!onCorrectThread()) {
+ throw new IllegalStateException("stop() called from off-thread");
}
+
+ unregisterAndDestroyFd();
}
@NonNull
@@ -178,8 +171,8 @@ public abstract class FdEventsReader<BufferType> {
*/
protected void onStop() {}
- private void createAndRegisterFd() {
- if (mFd != null) return;
+ private boolean createAndRegisterFd() {
+ if (mFd != null) return true;
try {
mFd = createFd();
@@ -189,7 +182,7 @@ public abstract class FdEventsReader<BufferType> {
mFd = null;
}
- if (mFd == null) return;
+ if (mFd == null) return false;
mQueue.addOnFileDescriptorEventListener(
mFd,
@@ -205,6 +198,7 @@ public abstract class FdEventsReader<BufferType> {
return FD_EVENTS;
});
onStart();
+ return true;
}
private boolean isRunning() {
diff --git a/src/android/net/util/PacketReader.java b/src/android/net/util/PacketReader.java
index 4aec6b6..0be7187 100644
--- a/src/android/net/util/PacketReader.java
+++ b/src/android/net/util/PacketReader.java
@@ -28,8 +28,6 @@ import java.io.FileDescriptor;
*
* TODO: rename this class to something more correctly descriptive (something
* like [or less horrible than] FdReadEventsHandler?).
- *
- * @hide
*/
public abstract class PacketReader extends FdEventsReader<byte[]> {