this post was submitted on 16 Sep 2024
32 points (100.0% liked)
Rust
111 readers
4 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Looks like the author missed my main complaint about Rust mutexes, which is that the
lock
method returns aResult
. There should be atry_unlock
method for when someone actually wants to handle the rather obscure failure case, and the namelock
should be used for a method that panics on failure but returns a value that doesn't need to be unwrapped first. I see the current arrangement as being about as sensible as having array subscripting return aResult
to handle the case of a failed bounds check.If lock-ergonomics^ⓒ^ is as relevant to you as indexing, you're doing it wrong.
I would rather take indexing returning
Result
s than the other way around.One can always wrap any code in
{||{ //.. }}()
and use question marks liberally anyway (I call them stable try blocks 😉).Just use the Mutex from the parking_lot crate.