diff options
author | Jeff Brown <jeffbrown@google.com> | 2015-03-13 19:11:42 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-03-13 19:12:04 +0000 |
commit | 3e0045e0dffc90834219968aae0c0062ba541c53 (patch) | |
tree | b0a82564adb3895b2c7285fd4f4a04aa053186b4 /core/java/android/os | |
parent | 031b7feb0f0f642206d2d1bae502655f1dfe3889 (diff) | |
parent | b2a1985b139b6c8e10fb2cf87bfc4170dd7f2e3c (diff) | |
download | frameworks_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.java | 7 |
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; } |