| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
This is unfortunately necessary, because after the channel handshake, we
need to give the channel reactor a `StreamOps` handle to the underlying
stream.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Needed for cases where we wrap an object that implements `StreamOps` in
an external type, thereby losing access to the `StreamOps`
functionality. For example, during the channel handshake, we `.split()`
the stream that implements `StreamOps`, which leaves us with a
`SplitSink` and a `SplitStream`, neither of which implement `StreamOps`.
Getting a handle to the underlying object that implements `StreamOps`
(for example, a file handle) *before* the stream is `.split()` enables
us to use `StreamOps` to manipulate the underlying split stream.
This commit also introduces a special `UnsupportedStreamOpsHandle`,
which is a type that implements `StreamOps`, but always returns an
error. This type is meant to simplify error handling and usage, and is
meant to be used in cases where `StreamOps` is not supported. TODO: the
name of this type is pretty confusing (it's very similar to
`UnsupportedStreamOp`, which is an error type), and should probably be
renamed to something else (`NoOpStreamOpsHandle`,
`BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...).
Note: this changes the `StreamOps` trait to be slightly different from
what I originally envisioned in !2660 and #1769
|
| |
|
|
|
|
|
|
| |
Note: this commit makes `tor-proto` depend on `tor-netdir`
(because it adds a `KistParams` type that is buildable from
`NetParameters`, which is defined in `tor-netdir`).
Closes #1729
|
| |
|
|
| |
(We don't add it to the handful of unit tests that don't use an executor.)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This had a TODO about returning a "status indication instead of just ()"
so this commit adds some status indication that we can expand later if
needed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The affected crates follow our regular versioning.
They all get bumped to 0.26.0.
Done with
```
for crate in $(./maint/list_crates |grep '^arti-\|tor-' ); do
cargo set-version --bump minor -p $crate;
done
```
|
| |\
| |
| |
| |
| | |
clippy: deny `mod_module_files`
See merge request tpo/core/arti!2689
|
| | |
| |
| |
| |
| |
| | |
Denies 'mod.rs' files for consistency.
https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
|
| |/ |
|
| |\
| |
| |
| |
| | |
Simple dependency upgrades for upcoming release
See merge request tpo/core/arti!2685
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This reverts commit d73f8894551d37e3bc36947eccf0c6007ffc066e.
|
| | |
|
| |
|
|
| |
This reverts commit acc79ffb44343e52ecb72e27ee8843a63448ff5a.
|
| |
|
|
| |
This reverts commit 2fd105b79c25d919e32e53daf81cb369d1e44331.
|
| |
|
|
|
|
|
|
| |
I considered just using `FutureExt::fuse`, but that becomes a little
annoying since the future type is exposed through
`IntoFuture::IntoFuture`, which means `ReceiverFuture` would need to
wrap a `Fuse`. I figured it's cleaner just to implement the trait
directly.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
WakersAlreadyWoken>`
|
| | |
|
| |
|
|
| |
`Receiver`
|
| | |
|
| | |
|
| |
|
|
| |
CancelledError>`
|
| | |
|
| |
|
|
|
| |
This is no longer applicable with the new oneshot broadcast channel
design.
|
| |
|
|
|
| |
The old version had some issues, so this is a rewrite which uses
slightly lower level synchronization types (`Mutex` and `OnceLock`).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously `Channel` had two concepts of "closed". There was an atomic
flag that was set to `true` at the end `Reactor::run`, and an
experimental oneshot channel where the sender was dropped when the
reactor was dropped.
This commit consolidates these two using the `oneshot_broadcast` module.
This means that the behaviour is consistent between both "closed"
statuses (`is_closing()` and `wait_for_close()`). A channel is
considered closed when its reactor is dropped.
This also helps progress towards making the channel reactor cancellation
safe (see arti#1756).
|
| |
|
|
| |
This doesn't need to be shared with the reactor.
|
| | |
|
| |
|
|
|
|
|
| |
This warning is new in 1.83. Surprisingly, it only triggered once.
div_ceil was added in Rust 1.73, and our MSRV is 1.77, so div_ceil
is fine to use.
|
| |
|
|
| |
These are new in Rust 1.83.
|
| |
|
|
|
|
|
|
| |
In 1.83, this warning triggers on many of our crates.
We're thinking of fixing them all, but for now,
we're going to disable the warning.
This is part of #1765.
|
| |
|
|
|
|
|
|
|
|
| |
Done using:
```
for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do
cargo set-version -p $crate 0.25.0
done
```
|