package Ġcom . walk mind . extensions . misc Ċ Ċ interface ĠObject Pool < T > Ġ{ ĊĠĠĠ Ġfun Ġacquire (): ĠT ĊĠĠĠ Ġfun Ġrelease ( obj : ĠT ) Ċ } Ċ Ċ inline Ġfun Ġ< T , ĠR > ĠObject Pool < T >. use ( body : Ġ( T ) Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠ Ġvar Ġobj : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġobj Ġ= Ġthis . acquire () ĊĠĠĠĠĠĠĠ Ġreturn Ġbody ( obj ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . release ( obj ) ĊĠĠĠ Ġ} Ċ } Ċ