summaryrefslogtreecommitdiff
path: root/crates/tor-memquota
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'versions' into 'main'Ian Jackson2024-10-301-12/+12
|\ | | | | | | | | Version bumps for release of 1.3.0 See merge request tpo/core/arti!2599
| * Bump minor versions of crates with new APIs/implsIan Jackson2024-10-301-2/+2
| | | | | | | | | | cargo set-version --bump=patch -p slotmap-careful cargo set-version --bump=patch -p safelog
| * Bump unstable tor-* and arti-* crates to 0.24.0Ian Jackson2024-10-301-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p tor-async-utils 0.24.0 cargo set-version -p tor-basic-utils 0.24.0 cargo set-version -p tor-bytes 0.24.0 cargo set-version -p tor-cell 0.24.0 cargo set-version -p tor-cert 0.24.0 cargo set-version -p tor-chanmgr 0.24.0 cargo set-version -p tor-checkable 0.24.0 cargo set-version -p tor-circmgr 0.24.0 cargo set-version -p tor-config 0.24.0 cargo set-version -p tor-config-path 0.24.0 cargo set-version -p tor-consdiff 0.24.0 cargo set-version -p tor-dirclient 0.24.0 cargo set-version -p tor-dirmgr 0.24.0 cargo set-version -p tor-error 0.24.0 cargo set-version -p tor-general-addr 0.24.0 cargo set-version -p tor-geoip 0.24.0 cargo set-version -p tor-guardmgr 0.24.0 cargo set-version -p tor-hsclient 0.24.0 cargo set-version -p tor-hscrypto 0.24.0 cargo set-version -p tor-hsrproxy 0.24.0 cargo set-version -p tor-hsservice 0.24.0 cargo set-version -p tor-key-forge 0.24.0 cargo set-version -p tor-keymgr 0.24.0 cargo set-version -p tor-linkspec 0.24.0 cargo set-version -p tor-llcrypto 0.24.0 cargo set-version -p tor-log-ratelim 0.24.0 cargo set-version -p tor-memquota 0.24.0 cargo set-version -p tor-netdir 0.24.0 cargo set-version -p tor-netdoc 0.24.0 cargo set-version -p tor-persist 0.24.0 cargo set-version -p tor-proto 0.24.0 cargo set-version -p tor-protover 0.24.0 cargo set-version -p tor-ptmgr 0.24.0 cargo set-version -p tor-relay-crypto 0.24.0 cargo set-version -p tor-relay-selection 0.24.0 cargo set-version -p tor-rpcbase 0.24.0 cargo set-version -p tor-rtcompat 0.24.0 cargo set-version -p tor-rtmock 0.24.0 cargo set-version -p tor-socksproto 0.24.0 cargo set-version -p tor-units 0.24.0 cargo set-version -p arti-client 0.24.0 cargo set-version -p arti-relay 0.24.0 cargo set-version -p arti-rpc-client-core 0.24.0 cargo set-version -p arti-rpcserver 0.24.0
* | cargo: Run fixup-features (formatting)Ian Jackson2024-10-301-1/+2
| | | | | | | | Manual fixup. I filed #1719 about the fact that I had to do this.
* | cargo: Run fixup-featuresIan Jackson2024-10-301-1/+1
|/ | | | | | | This is output from nailing-cargo -Eu run -p fixup-features Cargo.toml There are some formatting glitches which I'll fix in a moment.
* tor-memquota: Declare memquota feature stable, and defaultIan Jackson2024-10-222-2/+28
| | | | | | | | And document the Cargo features. This compiles in the memquota support for people who depend directly on tor-memquota. But all our in-tree dependencies turn off default features, so this doesn't have any effect for in-tree crates.
* Merge branch 'mq-fix' into 'main'Ian Jackson2024-10-224-4/+28
|\ | | | | | | | | memquota: Fix account lifetime bugs, and arrange to test mq in shadow See merge request tpo/core/arti!2560
| * tor-memquota: Fix rustfmt-damaged indentationIan Jackson2024-10-221-5/+5
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2560#note_3097189
| * memquota: Fix error message stringsIan Jackson2024-10-211-2/+2
| | | | | | | | | | These errors aren't necessarily memory pressure. They can occur due to bugs, and during teardown.
| * memquota: In debug builds, reliably detect use of dropped AccountIan Jackson2024-10-211-0/+13
| | | | | | | | | | This detects the bugs I have just fixed - in Shadow tests with the feature enabled and a (large) limit set.
| * memquota: Fix a test not to rely on accessing cache with dead AccountIan Jackson2024-10-211-1/+1
| |
| * memquota: Log a trace message when a claim failsIan Jackson2024-10-212-1/+9
| |
| * memquota: Log a message at info on startup, if enabledIan Jackson2024-10-211-0/+3
| |
* | Merge branch 'bug1531' into 'main'Ian Jackson2024-10-216-17/+17
|\ \ | |/ |/| | | | | | | | | Move crates to crates to slotmap-careful Closes #1531 See merge request tpo/core/arti!2530
| * Convert a few crates to slotmap-carefulNeel Chauhan2024-10-176-17/+17
| |
* | memquota: suppress clippy::single_match warning.Nick Mathewson2024-10-171-0/+1
|/ | | | | "Suppress" rather than "fix": this pattern is intentional, and makes it clear that we're doing an exhaustive match.
* Merge branch 'mq-prevent' into 'main'Ian Jackson2024-10-153-2/+4
|\ | | | | | | | | | | | | Use clippy to prevent non-mq use of mpsc::channel Closes #1659 See merge request tpo/core/arti!2536
| * Introduce mpsc_channel_no_memquota and use it in the places it's wanted (fmt)Ian Jackson2024-10-151-1/+2
| |
| * Introduce mpsc_channel_no_memquota and use it in the places it's wantedIan Jackson2024-10-153-2/+3
| | | | | | | | | | These are the call sites where using this fucntion is correct. (Outside tor-rtmock, which we'll do separately.)
* | memquota: Change ToplevelAccount to be an alias for Arc<MemoryQuotaTracker>Ian Jackson2024-10-152-1/+2
| | | | | | | | Fixes a TODO.
* | memquota: Provide a method Arc::<MemoryQuotaTracker>::new_noop()Ian Jackson2024-10-151-1/+15
|/ | | | | | | We'll need this to allow `ToplevelAccount::new_noop` (eg, in tests) when the type of ToplevelAccount changes. We have to do this via an extension trait.
* Merge branch 'mq-doc' into 'main'Ian Jackson2024-10-093-28/+13
|\ | | | | | | | | | | | | memquota architecture documentation Closes #1660 See merge request tpo/core/arti!2509
| * memquota: Further docs tweaksIan Jackson2024-10-091-2/+3
| |
| * mq docs: Add some cross-references from tor-memquota to tor-protoIan Jackson2024-10-072-0/+8
| | | | | | | | These can't be rustdoc links because they point up the crate hierarchy.
| * mq docs: Add a linkIan Jackson2024-10-071-1/+1
| |
| * mq docs: Move arti queues text to tor_proto::memquotaIan Jackson2024-10-071-24/+0
| |
| * mq docs: Uncomment docs about mq_queue, and remove the TODOIan Jackson2024-10-071-4/+4
| |
* | tor-memquota: miri: disable tests that use coarsetimeIan Jackson2024-10-083-3/+9
|/
* Merge branch 'mcost' into 'main'Ian Jackson2024-10-025-5/+375
|\ | | | | | | | | Implement tor_memquota:HasMemory cost for a lot of types See merge request tpo/core/arti!2459
| * tor-memquota: Fix more hard tabs.Ian Jackson2024-10-021-2/+2
| |
| * tor-memquota: Replace MemoryCostStructuralCopy with assert_copy_static (fmt)Ian Jackson2024-10-021-1/+1
| |
| * tor-memquota: Replace MemoryCostStructuralCopy with assert_copy_staticIan Jackson2024-10-022-23/+13
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2459#note_3086841
| * tor-memquota: Move and reword a commentIan Jackson2024-10-021-3/+5
| | | | | | | | | | | | This comment is more applicable to the memory_cost_structural_copyx macro than the wrapper type, especially since the wrapper type is going away.
| * tor-memquota: Add an example for HasMemoryCost deriveIan Jackson2024-10-022-0/+40
| |
| * Abolish SIZE in favour of std::mem::size_ofIan Jackson2024-10-022-22/+10
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2459#note_3086837
| * tor-memquota: Provide explicit "indirect size" feature in deriveIan Jackson2024-10-021-0/+6
| |
| * Use std::num::NonZeroFooIan Jackson2024-10-021-4/+5
| | | | | | | | | | | | | | Not the generic version which isn't supported in our MSRV. We may want to revert this in the future, so let's make it a separate commit.
| * tor-memquota: Export Account at the toplevelIan Jackson2024-10-021-1/+1
| | | | | | | | | | It turns out we're mostly going to want to deal in Accounts, not Arc<MemoryQuotaaTracker>s.
| * tor-memquota: Provide facilities for deriving HasMemoryCostIan Jackson2024-10-024-1/+344
| |
| * tor-memquota: Make EnabledToken constructors constIan Jackson2024-10-021-2/+2
| | | | | | | | This will be convenient in some tests etc.
* | Merge branch 'misc' into 'main'Ian Jackson2024-10-021-0/+5
|\ \ | |/ |/| | | | | tor-proto: SometimesUnboundedSink: provide as_inner accessor See merge request tpo/core/arti!2483
| * memquota: Note a TODO about overheadsIan Jackson2024-10-021-0/+5
| |
* | Merge branch 'close-channel-2' into 'main'Nick Mathewson2024-10-021-1/+12
|\ \ | | | | | | | | | | | | Provide and implement SinkCloseChannel See merge request tpo/core/arti!2485
| * | tor-memquota: Implement SinkChannelClose for mq_queueIan Jackson2024-10-011-1/+12
| |/
* | tor-memquota: Test error handling paths in try_send implIan Jackson2024-10-021-0/+54
| |
* | tor-memquota: Prepare for SinkTrySend testsIan Jackson2024-10-021-3/+24
| | | | | | | | | | | | Implement SinkTrySend for BustedSink. Implement SinkTrySendError for BustedError. Add an is_disconnected field (so we can test different error paths).
* | tor-memquota: Make BustedSink contain the BustedError to yield (fmt)Ian Jackson2024-10-021-1/+3
| |
* | tor-memquota: Make BustedSink contain the BustedError to yieldIan Jackson2024-10-021-8/+14
|/ | | | This will let us test different errors.
* tor-memquota: Implement SinkTrySend for mq_queue::SenderIan Jackson2024-10-012-1/+32
| | | | Plumbing.
* tor-memquota: Provide TypedParticipation::try_claim_or_returnIan Jackson2024-10-011-1/+24
| | | | We're going to want this for try_send.