| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | tor-proto: improve comments | Steven Engler | 2024-12-10 | 1 | -15/+31 | |
| | | ||||||
| * | Revert "tor-proto: implement `FusedFuture` for receiver futures" | Steven Engler | 2024-12-10 | 1 | -57/+10 | |
| | | | | | This reverts commit d73f8894551d37e3bc36947eccf0c6007ffc066e. | |||||
| * | tor-proto: implement `FusedFuture` for receiver futures | Steven Engler | 2024-12-10 | 1 | -10/+57 | |
| | | ||||||
| * | Revert "tor-proto: deduplicate future fields into `FutureState`" | Steven Engler | 2024-12-10 | 1 | -18/+11 | |
| | | | | | This reverts commit acc79ffb44343e52ecb72e27ee8843a63448ff5a. | |||||
| * | Revert "tor-proto: implement `FusedFuture` for receiver futures" | Steven Engler | 2024-12-10 | 1 | -79/+33 | |
| | | | | | This reverts commit 2fd105b79c25d919e32e53daf81cb369d1e44331. | |||||
| * | tor-proto: implement `FusedFuture` for receiver futures | Steven Engler | 2024-12-10 | 1 | -33/+79 | |
| | | | | | | | | | 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. | |||||
| * | tor-proto: deduplicate future fields into `FutureState` | Steven Engler | 2024-12-10 | 1 | -11/+18 | |
| | | ||||||
| * | tor-proto: renamed `ReceiverBorrowedFuture` to `BorrowedReceiverFuture` | Steven Engler | 2024-12-10 | 1 | -5/+5 | |
| | | ||||||
| * | tor-proto: renamed `ReceiverOwnedFuture` to `ReceiverFuture` | Steven Engler | 2024-12-10 | 1 | -6/+6 | |
| | | ||||||
| * | tor-proto: rename `Receiver::recv` to `borrowed` | Steven Engler | 2024-12-10 | 1 | -24/+24 | |
| | | ||||||
| * | tor-proto: moved the `Weak::upgrade` into `Sender::send_and_wake` | Steven Engler | 2024-12-10 | 1 | -22/+15 | |
| | | ||||||
| * | tor-proto: changed `wakers` from an `Option<_>` to a `Result<_, ↵ | Steven Engler | 2024-12-10 | 1 | -9/+21 | |
| | | | | | WakersAlreadyWoken>` | |||||
| * | tor-proto: added `use std::ops::Drop` | Steven Engler | 2024-12-10 | 1 | -3/+4 | |
| | | ||||||
| * | tor-proto: removed `Receiver::recv_clone` and implemented `IntoFuture` for ↵ | Steven Engler | 2024-12-10 | 2 | -25/+24 | |
| | | | | | `Receiver` | |||||
| * | tor-proto: renamed `CancelledError` to `SenderDropped` | Steven Engler | 2024-12-10 | 1 | -17/+17 | |
| | | ||||||
| * | tor-proto: switched from `Slab` to `DenseSlotMap` for waker map | Steven Engler | 2024-12-10 | 1 | -10/+12 | |
| | | ||||||
| * | tor-proto: change the message type from `Option<T>` to `Result<T, ↵ | Steven Engler | 2024-12-10 | 1 | -9/+12 | |
| | | | | | CancelledError>` | |||||
| * | tor-proto: changed regular comments on `Shared` to doc comments | Steven Engler | 2024-12-10 | 1 | -21/+21 | |
| | | ||||||
| * | tor-proto: update docs on `Channel::reactor_closed_rx` | Steven Engler | 2024-12-10 | 1 | -3/+1 | |
| | | | | | | This is no longer applicable with the new oneshot broadcast channel design. | |||||
| * | tor-proto: replace oneshot broadcast channel | Steven Engler | 2024-12-10 | 2 | -138/+562 | |
| | | | | | | The old version had some issues, so this is a rewrite which uses slightly lower level synchronization types (`Mutex` and `OnceLock`). | |||||
| * | tor-proto: replace `Channel`s "closed" state handling | Steven Engler | 2024-12-10 | 2 | -35/+47 | |
| | | | | | | | | | | | | | | | | 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). | |||||
| * | tor-proto: move `ChannelDetails::reactor_closed_rx` to `Channel` | Steven Engler | 2024-12-10 | 1 | -11/+17 | |
| | | | | | This doesn't need to be shared with the reactor. | |||||
| * | tor-proto: add 'oneshot_broadcast' util module | Steven Engler | 2024-12-10 | 2 | -0/+246 | |
| | | ||||||
| * | Resolve clippy::manual_div_ceil | Nick Mathewson | 2024-12-03 | 1 | -1/+1 | |
| | | | | | | | | 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. | |||||
| * | Resolve clippy::empty_line_after_doc_comments warnings. | Nick Mathewson | 2024-12-03 | 1 | -1/+1 | |
| | | | | | These are new in Rust 1.83. | |||||
| * | add_warnings, *: Allow clippy::needless_lifetimes | Nick Mathewson | 2024-12-03 | 1 | -0/+1 | |
| | | | | | | | | | 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. | |||||
| * | tor-proto: Specify which of the 2 senders is used for sending cells. | Gabriela Moldovan | 2024-11-20 | 1 | -1/+1 | |
| | | ||||||
| * | tor-proto: Fix typo in streammap docs. | Gabriela Moldovan | 2024-11-19 | 1 | -1/+1 | |
| | | ||||||
| * | Merge branch 'tor-proto_benchmarks' into 'main' | gabi-250 | 2024-11-11 | 5 | -0/+177 | |
| |\ | | | | | | | | | tor-proto: Add benchmarks for cell encryption and decryption See merge request tpo/core/arti!2608 | |||||
| | * | tor-proto: put every bench_utils mod behind the bench feature | Lionel Goffaux | 2024-11-06 | 3 | -3/+3 | |
| | | | ||||||
| | * | tor-proto: change the visibility of the RelayBody inner struct | Lionel Goffaux | 2024-11-06 | 1 | -1/+1 | |
| | | | ||||||
| | * | tor-proto: remove inlines attributes | Lionel Goffaux | 2024-11-06 | 2 | -4/+0 | |
| | | | ||||||
| | * | tor-proto: add a bench feature | Lionel Goffaux | 2024-11-06 | 1 | -0/+1 | |
| | | | ||||||
| | * | tor-proto: Add benchmarks for cell encryption and decryption | Lionel Goffaux | 2024-11-04 | 5 | -0/+180 | |
| | | | ||||||
| * | | tor-proto: Document RecvWindow::take more accurately. | Gabriela Moldovan | 2024-11-04 | 1 | -2/+2 | |
| |/ | | | | The docs here seem wrong, so I am updating them. | |||||
| * | Merge branch 'mq-fix' into 'main' | Ian Jackson | 2024-10-22 | 4 | -22/+64 | |
| |\ | | | | | | | | | memquota: Fix account lifetime bugs, and arrange to test mq in shadow See merge request tpo/core/arti!2560 | |||||
| | * | memquota: Use _ rather than allow(dead_code) (fmt) | Ian Jackson | 2024-10-22 | 1 | -1/+4 | |
| | | | ||||||
| | * | memquota: Use _ rather than allow(dead_code) | Ian Jackson | 2024-10-22 | 2 | -12/+16 | |
| | | | | | | | | | | | | | | | Promote the associated comments. As suggested here: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2560#note_3097188 | |||||
| | * | memquota: fix data stream account lifetime | Ian Jackson | 2024-10-21 | 1 | -5/+18 | |
| | | | | | | | | | | | | | | | | | | | The DataStream is sometimes disassembled, eg by split. When that happens, the StreamAccount would be dropped - and that was the only strong reference. Put a StreamAccount in each of the pieces, instead of just in the combined DataStream struct. | |||||
| | * | memquota: Fix resolve stream account lifetime | Ian Jackson | 2024-10-21 | 2 | -8/+12 | |
| | | | | | | | | | | | | | | | | | | | We need the mq account for the stream not to collapse. The ResolveStream object needs to contain a strong reference to it. Have begin_stream_impl return the StreamAccount, rather than taking it as a parameter. That makes this bug a little more obvious. It also centralises the StreamAccount creation. | |||||
| | * | memquota: Fix circuit account lifetime (fmt) | Ian Jackson | 2024-10-21 | 2 | -5/+24 | |
| | | | ||||||
| | * | memquota: Fix circuit account lifetime (clippy churn) | Ian Jackson | 2024-10-21 | 2 | -5/+5 | |
| | | | | | | | | | | | | | Now that it doesn't call CircuitAccount::new() it has no error paths, and clippy demands we remove the Result, so it must once again become infallible. | |||||
| | * | memquota: Fix circuit account lifetime | Ian Jackson | 2024-10-21 | 2 | -5/+4 | |
| | | | | | | | | | | | | | | | | | We foolishly made *two* CircuitAccounts, one of which gets immediately dropped. But we need to hold onto the account somewhere, because an mq_queue doesn't keep the account alive. Otherwise everything breaks when mq tracking is enabled. | |||||
| * | | Merge branch 'test_create_hop_count_reinstate' into 'main' | gabi-250 | 2024-10-21 | 1 | -4/+1 | |
| |\ \ | |/ |/| | | | | | tor-proto: Reinstate circuit hop check in test_create() See merge request tpo/core/arti!2546 | |||||
| | * | tor-proto: Reinstate circuit hop check in test_create() | Neel Chauhan | 2024-10-16 | 1 | -4/+1 | |
| | | | ||||||
| * | | Disable a lot of dead code warnings (fmt) | Ian Jackson | 2024-10-17 | 1 | -1/+4 | |
| | | | ||||||
| * | | Disable a lot of dead code warnings | Ian Jackson | 2024-10-17 | 1 | -1/+1 | |
| |/ | | | | | | | Now cargo check --workspace --no-default-features --all-targets cargo build -p arti --no-default-features --features=memquota,tokio,native-tls are both clean. | |||||
| * | Merge branch 'test-panic' into 'main' | Jim Newsome | 2024-10-15 | 1 | -14/+14 | |
| |\ | | | | | | | | | Abolish `_ => panic!()` See merge request tpo/core/arti!2534 | |||||
| | * | Replace _ => panic!() in tor-proto | Ian Jackson | 2024-10-15 | 1 | -14/+14 | |
| | | | ||||||
| * | | Merge branch 'mq-toplevel' into 'main' | Ian Jackson | 2024-10-15 | 1 | -14/+15 | |
| |\ \ | | | | | | | | | | | | | Abolish the toplevel Account See merge request tpo/core/arti!2537 | |||||
