diff --git a/example/src/main/java/com/topjohnwu/libsuexample/MainActivity.java b/example/src/main/java/com/topjohnwu/libsuexample/MainActivity.java index d4227c08..59bebbba 100644 --- a/example/src/main/java/com/topjohnwu/libsuexample/MainActivity.java +++ b/example/src/main/java/com/topjohnwu/libsuexample/MainActivity.java @@ -40,14 +40,14 @@ protected void onCreate(Bundle savedInstanceState) { // Run the shell command in the input box synchronously sync_cmd.setOnClickListener(v -> { - Shell.Sync.su(consoleList, input.getText().toString()); + Shell.Sync.sh(consoleList, input.getText().toString()); input.setText(""); }); // Run the shell command in the input box asynchronously. // Also demonstrates that Async.Callback works async_cmd.setOnClickListener(v -> { - Shell.Async.su(consoleList, consoleList, + Shell.Async.sh(consoleList, consoleList, (out, err) -> Log.d(TAG, "in_async_callback"), input.getText().toString()); input.setText(""); diff --git a/superuser/src/main/java/com/topjohnwu/superuser/Shell.java b/superuser/src/main/java/com/topjohnwu/superuser/Shell.java index fbbe4910..47e0642f 100644 --- a/superuser/src/main/java/com/topjohnwu/superuser/Shell.java +++ b/superuser/src/main/java/com/topjohnwu/superuser/Shell.java @@ -181,7 +181,7 @@ public class Shell implements Closeable { final InputStream STDERR; final ReentrantLock lock; - private int status; + private int status = -2; private CharSequence token; private StreamGobbler outGobbler; private StreamGobbler errGobbler; @@ -581,6 +581,8 @@ public static void loadScript(List output, List error, Callback @Override public void close() throws IOException { + if (status < UNKNOWN) + return; // Make sure no thread is currently using the shell before closing lock.lock(); try {