You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ioring:RegisteredBuffers::get now takes &mut self. Callers holding the registration behind a shared reference, or holding the returned slice across a submission, must adjust. Appropriate for the 0.2.0 release.
ioring:EventDelivery::ring() -> &Mutex is removed in favour of EventDelivery::scope() -> RingScope. Callers that locked the mutex and built a Batch now call delivery.scope() and scope.batch().
ioring: adds the public module contract. Additive, but new public surface in a crate already cutting 0.2.0.
ioring:RegisteredBuffers::get now returns io::Result<&[u8]> rather than Option<&B>.
ioring: RegisteredBuffers::get_mut returns io::Result<&mut [u8]> rather than io::Result<&mut B>. Callers writing bytes are unaffected; callers relying on &mut B were relying on the unsound behaviour.
ioring: RegisteredUse is now a struct rather than a newtype over Arc. It is only ever produced by this crate and consumed as an opaque Token payload, so callers that treat it as opaque are unaffected.
ioring: write, write_raw, write_registered and write_registered_raw take a trailing WriteCaching argument; flush and flush_raw take a trailing FlushMode argument. WriteCaching::Cached and FlushMode::Default reproduce the previous behaviour exactly.
ioring: Batch::flush and Batch::flush_raw take FlushCoverage instead of PushOptions. Callers pass FlushCoverage::CoversPrecedingOperations to make preceding writes durable, or FlushCoverage::Unordered for the previous (non-covering) behaviour of PushOptions::default().
ioring: keep the IORING_BUFFER_INFO array alive until the kernel reads it
Features
guard-alloc: add a guard-page global allocator and calibrate it against D-32 (983afbc)
guard-alloc: fill fresh allocations with a tracked, seeded poison pattern (36ecd8a)
ioring: add a fault-injection seam that transforms real completions (16bb39b)
ioring: add RingContract, this crate's conservation rules made executable (bfbb840)
ioring: commit epoch-log records by group commit (f15e504)
ioring: count registered-buffer uses per buffer, and add get_mut (222bde1)
ioring: expose the kernel's write flags and flush modes (1c21394)
ioring: gate windows-threadpool-sys behind a default-on feature (d374cc6)
ioring: hand back the ring's completion event without surrendering the ring (0ed5e87)
ioring: implement all three epoch-commit strategies behind one interface (3bf25bf)
ioring: let a RegisteredFile be pushed without unsafe (d2373b6)
ioring: measure the three commit strategies on the running machine (8399753)
ioring: name the ring conditions a consumer has to branch on (8d51124)
ioring: order a non-ring FSCTL against ring epochs in the epoch-log sample (22c11de)
ioring: replace EventDelivery::ring with a narrowed RingScope (21f1203)
ioring: replay and verify the epoch log against its own contract (002f87d)
ioring: run the epoch log's control plane on the thread pool (e90e90a)
ioring: wait the epoch log on its completion event and a shutdown latch (b96a6be)
Bug Fixes
ioring: deliver completions queued before EventDelivery handover (f1b48c8)
ioring: keep the IORING_BUFFER_INFO array alive until the kernel reads it (66272ff)
ioring: make RegisteredBuffers::get refuse a buffer a read is landing into (49d928c)
ioring: RegisteredBuffers::get takes &mut self, closing a borrow hole (7da99a7)
ioring: remove a dead guard in strategy.rs and correct what catches what (e33161d)
ioring: require an explicit barrier decision on every flush (5f8577b)
ioring: require both checkpoint operations to succeed before authorising a reclaim (982b291)
ioring: stop get_mut handing out the registered buffer itself (ffed97c)
ioring: unbreak CI clippy, and queue the get() borrow hole as M19 (a38f754)