Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6e19e0c authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: If63c59524daf8b2765e85daa473f7385bbb52909
parents 31d7527d 003db3a5
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -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();