| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | tor-rtmock: Avoid confusing "concurrently" word | Ian Jackson | 2025-02-25 | 1 | -2/+2 |
| | | |||||
| * | tor-rtmock: Explain Subthreads and compare them with bare threads | Ian Jackson | 2025-02-25 | 1 | -0/+31 |
| | | |||||
| * | tor-rtmock: Capitalise Subthread and link to the definition | Ian Jackson | 2025-02-25 | 1 | -25/+29 |
| | | | | | | This makes it clearer that this is a specific term, which a definition. | ||||
| * | tor-rtmock: Fix a typo | Ian Jackson | 2025-02-25 | 1 | -1/+1 |
| | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2793#note_3161972 | ||||
| * | tor-rtmock: Move imprecations to more prominent location | Ian Jackson | 2025-02-25 | 1 | -11/+9 |
| | | | | | | The rustdocs for a fn in a trait impl are rendered, but are very unobvious. Put the information in the top-level documentation. | ||||
| * | tor-rtmock: subthread facility | Ian Jackson | 2025-02-13 | 1 | -7/+381 |
| | | | | | We'll expose this with some new traits in tor_rtmock. | ||||
| * | tor-rtmock: subthread facility (pre-fmt) | Ian Jackson | 2025-02-13 | 1 | -2/+10 |
| | | |||||
| * | tor-rtmock: Replace open-coded Debug impl with Derive | Ian Jackson | 2025-02-13 | 1 | -34/+27 |
| | | | | | | | | No change to output, but much less open-coding. Move the doc comment that was on the Debugg impl, to the `DebugTasks` helper struct. | ||||
| * | tor-rtmock tests: Improve various_mock_executors | Ian Jackson | 2025-02-13 | 1 | -0/+1 |
| | | | | | Show where each test sub-case is started, in stderr output. | ||||
| * | tor-rtmock tests: Break out various_mock_executors | Ian Jackson | 2025-02-13 | 1 | -5/+10 |
| | | | | | We're going to add another call site. | ||||
| * | tor-rtmock: Break out Task::set_awake | Ian Jackson | 2025-02-13 | 1 | -7/+19 |
| | | | | | We're going to add another call site. | ||||
| * | tor-rtmock: task: Rename MockExecutor Arc<Shared> field to shared | Ian Jackson | 2025-02-13 | 1 | -17/+17 |
| | | |||||
| * | tor-rtmock: task: Replace ArcMutexData with Arc<Shared> | Ian Jackson | 2025-02-13 | 1 | -12/+20 |
| | | | | | | | | | | | | | | We're going to want to add a field inside the Arc but not inside the Mutex, so make the Arc contents into a named-fields struct. We don't need ArcMutexData any more. Arc<Shared> will do fine. Previously, we needed to implement .lock() on ArcMutexData but because Arc<Shared> derefs to Shared, we can implement it on Shared just as well. The field in MockExecutor ought to be renamed, but that's textually intrusive so will come in the next commit. | ||||
| * | tor-rtmock: Correct a comment | Ian Jackson | 2025-02-13 | 1 | -1/+1 |
| | | | | | | In an earlier version of this code there was a Polling state, but there isn't now. | ||||
| * | fix: fix typos | Dimitris Apostolou | 2025-01-30 | 1 | -1/+1 |
| | | |||||
| * | tor-rtmock: drop_reentrancy test: Run under miri too | Ian Jackson | 2025-01-15 | 1 | -8/+14 |
| | | |||||
| * | tor-rtmock: Explicitly manage the lifetime of the future | Ian Jackson | 2025-01-15 | 1 | -0/+7 |
| | | | | | | | | | | | | Previously, if r is Pending, `fut` is moved out of (stored in `task.fut`), whereas if r is Ready, it is retained and then dropped at the end of the loop iteration. This is quite subtle, and involves `fut` being in a "maybe moved out of" state (which cannot be represented in Rust's surface type system) after the block with the `data` lock. Let's write code that more clearly ensures that the compiler DTRT. | ||||
| * | tor-rtmock: Add a test case for Future drop entrancy | Ian Jackson | 2025-01-15 | 1 | -0/+34 |
| | | | | | | This passes right now, but only because the lifetime of the `fut` variable in `execute_until_first_stall` happens to be right. | ||||
| * | tor-rtmock: Avoid misleading task dumps by careful drop sequencing | Ian Jackson | 2025-01-15 | 1 | -9/+34 |
| | | |||||
| * | tor-rtmock: Add some more tracing / debug output | Ian Jackson | 2025-01-15 | 1 | -1/+9 |
| | | |||||
| * | tor-rtmock: Explain a difficulty with test trace output | Ian Jackson | 2025-01-15 | 1 | -0/+5 |
| | | |||||
| * | tor-rtcompat: Use GAT instead of RPIT in SpawnBlocking trait. | Wesley Aptekar-Cassels | 2025-01-07 | 1 | -3/+6 |
| | | | | | Due to the limitations on RPIT, it's better to use a GAT for now. | ||||
| * | tor-rtmock: Add task names for spawn_obj and spawn_blocking. | Wesley Aptekar-Cassels | 2025-01-07 | 1 | -2/+2 |
| | | |||||
| * | tor-rtcompat: Add spawn_blocking to Runtime trait. | Wesley Aptekar-Cassels | 2025-01-07 | 1 | -1/+37 |
| | | | | | | This adds a new SpawnBlocking trait, which exposes the spawn_blocking function that tokio, async-std, and other runtimes have. | ||||
| * | fix: fix typos | Dimitris Apostolou | 2025-01-06 | 1 | -2/+2 |
| | | |||||
| * | Convert a few crates to slotmap-careful | Neel Chauhan | 2024-10-17 | 1 | -3/+3 |
| | | |||||
| * | tor-rtmock: Add some commentary about SleepLocation | Ian Jackson | 2024-10-08 | 1 | -0/+6 |
| | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2502#note_3090557 | ||||
| * | tor-rtmock: Fix a memory leak | Ian Jackson | 2024-10-08 | 1 | -6/+20 |
| | | | | | | | Change the waker to have a weak reference to the executor. Detected by miri. | ||||
| * | tor-rtmock: Provide a fake SleepProvider for miri | Ian Jackson | 2024-10-08 | 1 | -0/+16 |
| | | |||||
| * | extract tor_async_utils::oneshot into ::oneshot-fused-workaround | Jim Newsome | 2024-08-28 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | Having this in the `tor-async-utils` crate prevents us from doing both of the following without introducing a circular dependency: * using it in `tor-rtmock` (which we currently do, particularly in tests). * using `tor-rtmock` to test things in `tor-async-utils`. We don't do this yet, but it is generally sensible to do so. In particular we want to move the `stream_peak` module there, which is currently tested with `tor-rtmock`. Moving this into its own crate avoids this circular dependency. | ||||
| * | Match previous backtrace formatting | Robin Leander Schröder | 2024-08-08 | 1 | -1/+1 |
| | | | | | | std::backtrace::Backtrace's Display looks the same as backtrace_rs::Backtrace's Debug | ||||
| * | Use std::backtrace instead of backtrace crate | Robin Leander Schröder | 2024-08-01 | 1 | -33/+8 |
| | | | | | | Removes resolve_backtraces from rtmock since it is no longer needed as stdlib's backtraces automatically lazily resolve without needing a &mut. | ||||
| * | Suppress a spurious dead code lint | Ian Jackson | 2024-04-25 | 1 | -0/+1 |
| | | |||||
| * | Run maint/add_warning. | Nick Mathewson | 2024-03-13 | 1 | -0/+1 |
| | | |||||
| * | tor-rtmock: get rid of unwrap() | Saksham Mittal | 2023-11-21 | 1 | -1/+1 |
| | | |||||
| * | tor-rtmock: handle Receiver result inside spawn_join() | Saksham Mittal | 2023-11-21 | 1 | -2/+2 |
| | | |||||
| * | tor-rtmock: use expect() instead | Saksham Mittal | 2023-11-21 | 1 | -1/+2 |
| | | |||||
| * | tor-rtmock: change return types to be less concrete | Saksham Mittal | 2023-11-21 | 1 | -1/+1 |
| | | |||||
| * | tor-rtmock: change return type of spawn_join() | Saksham Mittal | 2023-11-21 | 1 | -3/+3 |
| | | | | | | This makes it synchronous. The trait bounds on the return type have also been relaxed to not require Clone | ||||
| * | tor-rtmock: introduce spawn_join() for MockRuntime & MockExecutor | Saksham Mittal | 2023-11-21 | 1 | -0/+17 |
| | | | | | | | | This helps abstract away the need to create a oneshot channel in order to get the return value out of an async function when using MockRuntime. ref: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1727#note_2965352 | ||||
| * | tor-rtmock: MockExecutor: Provide n_tasks accessor | Ian Jackson | 2023-10-16 | 1 | -0/+15 |
| | | |||||
| * | tor-rtmock: task backtraces: Expand on spurious backtraces | Ian Jackson | 2023-09-13 | 1 | -2/+7 |
| | | | | | There's another reason you can see multiple backtraces. | ||||
| * | tor-rtmock: task backtraces: Fix output re backtrace multiplicity | Ian Jackson | 2023-09-13 | 1 | -2/+10 |
| | | | | | | | | There may be several backtraces for an asleep task. If so, print the prefix for each one. There may be no backtraces for an asleep task. If so, print a message. | ||||
| * | tor-rtmock: task: Add missing doc comment | Ian Jackson | 2023-09-13 | 1 | -1/+3 |
| | | |||||
| * | tor-rtmock: task: Add warning about backtrace salience | Ian Jackson | 2023-09-13 | 1 | -2/+34 |
| | | | | | With explanation of how it works. | ||||
| * | tor-rtmock: task: Add backtrace dumping calls | Ian Jackson | 2023-09-13 | 1 | -4/+4 |
| | | | | | | | | Do a full dump, not just a normal Debug dump, when we're panicking in progress_until_stalled. Add a debug dump call to one of the tests, so we can see it working. | ||||
| * | tor-rtmock: task: Add API for printing dumps including backtraces | Ian Jackson | 2023-09-13 | 1 | -3/+77 |
| | | |||||
| * | tor-rtmock: task: Capture sleep backtraces, with code to dump | Ian Jackson | 2023-09-13 | 1 | -4/+75 |
| | | | | | Currently nothing actually calls the dumping code. | ||||
| * | tor-rtmock: task: Prepare for ActualWaker::clone taking the data lock | Ian Jackson | 2023-09-13 | 1 | -4/+28 |
| | | |||||
| * | tor-rtmock: task: Switch to unsafe RawWaker approach | Ian Jackson | 2023-09-13 | 1 | -5/+83 |
| | | |||||
