linux/rust/kernel/sync
Alice Ryhl e7b9b1ff1d rust: sync: add CondVar::wait_timeout
Sleep on a condition variable with a timeout.

This is used by Rust Binder for process freezing. There, we want to
sleep until the freeze operation completes, but we want to be able to
abort the process freezing if it doesn't complete within some timeout.

Note that it is not enough to avoid jiffies by introducing a variant of
`CondVar::wait_timeout` that takes the timeout in msecs because we need
to be able to restart the sleep with the remaining sleep duration if it
is interrupted, and if the API takes msecs rather than jiffies, then
that would require a conversion roundtrip jiffies->msecs->jiffies that
is best avoided.

Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Tiago Lam <tiagolam@gmail.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20240108-rb-new-condvar-methods-v4-3-88e0c871cc05@google.com
[ Added `CondVarTimeoutResult` re-export and fixed typo. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-01-28 20:54:35 +01:00
..
arc rust: sync: arc: Implement Arc<dyn Any + Send + Sync>::downcast() 2023-04-10 23:55:43 +02:00
lock rust: support srctree-relative links 2023-12-21 20:54:17 +01:00
arc.rs workqueue: Add rust bindings for v6.7 2023-10-30 20:35:48 -10:00
condvar.rs rust: sync: add CondVar::wait_timeout 2024-01-28 20:54:35 +01:00
lock.rs rust: sync: add CondVar::wait_timeout 2024-01-28 20:54:35 +01:00
locked_by.rs rust: sync: introduce LockedBy 2023-04-22 00:20:00 +02:00