public Future < ? > submitAfter ( Waiter waiter , Runnable runnable , long timeout , TimeUnit unit ) { AfterTask < ? > task = new AfterTask <> ( waiter , runnable , timeout , unit ) ; log ( logLevel , "submit after task %s" , task ) ; return submit ( task ) ; }
submits runnable after waiting future to complete or timeout to exceed . If timeout exceeds task is cancelled .