@Override
  public ParSeqBasedCompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
  {
    return nextStageByComposingTask(_task.flatMap("thenRunAsync", t -> Task.blocking(() -> {
      action.run();
      return null;
    }, executor)));
  }
@Test
  public void testThenRunAsync() throws Exception
  {
    CompletionStage<String> completionStage = createTestStage(TESTVALUE1);

    CountDownLatch waitLatch = new CountDownLatch(1);

    completionStage.thenRunAsync(() -> {
      assertEquals(THREAD_NAME_VALUE, Thread.currentThread().getName());
      waitLatch.countDown();
    }, _mockExecutor);

    finish(completionStage);
    waitLatch.await(1000, TimeUnit.MILLISECONDS);
  }