@Override
          public void run() {
            try {
              resultRef.set(process.waitFor() == 0);
            }
            catch (InterruptedException ignore) {
            }
            finally {
              semaphore.release();
            }
          }
@Override
          public void run()