summaryrefslogtreecommitdiff
path: root/services/core/java
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-03-22 18:46:21 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-03-22 18:46:21 +0000
commit003db3a53e788a35805a63eb233cb700363d88ab (patch)
tree75d7be212dcf84cc4efba3cb01e79bd43bf69a4e /services/core/java
parent79ddf1afb8db511c3586e8dac932c711bb3c0f57 (diff)
parent62ecd75d5aea27b878335d3cb3574d3f2a68656b (diff)
Merge "Emulator cleanup in ClipboardService.java (openPipe)"
Diffstat (limited to 'services/core/java')
-rw-r--r--services/core/java/com/android/server/clipboard/ClipboardService.java20
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();