static boolean run(int size, int threads, ExpansionStrategy strategy, long tolerance) {

    OwnerManager.init(threads, strategy);
    createConnector(size, threads);

    PairwiseAsynchrounous.pending = size;
    PairwiseAsynchrounous.start = System.currentTimeMillis();
    PairwiseAsynchrounous.thread = Thread.currentThread();

    try {
      OwnerManager.go();

      Thread.sleep(tolerance);
      thread = null;
      // killed inactive threadpool
      OwnerManager
          .kill(); // threads in the pool throw RejectedExecutionException when cancelling tasks.
      //            System.out.print("-");
      //            interruptToContinue.interrupt();
      return false;
    } catch (InterruptedException e) {
      // successful execution!
      OwnerManager.kill(); // throws RejectedExecutionException to cancelled tasks.
      System.out.print(".");
      ;
      return true;
    } catch (RejectedExecutionException e) {
      System.out.print("** ");
      return false;
    }
  }