RootShell: hoist out synchronization

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2018-01-09 15:19:50 +01:00
parent 14638b10ae
commit 23c09eb655

View File

@ -57,13 +57,11 @@ public class RootShell {
return false; return false;
} }
public boolean isRunning() { public synchronized boolean isRunning() {
try { try {
// Throws an exception if the process hasn't finished yet. // Throws an exception if the process hasn't finished yet.
synchronized (this) {
if (process != null) if (process != null)
process.exitValue(); process.exitValue();
}
} catch (final IllegalThreadStateException ignored) { } catch (final IllegalThreadStateException ignored) {
// The existing process is still running. // The existing process is still running.
return true; return true;
@ -149,14 +147,12 @@ public class RootShell {
} }
} }
public void stop() throws IOException { public synchronized void stop() throws IOException {
synchronized (this) {
if (process != null) { if (process != null) {
process.destroy(); process.destroy();
process = null; process = null;
} }
} }
}
public static class NoRootException extends Exception { public static class NoRootException extends Exception {
public NoRootException(final String message, final Throwable cause) { public NoRootException(final String message, final Throwable cause) {