/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . util Ċ Ċ import Ġcom . intellij . execution . exec utors . Default Run Executor Ċ import Ġcom . intellij . openapi . external System . model . execution . External System Task Execution Settings Ċ import Ġcom . intellij . openapi . external System . service . execution . Progress Execution Mode Ċ import Ġcom . intellij . openapi . external System . task . Task Callback Ċ import Ġcom . intellij . openapi . external System . util . External System Util Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġjava . nio . file . Path Ċ import Ġjava . util . concurrent . locks . Condition Ċ import Ġjava . util . concurrent . locks . Re entrant Lock Ċ import Ġkotlin . concurrent . with Lock Ċ import Ġorg . jetbrains . plugins . gradle . util . Gradle Constants Ċ Ċ inline Ġfun Ġrun Gradle Task ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġdir : ĠPath , ĊĠĠĠ Ġfunc : Ġ( External System Task Execution Settings ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= ĠExternal System Task Execution Settings (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġexternal System Id String Ġ= ĠGradle Constants . SYSTEM _ ID . id ĊĠĠĠĠĠĠĠ Ġexternal Project Path Ġ= Ġdir . toString () ĊĠĠĠĠĠĠĠ Ġfunc ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlock Ġ= ĠRe entrant Lock () ĊĠĠĠ Ġval Ġcondition Ġ= Ġlock . new Condition () ĊĊĠĠĠ Ġlock . with Lock Ġ{ ĊĠĠĠĠĠĠĠ ĠExternal System Util . run Task ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Run Executor . EXECUT OR _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Constants . SYSTEM _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Callback ( lock , Ġcondition ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProgress Execution Mode . IN _ BACKGROUND _ ASYNC , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcondition . await () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠGradle Callback ( private Ġval Ġlock : ĠRe entrant Lock , Ġprivate Ġval Ġcondition : ĠCondition ) Ġ: ĠTask Callback Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess () Ġ= Ġresume () ĊĠĠĠ Ġoverride Ġfun Ġon Failure () Ġ= Ġresume () ĊĊĠĠĠ Ġprivate Ġfun Ġresume () Ġ{ ĊĠĠĠĠĠĠĠ Ġlock . with Lock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcondition . signal All () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ