override suspend fun readAvailable()

in ktor-io/jvm/src/io/ktor/utils/io/ByteBufferChannel.kt [603:615]


    override suspend fun readAvailable(dst: ByteArray, offset: Int, length: Int): Int {
        val consumed = readAsMuchAsPossible(dst, offset, length)

        if (consumed == 0 && closed != null) {
            if (state.capacity.flush()) {
                return readAsMuchAsPossible(dst, offset, length)
            } else {
                return -1
            }
        } else if (consumed > 0 || length == 0) return consumed

        return readAvailableSuspend(dst, offset, length)
    }