Merge "Emulator cleanup in ClipboardService.java (openPipe)"

This commit is contained in:
Treehugger Robot
2021-03-22 18:46:21 +00:00
committed by Gerrit Code Review

View File

@@ -91,16 +91,19 @@ class HostClipboardMonitor implements Runnable {
return bits; return bits;
} }
private void openPipe() { private boolean openPipe() {
try { try {
mPipe = new RandomAccessFile(PIPE_DEVICE, "rw"); final RandomAccessFile pipe = new RandomAccessFile(PIPE_DEVICE, "rw");
mPipe.write(createOpenHandshake());
} catch (IOException e) {
try { try {
if (mPipe != null) mPipe.close(); pipe.write(createOpenHandshake());
} catch (IOException ee) {} mPipe = pipe;
mPipe = null; return true;
} catch (IOException ignore) {
pipe.close();
}
} catch (IOException ignore) {
} }
return false;
} }
public HostClipboardMonitor(HostClipboardCallback cb) { 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 // 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 // this method is invoked. We simply try to get the pipe open and
// retry on failure indefinitely. // retry on failure indefinitely.
while (mPipe == null) { while ((mPipe == null) && !openPipe()) {
openPipe();
Thread.sleep(100); Thread.sleep(100);
} }
int size = mPipe.readInt(); int size = mPipe.readInt();