diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2021-03-22 18:46:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-03-22 18:46:21 +0000 |
commit | 003db3a53e788a35805a63eb233cb700363d88ab (patch) | |
tree | 75d7be212dcf84cc4efba3cb01e79bd43bf69a4e | |
parent | 79ddf1afb8db511c3586e8dac932c711bb3c0f57 (diff) | |
parent | 62ecd75d5aea27b878335d3cb3574d3f2a68656b (diff) |
Merge "Emulator cleanup in ClipboardService.java (openPipe)"
-rw-r--r-- | services/core/java/com/android/server/clipboard/ClipboardService.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index b355730c6450..6776f49b7d8f 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -91,16 +91,19 @@ class HostClipboardMonitor implements Runnable { return bits; } - private void openPipe() { + private boolean openPipe() { try { - mPipe = new RandomAccessFile(PIPE_DEVICE, "rw"); - mPipe.write(createOpenHandshake()); - } catch (IOException e) { + final RandomAccessFile pipe = new RandomAccessFile(PIPE_DEVICE, "rw"); try { - if (mPipe != null) mPipe.close(); - } catch (IOException ee) {} - mPipe = null; + pipe.write(createOpenHandshake()); + mPipe = pipe; + return true; + } catch (IOException ignore) { + pipe.close(); + } + } catch (IOException ignore) { } + return false; } public HostClipboardMonitor(HostClipboardCallback cb) { @@ -114,8 +117,7 @@ class HostClipboardMonitor implements Runnable { // There's no guarantee that QEMU pipes will be ready at the moment // this method is invoked. We simply try to get the pipe open and // retry on failure indefinitely. - while (mPipe == null) { - openPipe(); + while ((mPipe == null) && !openPipe()) { Thread.sleep(100); } int size = mPipe.readInt(); |