/** {@inheritDoc} */
 @Override
 public GridFuture<Boolean> awaitAsync(final long timeout, final TimeUnit unit) {
   return ctx.closures()
       .callLocalSafe(
           new Callable<Boolean>() {
             @Override
             public Boolean call() throws Exception {
               return await(timeout, unit);
             }
           },
           true);
 }
  /** {@inheritDoc} */
  @Override
  public GridFuture<?> awaitAsync() {
    return ctx.closures()
        .callLocalSafe(
            new Callable<Object>() {
              @Nullable
              @Override
              public Object call() throws Exception {
                await();

                return null;
              }
            },
            true);
  }
 /** {@inheritDoc} */
 @Override
 public GridFuture<?> countDownAllAsync() {
   return ctx.closures().callLocalSafe(new CountDownCallable(0), true);
 }
 /** {@inheritDoc} */
 @Override
 public GridFuture<Integer> countDownAsync(int val) {
   return ctx.closures().callLocalSafe(new CountDownCallable(val), true);
 }