| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| |/ |
|
| |
|
|
|
|
|
| |
The constructor for rand::distr::Uniform is now fallible,
so it makes sense to bubble up its restrictions.
This is a breaking change.
|
| |
|
|
| |
- The Rng::gen() functions have been renamed to Rng::random().
|
| |
|
|
|
|
| |
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
(I missed these cases because they were from prelude::*)
|
| |
|
|
| |
- `Uniform::new_inclusive` is now fallible.
|
| |
|
|
| |
- `try_fill_bytes()` is no longer a member of RngCore.
|
| |
|
|
| |
- The rand::distributions module has been renamed to rand::distr
|
| |
|
|
| |
- `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
|
| |
|
|
|
|
| |
(Per discussion at #1774, we think the changes are acceptable.)
This commit won't compile on its own; subsequent commits will fix it.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
This doesn't yet change the public API, it just begins the work of
plumbing these around throughout `ClientCirc`, `Reactor`, etc.
This can't be broken up into smaller commits without causing build
failures.
|
| | |
|
| | |
|
| |
|
|
| |
And the same with `single_leg_with_id_mut` and `single_leg_mut`.
|
| | |
|
| | |
|
| |
|
|
| |
These give more ways of accessing legs.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
MockSleepProvider and MockSleepRuntime have been declared deprecated
by the docs for some time. We're about to mark them `#[deprecated]`.
This commit has been split out for clarity of review.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is mostly code motion + some visibility adjustments.
Moving all of these outside of `reactor` makes it easier to see which
parts are internal vs which are accessed by the reactor. It also helps
us enforce/audit invariants such as 'there should be no contention on
the `CircHop::map` mutex' (the stream map is now private to
`reactor::circuit`, and therefore nothing inside `reactor` will be
directly accessing it).
|
| |
|
|
| |
This will enable us to move `CircHop` out of `reactor.rs`.
|
| |
|
|
| |
This will enable us to factor `Circuit` out of `reactor.rs`.
|
| |
|
|
|
|
|
|
|
| |
This is going to become a hazard. Let's be explicit.
This means using educe to derive the Default for Data.
We also need to update our educe dependency to 0.4.22, since that's
when Default(expression= "...") started working correctly.
|
| |\
| |
| |
| |
| | |
tor-proto: Update CtrlCmd and CtrlMsg docs.
See merge request tpo/core/arti!2829
|
| | |
| |
| |
| |
| |
| | |
In aa08ede11fd483cd6dcb4522c431f9e07001717e, the reactor loop was
rewritten to unconditionally read from the `CtrlMsg` channel, so we need
to adjust the docs.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-proto: Add CtrlCmd:ShutdownAndReturnCircuit
Closes #1876
See merge request tpo/core/arti!2831
|
| | | |
| | |
| | |
| | | |
Closes #1876
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will be used to implement the new `ShutdownAndReturnCircuit`
control command.
Part of #1876
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
Some of these were supposed to be `bad_api_usage`, because they result
from API misuse rather than an internal error (bug).
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This will enable us to reuse these checks for implementing other methods
that are only supported if the conflux set has a single leg.
|
| | |/
| |
| |
| |
| |
| | |
For consistency with the `CtrlCmd::Shutdown` handling from
`Reactor::wait_for_create` (`handle_shutdown()` also prints a helpful
trace log).
|
| |/ |
|
| |\
| |
| |
| |
| |
| |
| | |
tor-proto: Rewrite reactor loop to read from all circuits.
Closes #1863
See merge request tpo/core/arti!2817
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
This was left over from the refactoring that moved the inner `select`
into the `ConfluxSet` impl.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit updates the `Reactor::run_once()` loop to attempt to read
from (and write to) all of its circuit legs as opposed to just the
primary one.
Note that this slightly changes the behavior of the reactor. Previously,
we'd only read from the control channel if the `chan_sender` was ready,
whereas now the control channel is unconditionally read from, in the
*outer* select. The overall effect is that the control channel can cause
unbounded buffering in the `chan_sender` of each circuit (which can
happen if the `chan_sender` is not ready to send). This was actually how
the reactor worked before the refactoring from !2747, which is
reflected in the `chan_sender` docs:
```rust
/// Sender object used to actually send cells.
///
/// NOTE: Control messages could potentially add unboundedly to this, although that's
/// not likely to happen (and isn't triggereable from the network, either).
chan_sender: SometimesUnboundedSink<AnyChanCell, ChannelSender>,
```
I don't believe this to be a problem, for the reason mentioned in the
`chan_sender` docs, and because the main reason we check for
`chan_sender` readiness is to apply backpressure on senders, which is
not something we need to worry about when it comes to the control
channel. Besides, the control channel is unbounded, so not reading
from it won't stop the senders from sending more commands anyway.
Closes #1863
|
| | |
| |
| |
| |
| | |
This tells the reactor to remove a given circuit from the conflux set,
and will be used to remove the circuits that have been shut down.
|