package Ġio . ktor . c io Ċ Ċ import Ġkotlinx . io . pool .* Ċ import Ġjava . nio .* ĊĊ Ċ internal Ġconst Ġval ĠDEFAULT _ BUFFER _ SIZE Ġ= Ġ 4 0 9 8 Ċ internal Ġconst Ġval ĠDEFAULT _ KT OR _ POOL _ SIZE Ġ= Ġ 2 0 4 8 Ċ Ċ object ĠK tor Default Pool Ġ: ĠDefault Pool < ByteBuffer >( DEFAULT _ KT OR _ POOL _ SIZE ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġproduce Instance (): ĠByteBuffer Ġ= ĠByteBuffer . allocate ( DEFAULT _ BUFFER _ SIZE ) ĊĊĠĠĠ Ġoverride Ġfun Ġclear Instance ( instance : ĠByteBuffer ): ĠByteBuffer Ġ= Ġinstance . apply Ġ{ Ġclear () Ġ} Ċ } Ċ Ċ suspend Ġfun Ġ< T Ġ: ĠAny > ĠObject Pool < T >. use ( block : Ġsuspend Ġ( T ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġitem Ġ= Ġborrow () ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( item ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġre cycle ( item ) ĊĠĠĠ Ġ} Ċ } Ċ