Skip to content

Releases: paddor/fanring.rs

yring 0.3.20

Choose a tag to compare

@github-actions github-actions released this 06 Oct 13:55
31a8c5c

Changed

  • Clarify batched publication and conservative wakeup hints in the README.

fanring 0.3.9

Choose a tag to compare

@github-actions github-actions released this 06 Oct 13:55
31a8c5c

Added

  • MPSC Receiver::poll_all_lanes discovers unsignaled publications for scalar
    and tagged receives while preserving paused lanes and receive rotation.
  • MPSC Sender::try_register_with_capacity registers a lane with independent
    ring capacity. Ordinary registrations retain the channel's original capacity.
  • MPSC Sender::lane returns an opaque, Copy, generation-safe LaneId.
    Channel identities never wrap; exhausted lane generations are not reused.
  • MPSC Receiver::with_lane_ids borrows a receive view returning (LaneId, T)
    from ordinary, fair, blocking, timed, and asynchronous single-value receives.
    Plain receives share the drain implementation without constructing lane IDs.
  • MPSC receivers can pause/resume ordinary drainage, receive from one lane,
    and close a lane independently. Paused lanes retain FIFO and backpressure;
    targeted receives remain available and stale IDs cannot select reused slots.

Changed

  • Require yring 0.3.20.
  • Move usage guidance to GETTING_STARTED.md and consolidate teardown policy
    contracts in DESIGN.md.

Fixed

  • Closing a deferred MPSC lane rejects subsequent sends even when the producer
    still has cached space. Signaled, unsignaled, and deferred sends check the
    lane's own disconnect state.

yring 0.3.19

Choose a tag to compare

@github-actions github-actions released this 04 Oct 08:08
c77952d

Added

  • AsyncProducer::poll_ready() registers capacity wakes without owning a
    value. It becomes ready when capacity is available or the consumer drops.

  • Consumer::release_with_full() publishes batched consumed credits and
    reports whether a full or registered producer needs a wake. It preserves
    unread prefetched slots and leaves release watermarks to the caller.

fanring 0.3.8

Choose a tag to compare

@github-actions github-actions released this 04 Oct 08:08
c77952d

Changed

  • Require yring 0.3.19 with caller-controlled consumer batch release hints
    and asynchronous producer capacity polling.

yring 0.3.18

Choose a tag to compare

@github-actions github-actions released this 26 Sep 18:47
2906112

Added

  • Consumer::pop_into() moves up to a limit of prefetched items into a Vec
    with at most two contiguous copies, preserving FIFO order and slot
    ownership rules.
  • Consumer::pop_into_while() moves the prefix of the prefetched window that
    an admission predicate accepts, reading each item in place and leaving the
    first rejected item at the front of the window. A rejected item, or every
    item seen before a panicking predicate, is offered again by the next call.

fanring 0.3.7

Choose a tag to compare

@github-actions github-actions released this 26 Sep 18:47
2906112

Added

  • Add endpoint-local WaitStrategy::SpinFor for bounded active spinning before
    synchronous send and receive operations park.
  • MPSC Receiver::try_recv_batch_into appends a bounded batch without
    blocking, releases consumed slots before returning, and reports Empty or
    Disconnected when nothing was appended.
  • MPSC Sender::is_full reports whether the sender's lane can take another
    value, so lossy producers can skip building a value they would drop.
  • MPSC Receiver::try_recv_batch_into_while takes an admission predicate that
    sees each value in place and stops the batch at the first rejected value,
    which stays queued. Accepted windows still move in bulk. The predicate may
    see a value again on a later call. Requires yring 0.3.18.
  • MPSC Sender::try_send_unsignaled publishes a value without marking its
    lane ready or waking the receiver, which skips the per-send atomic
    read-modify-write under Deferred teardown. The caller provides the wakeup
    and the fences it needs. Signaled and unsignaled sends may share a lane.
  • MPSC Receiver::try_recv_scan_into_while visits every registered lane
    instead of relying on readiness, so it finds unsignaled values. Each lane
    stays queued at most once. When it returns fewer values than requested
    without a rejection, every lane registered when the call started was
    observed empty during the call.

Changed

  • MPSC single-value receive credits scale to half-ring batches, independent of
    the 64-item fairness burst. Rings above 128 slots resume full producers at
    the half-full low watermark; smaller rings retain their existing batch size.
    Empty-lane handling and explicit, bulk, and async receive flushes still
    release partial credits; capacity-one channels and teardown still wake
    immediately when progress is possible.
  • MPSC recv_batch_into and recv_batch_into_async move whole prefetched
    windows out of sender rings with yring::Consumer::pop_into instead of
    popping one value at a time. Lane rotation, readiness polling, slot release,
    and per-sender FIFO order match repeated try_recv calls. Requires yring
    0.3.18.

Fixed

  • MPMC receivers return consumed ring slots once they take a lane's whole
    prefetched window, not only after min(64, capacity) values. A lane whose
    sender keeps few values outstanding no longer reports Full below its
    capacity.

fanring 0.3.6

Choose a tag to compare

@github-actions github-actions released this 18 Sep 22:36
4432a06
fanring-v0.3.6

chore: Release package fanring version 0.3.6

yring 0.3.17

Choose a tag to compare

@github-actions github-actions released this 17 Sep 17:10
0cd6198
yring-v0.3.17

chore: Release package yring version 0.3.17

fanring 0.3.5

Choose a tag to compare

@github-actions github-actions released this 17 Sep 17:10
0cd6198
fanring-v0.3.5

chore: Release package fanring version 0.3.5

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 09 Sep 22:05
5cd3597
  • MPSC Receiver::release_consumed publishes consumed slots across sender
    lanes and notifies blocked senders, including after partial receive batches.
  • MPSC Receiver::recv_batch_into appends a bounded batch to a caller-owned
    vector, waits only for the first value, and releases consumed slots before
    returning.