INNER CODE UNIT · C

new_rd

Cateners/tiny_container · app/src/main/cpp/tiny_audio_jni.c:81

        uint32_t new_rd = w - RING_LATENCY_LIMIT;
        LOGI("ring: latency guard skip %u bytes", new_rd - rd);
        atomic_store_explicit(&r->read_idx, new_rd, memory_order_release);
        rd  = new_rd;
        used = RING_LATENCY_LIMIT;
    }

    uint32_t space = RING_SIZE - used;
    if (n > space) n = space;
    if (!n) return 0;
    uint32_t off = w % RING_SIZE, c0 = RING_SIZE - off;
    if (c0 > n) c0 = n;
    memcpy(r->buf + off, src, c0);
    if (n > c0) memcpy(r->buf, src + c0, n - c0);
    atomic_store_explicit(&r->write_idx, w + n, memory_order_release);
    return n;
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…