summaryrefslogtreecommitdiff
path: root/crates/tor-rtcompat/src/compound.rs
Commit message (Collapse)AuthorAgeFilesLines
* tor-rtcompat: CompoundRuntime: Add a CoarseTimeProvider, and impl (fmt)Ian Jackson2024-03-251-4/+15
|
* tor-rtcompat: CompoundRuntime: Add a CoarseTimeProvider, and implIan Jackson2024-03-251-17/+44
| | | | | | In all the uses in-crate, this is just a RealCoarseTimeProvider. Now all the compound runtimes impl CoarseTimeProvider.
* tor-rtcompat: Reformat a doc comment for semantic newlinesIan Jackson2024-03-251-3/+3
|
* tor-rtcompat: use track-caller for thin wrappersJim Newsome2023-12-181-0/+2
| | | | | | | | | | | | | | 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.
* Add an exception for clippy::arc_with_non_send_sync.Nick Mathewson2023-07-101-0/+1
| | | | We're doing this deliberately, I believe.
* rt-compat: Make all the individual runtime traits Clone+Send etc.Ian Jackson2022-06-081-0/+11
| | | | | | | | 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).
* 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.
* add udp to runtimetrinity-1686a2022-03-141-11/+39
|
* Replace manual Clone impl with educe in tor-rtcompatIan Jackson2022-03-021-10/+3
|
* tor-rtcompat: Provide TLS wrapping for all streamsIan Jackson2022-02-241-3/+2
| | | | | | | | Now all of the runtime types we provide all impl<S> TlsProvider<S> where S: ... rather than merely TlsProvider<Self::TcpStream>. And we document and intent to perhaps require this in the future.
* Rename `SpawnBlocking` trait to `BlockOn`.Nick Mathewson2022-01-261-4/+4
| | | | | This avoids a future confusion with the new `SpawnBlocking` trait in async_executors v0.5, and better describes what the trait provides.
* Limit the inner types in tor-rtcompat that have to implement CloneNick Mathewson2022-01-261-1/+10
| | | | | If we implement our own clone on CompoundRuntime, we no longer need Clone implementations on our TlsProvider implementations.
* Add a CompoundRuntime type for runtime construction.Nick Mathewson2022-01-191-0/+131
This type can solve two problems at once. First, it lets users replace parts of an existing runtime implementation without replacing the whole thing. For example, you can use it to override your TcpProvider implementation to solve problems like #235. Second, we can use it internally to tor-rtcompat to define Runtimes piece-by-piece. Mostly we'll use this to separate our Tls implementations from our implementations of the rest of the Runtime.