code: public T await(long timeout) {
          final CountDownLatch latch = new CountDownLatch(1);
          cb = new Callback<T>() {
              @Override
              public void receive(T result, Object error) {
                  latch.countDown();
              }
          };
          boolean timedOut = true;
          try {
              timedOut = !latch.await(timeout, TimeUnit.MILLISECONDS);
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
          if ( timedOut )
              throw new RuntimeException("promise timed out");
          if ( error instanceof Throwable ) {
              FSTUtil.<RuntimeException>rethrow(((Throwable) error));
          } else if ( error != null ) {
              throw new RuntimeException(""+error);
          }
          return result;
      }
docs: in contradiction to original kontraktor promise this is blocking as there are no "Actors" in the client :).
  awaits makes a synchronous method out of a async Promise-returning call. If the promise resolves to an error,
  an exceptions is thrown, else the result is returned.
  @return