Merge "Emulator cleanup in ClipboardService.java (openPipe)" am: 003db3a53e am: e6e19e0c2c

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1634487

Change-Id: I19401711c033f07d60b5b06da1e3e0cfbbf2d659
This commit is contained in:
Treehugger Robot
2021-03-22 19:31:56 +00:00
committed by Automerger Merge Worker

View File

@@ -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();