Skip to content

Commit 89edb18

Browse files
committed
Fix doc for short-io example
1 parent 7d3a2b4 commit 89edb18

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ io-engine-aio-bindings = "0.1"
1818
log = "0.4"
1919
captains-log = "0"
2020
io-buffer = { version="1"}
21-
crossfire = "3.1"
21+
crossfire = ">=3.1.9"
2222
io-uring = "0.7"
2323
embed-collections = { version=">=0.5", default-features=false }
2424

src/lib.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,9 @@
6666
//!
6767
//! ```rust,ignore
6868
//! // In your callback worker thread
69+
//! let (queue_tx, queue_rx) = mpsc::bounded_blocking(1000);
6970
//! loop {
70-
//! match rx.recv() {
71+
//! match queue_rx.recv() {
7172
//! Ok(event) => event.callback_unchecked(true),
7273
//! Err(_) => break,
7374
//! }
@@ -81,15 +82,22 @@
8182
//! that requires retry:
8283
//!
8384
//! ```rust,ignore
84-
//! // check_short_read returns true if offset exceeds file end
85-
//! event.callback(|offset| {
86-
//! // NOTE: you should probably use weak reference here
87-
//! offset < file_size
88-
//! })
89-
//! .unwrap_or_else(|event| {
85+
//! use crossfire::WeakTx;
86+
//! let (queue_tx, queue_rx) = mpsc::bounded_blocking::<Box<IOEvent<_>>>(1000);
87+
//! let weak_tx: WeakTx<_> = queue_tx.downgrade();
88+
//! // use a weak reference of sender to allow the main sender can be drop.
89+
//! // io-engine rely on error of receiver to notify exit.
90+
//! while let Ok() = queue_rx.recv() {
91+
//! // check_short_read returns true if offset exceeds file end
92+
//! if let Err(event_retry) = event.callback(|offset| offset < file_size ) {
9093
//! // Short I/O detected, resubmit the event
91-
//! queue_tx.send(event).unwrap();
92-
//! });
94+
//! if let Some(tx) = weak_tx.upgrade() {
95+
//! tx.send(event_retry).unwrap();
96+
//! } else {
97+
//! event_retry.callback_unchecked(true);
98+
//! }
99+
//! };
100+
//! }
93101
//! ```
94102
//!
95103
//! The closure receives the current offset and should return `true` if the offset

0 commit comments

Comments
 (0)