summaryrefslogtreecommitdiffstats
path: root/core/java/android/os
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2015-03-13 19:11:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-13 19:12:04 +0000
commit3e0045e0dffc90834219968aae0c0062ba541c53 (patch)
treeb0a82564adb3895b2c7285fd4f4a04aa053186b4 /core/java/android/os
parent031b7feb0f0f642206d2d1bae502655f1dfe3889 (diff)
parentb2a1985b139b6c8e10fb2cf87bfc4170dd7f2e3c (diff)
downloadframeworks_base-3e0045e0dffc90834219968aae0c0062ba541c53.zip
frameworks_base-3e0045e0dffc90834219968aae0c0062ba541c53.tar.gz
frameworks_base-3e0045e0dffc90834219968aae0c0062ba541c53.tar.bz2
Merge "Avoid rebuilding epoll set when PFD status report is done."
Diffstat (limited to 'core/java/android/os')
-rw-r--r--core/java/android/os/ParcelFileDescriptor.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java
index ba1699e..5b26304 100644
--- a/core/java/android/os/ParcelFileDescriptor.java
+++ b/core/java/android/os/ParcelFileDescriptor.java
@@ -235,8 +235,8 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
final FileDescriptor[] comm = createCommSocketPair();
final ParcelFileDescriptor pfd = new ParcelFileDescriptor(fd, comm[0]);
-
- handler.getLooper().getQueue().registerFileDescriptorCallback(comm[1],
+ final MessageQueue queue = handler.getLooper().getQueue();
+ queue.registerFileDescriptorCallback(comm[1],
FileDescriptorCallback.EVENT_INPUT, new FileDescriptorCallback() {
@Override
public int onFileDescriptorEvents(FileDescriptor fd, int events) {
@@ -248,9 +248,10 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
status = new Status(Status.DEAD);
}
if (status != null) {
+ queue.unregisterFileDescriptorCallback(fd);
IoUtils.closeQuietly(fd);
listener.onClose(status.asIOException());
- return 0; // unregister the callback
+ return 0;
}
return EVENT_INPUT;
}