package Ġed a . compute . util . concurrent . future . pairs Ċ Ċ import Ġed a . compute . util . concurrent . Thread Factory Ċ import Ġed a . compute . util . concurrent . future . base . Base Void Promise Ċ import Ġed a . compute . util . concurrent . future . fn . Future Consumer Ċ Ċ /** Ċ Ġ* ĠAs ynchronous Ġimplementation Ġof Ġthe Ġ[ Future Consumer Pair ] Ġinterface . Ċ Ġ* Ċ Ġ* ĠThis Ġimplementation Ġwill Ġattempt Ġto Ġsuccessfully Ġresolve Ġthe Ġwrapped Ġchild Ċ Ġ* Ġpromise Ġon Ġcompletion Ġof Ġ[ future ] Ġregardless Ġof Ġwhether Ġthe Ġparent Ġpromise Ċ Ġ* Ġfailed . Ċ Ġ* Ċ Ġ* Ġ@ param Ġpromise Ċ Ġ* ĠChild Ġpromise Ġto Ġbe Ġresolved Ġby Ġ[ future ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġfuture Ċ Ġ* ĠConsumer Ġfunction Ġthat Ġwill Ġresolve Ġ[ promise ]. Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Ċ Ġ* ĠType Ġof Ġvalue Ġthat Ġwill Ġbe Ġprovided Ġby Ġthe Ġparent Ġpromise . Ċ Ġ* Ċ Ġ* Ġ@ see ĠP ooled Consumer Pair Ċ Ġ* Ġ@ see ĠSimple Consumer Pair Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 1 . 0 . 0 Ċ Ġ* Ċ Ġ* Ġ@ author ĠE liz abe th ĠHar per Ġ[ e ph ar per @ up enn . edu ] Ċ Ġ*/ Ċ internal Ġdata Ġclass ĠAsync Consumer Pair < T >( ĊĠ Ġoverride Ġval Ġpromise : ĠBase Void Promise , ĊĠ Ġoverride Ġval Ġfuture : Ġ ĠFuture Consumer < T >, Ċ ) Ġ: ĠFuture Consumer Pair < T > Ġ{ ĊĠ Ġoverride Ġfun Ġrun ( value : ĠT ) Ġ{ ĊĠĠĠ ĠThread Factory . new Thread Ġ{ ĊĠĠĠĠĠ Ġif Ġ( promise . is Cancelled ) ĊĠĠĠĠĠĠĠ Ġreturn @ new Thread ĊĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġfuture . accept ( value ) ĊĠĠĠĠĠĠĠ Ġpromise . resolve Successfully () ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpromise . resolve Exception ally ( e ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. start () ĊĠ Ġ} Ċ } Ċ