objectPool

fun <T> objectPool(maxSize: Int, maxDuration: Duration = 5.minutes, onClose: suspend (T) -> Unit = {}, factory: suspend () -> T): ObjectPool<T>
suspend fun <T> objectPool(maxSize: Int, initialSize: Int = 1, maxDuration: Duration = 5.minutes, onClose: suspend (T) -> Unit = {}, factory: suspend () -> T): ObjectPool<T>