diff --git a/app/src/main/java/ohi/andre/consolelauncher/MainManager.java b/app/src/main/java/ohi/andre/consolelauncher/MainManager.java index a78f237f55b1d39349056e096fae5038e2706daa..fcdedef64b5295b817249b1aa45408d8c1867d5b 100755 --- a/app/src/main/java/ohi/andre/consolelauncher/MainManager.java +++ b/app/src/main/java/ohi/andre/consolelauncher/MainManager.java @@ -239,21 +239,27 @@ public class MainManager { try { Command command = CommandTuils.parse(input, info, false); - if (command != null) { + + synchronized (returnValue) { + returnValue[0] = command != null; + returnValue.notify(); + } + + if (returnValue[0]) { out.onOutput(command.exec(info), id); - returnValue[0] = true; - } else - returnValue[0] = false; + } } catch (Exception e) { out.onOutput(e.toString(), id); } } }; - t.run(); - t.join(); + t.start(); - return returnValue[0]; + synchronized (returnValue) { + returnValue.wait(); + return returnValue[0]; + } } } }