package Ġco . touch lab . state ly . isolate Ċ Ċ import Ġco . touch lab . state ly . concurrency . Thread Ref Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ Ċ actual Ġclass ĠState Holder < out ĠT Ġ: ĠAny > Ġactual Ġconstructor ( t : ĠT , Ġactual Ġval Ġstate Runner : ĠState Runner ) Ġ{ ĊĠĠĠ Ġactual Ġval Ġmy State : ĠT Ġ= Ġt ĊĊĠĠĠ Ġprivate Ġvar Ġ_ is Disposed : ĠAtomic Boolean Ġ= ĠAtomic Boolean ( false ) ĊĊĠĠĠ Ġactual Ġval Ġis Disposed : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ is Disposed . get () ĊĊĠĠĠ Ġactual Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ is Disposed . set ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġthread Ref Ġ= ĠThread Ref () ĊĠĠĠ Ġactual Ġval Ġmy Thread : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthread Ref . same () Ċ } Ċ