summaryrefslogtreecommitdiff
path: root/crates/tor-rtcompat/src
Commit message (Collapse)AuthorAgeFilesLines
* clippy: consequential rustfmtIan Jackson2024-01-021-3/+1
|
* clippy: Use infallible callsIan Jackson2024-01-021-2/+1
| | | | Resolves clippy complaints about needless fallible conversions.
* clippy: Replace many calls to .get(0) with .first()Ian Jackson2024-01-021-1/+1
| | | | | FTR I don't think agree with clippy on this question, but then I often don't.
* tor-rtcompat: use track-caller for thin wrappersJim Newsome2023-12-182-0/+4
| | | | | | | | | | | | | | In particular, when the (unstable) tokio tracing feature is enabled, every tracing line includes the name of where the current task was created. Without this change, that ends up being the name of intermediate trait methods like TokioRuntimeHandle::block_on, which is not very helpful. Adding the `track_caller` attribute causes the name of the caller of these methods to be used instead, which is typically more helpful. IIUC this change is not breaking in terms of semver https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html.
* Upgrade async_executors dependency to 0.7.0Nick Mathewson2023-09-281-4/+3
|
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-234-0/+4
|
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-105-0/+5
|
* Merge branch 'clippy-vec' into 'main'Nick Mathewson2023-07-101-2/+2
|\ | | | | | | | | Fix new "useless_vec" warning from clippy +nightly See merge request tpo/core/arti!1395
| * Fix new "useless_vec" warning from clippy +nightlyIan Jackson2023-07-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | Explanation at https://rust-lang.github.io/rust-clippy/master/index.html#/useless_vec This is the non-tests subset of the same-named commmit in !1388, (recreated by hand by me, and then checked against that commit; I stole the commit message from Nick's.) This should be uncontroversial I think.
* | Add an exception for clippy::arc_with_non_send_sync.Nick Mathewson2023-07-101-0/+1
|/ | | | We're doing this deliberately, I believe.
* Merge branch 'allow_missing_panics' into 'main'Ian Jackson2023-07-071-1/+0
|\ | | | | | | | | | | | | add_warning: Tolerate clippy::missing_panics_doc Closes #950 See merge request tpo/core/arti!1380
| * Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | | | | | Closes #950.
* | tor-rtcompat: Simplify trivial all() expressions.Nick Mathewson2023-07-062-9/+9
|/ | | | | | | Clippy nightly doesn't like `#[cfg(all(...))]` with only a single expression inside the `all(...)`. This requires an adjustment in check_doc_features.
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* update rustls to 0.21trinity-1686a2023-05-081-16/+11
|
* Allow clippy::unchecked_duration_subtraction in testsNick Mathewson2023-01-274-0/+4
| | | | | This panics on error, and we're fine with a panic on misbehavior in tests.
* Disable clippy::unlinlined-format-argsNick Mathewson2023-01-271-0/+1
| | | | | | | | This warning kind of snuck up on us! (See #748) For now, let's disable it. (I've cleaned it up in a couple of examples, since those are meant to be more idiomatic and user-facing.) Closes #748.
* test lint blocks: Add many many automaticallyIan Jackson2022-12-123-0/+25
| | | | | This is precisely the result of running the rune in maint/adhoc-add-lint-blocks.
* test lint blocks: Do some semi-manuallyIan Jackson2022-12-121-0/+9
| | | | | | | This is the hunks from running the rune in maint/adhoc-add-lint-blocks but which require some subsequent manual fixup: usually, deleting now-superfluous outer allows, but in some cases manually putting back lints that the adhoc script deleted.
* Fix typosDimitris Apostolou2022-12-091-1/+1
|
* fix deprecation warnings from rustlstrinity-1686a2022-11-261-9/+7
|
* upgrade rustls to 0.20, ignoring all deprecation warningstrinity-1686a2022-11-261-36/+30
|
* Temporarily disable it_cancels_delayed_firings.Nick Mathewson2022-11-101-0/+5
| | | | | This test is timing-dependent in a way that seems to fail on heavily loaded CI machines. See #545.
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* fix doc-feature synchrotrinity-1686a2022-10-162-2/+8
|
* add test for many featurestrinity-1686a2022-10-161-2/+2
| | | | and fix issue compiling tor-rtcompat with on ssl runtime
* cargo fmt to remove blank linesIan Jackson2022-10-121-1/+0
| | | | | | | Apparently cargo fmt doesn't like these, which my perl rune didn't delete. This commit is precisely the result of `cargo fmt`.
* Replace all README copies in src/lib.rs with includesIan Jackson2022-10-121-139/+1
| | | | | | | | The feature we want is `#[doc = include_str!("README.md")]`, which is stable since 1.54 and our MSRV is now 1.56. This commit is precisely the result of the following Perl rune: perl -i~ -0777 -pe 's{(^//!(?!.*\@\@).*\n)+}{#![doc = include_str!("../README.md")]\n}m' crates/*/src/lib.rs
* `TaskSchedule`: give error on `sleep*()` if last handle is droppedNick Mathewson2022-09-071-5/+28
| | | | | | | | | | | | | | | | | | This fixes an busy-loop. When the last `TaskHandle` on a `TaskSchedule` is dropped, the schedule is permanently canceled: whatever operation it was scheduling should no longer be performed. But our code was broken: the `sleep()` and `sleep_until_wallclock()` functions don't verify whether the handles are dropped or not. This breakage caused an CPU-eating busy-loop in `sleep_until_wallclock`. With this patch, we now return a `Result<(), SleepError>` from these functions. Fixes #572.
* add feature annotation not added by doc_auto_cfgtrinity-1686a2022-08-242-0/+2
|
* enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-241-0/+1
|
* tor-rtcompat: Require that TcpStream be SendIan Jackson2022-08-152-2/+2
| | | | The lack of this seems to have been an oversight.
* tor-rtcompat: s/micros/millis inside a flaky testeta2022-07-261-1/+1
| | | | | | | | | | The other tests wait for 100 milliseconds; this one waits for 100 *microseconds* for some reason, which meant it was understandably flaky if run on anything less than perfect conditions (arti#515). This is probably a typo, so just change it. fixes arti#515
* Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | Update all lint blocks
* Remove rustls from tor-rtcompat/fullNick Mathewson2022-06-161-1/+3
| | | | This is another consequence of the `ring` license issue; see #493.
* Merge branch 'dormant_directory' into 'main'Nick Mathewson2022-06-132-2/+118
|\ | | | | | | | | | | | | Use TaskSchedule to sleep in directory bootstrapping Closes #497 See merge request tpo/core/arti!571
| * TaskSchedule: Add a sleep_until_wallclock method too.Nick Mathewson2022-06-102-2/+15
| |
| * Add a `sleep` function to TaskSchedule.Nick Mathewson2022-06-071-0/+20
| | | | | | | | | | Having this alias makes it easier to implement more complex schedules, like those used in DirMgr.
| * Add "suspend" and "resume" to TaskSchedule.Nick Mathewson2022-06-071-0/+83
| | | | | | | | | | | | Unlike "cancel" and "fire", "suspend" and "resume" don't change any pending timers or events: they just prevent execution of those events for a while, and let them resume later on.
* | rt-compat: Make all the individual runtime traits Clone+Send etc.Ian Jackson2022-06-084-6/+18
|/ | | | | | | | This will make it much more convenient for code that only wants one of these traits (or a subset of them). This is a good thing to support because it will allow us to use a ZST in places that do not need an actual async runtime handle (typically, the runtime handle is needed only for spawn).
* lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-0/+1
| | | | | From running add_warning, with manual picking of the right hunks/lines.
* lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
| | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* tor-rtcompat: Fix a warning when building with no backends.Nick Mathewson2022-05-271-0/+1
| | | | | | | | Cargo publish (and probably nobody else!) builds this crate with no features enabled. When you do that, you get a warning about an unused `use std::io`. Fixing that.
* Improve documentation around Cargo features; make Runtime require Debugeta2022-05-111-0/+3
| | | | | | | | | | | | | | - arti#445 highlighted the lack of good documentation around Arti's multiple runtime support, as well as it being difficult to determine what runtime was actually in use. - Improve the documentation to solve the first problem. - To solve the second problem, make Runtime require Debug (which is arguably a good idea anyway, since it makes them easier to embed in things), and print out the current runtime's Debug information when arti is invoked with `--version`. - (It also prints out other Cargo features, too!) fixes arti#445
* tor-rtcompat: make CompoundRuntime handle SleepProviders properlyeta2022-05-101-0/+11
| | | | | | Previously, CompoundRuntime would use the default implementations of SleepProvider::now() and ::wallclock(), instead of using its wrapped SleepProvider. This mildly embarrassing omission has been rectified.
* Merge branch 'disallowed_lint' into 'main'eta2022-03-302-2/+0
|\ | | | | | | | | Remove allow(clippy::disallowed_methods) lint flag. See merge request tpo/core/arti!437
| * Remove allow(clippy::disallowed_methods) lint.Nick Mathewson2022-03-302-2/+0
| |
* | Make daemon tasks self-contained; introduce NetDirProvidereta2022-03-301-0/+6
|/ | | | | | | | | | | | | | | The various background daemon tasks that `arti-client` used to spawn are now handled inside their respective crates instead, with functions provided to spawn them that return `TaskHandle`s. This required introducing a new trait, `NetDirProvider`, which steals some functionality from the `DirProvider` trait to enable `tor-circmgr` to depend on it (`tor-circmgr` is a dependency of `tor-dirmgr`, so it can't depend on `DirProvider` directly). While we're at it, we also make some of the tasks wait for events from the `NetDirProvider` instead of sleeping, slightly increasing efficiency.
* Merge branch 'no-system-time' into 'main'eta2022-03-303-3/+5
|\ | | | | | | | | | | | | Don't use SystemTime::now() Closes #306 See merge request tpo/core/arti!365