Amanieu / parking_lot

Compact and efficient synchronization primitives for Rust. Also provides an API for creating custom synchronization primitives.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Feature Request] Create `OnceLock` and `OnceCell` using this library's Once

BLucky-gh opened this issue · comments

Since unlike Mutex, you can't specify which underlying Once to use with std::sync::OnceLock and std::cell::OnceCell, I would either have to roll my own, which seems wasteful and will not update when the std versions get changed, or manage the value and the Once separately like in the Once example, which is error-prone and puts the burden of upholding invariants on the developer

I would be happy to accept a PR for it, but it is not something I have time to work on myself.

I could try making a PR for it, but it will probably be almost entirely just a copy paste of the std implementation and just changing the import from std::sync::Once to parking_lot::Once, would that be any good?

That's fine.