Skip to content

Commit

Permalink
refactor(iroh-bytes)!: remove flume dependency (#2622)
Browse files Browse the repository at this point in the history
## Description

This is mostly a pretty mechanical replacement of flume with
async_channel in the rebd blob store.

One not so tiny change is that to support closing a read or write
transaction after some delay, and because async_channel does not have
recv_timeout, we switch the entire actor loop to run *async* but on a
dedicated thread of the main runtime.

That way we can use `tokio::select! {..., timeout}`

## Breaking Changes

FlumeProgressSender was removed

## Notes & open questions

## Change checklist

- [ ] Self-review.
- [ ] Documentation updates following the [style
guide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),
if relevant.
- [ ] Tests if relevant.
- [ ] All breaking changes documented.
  • Loading branch information
rklaehn authored Aug 14, 2024
1 parent 47c8528 commit e9c5088
Show file tree
Hide file tree
Showing 7 changed files with 131 additions and 265 deletions.
2 changes: 0 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion iroh-blobs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ bao-tree = { version = "0.13", features = ["tokio_fsm", "validate"], default-fe
bytes = { version = "1.4", features = ["serde"] }
chrono = "0.4.31"
derive_more = { version = "=1.0.0-beta.7", features = ["debug", "display", "deref", "deref_mut", "from", "try_into", "into"] }
flume = "0.11"
futures-buffered = "0.2.4"
futures-lite = "2.3"
genawaiter = { version = "0.99.1", features = ["futures03"] }
Expand Down
Loading

0 comments on commit e9c5088

Please sign in to comment.