| ▲ | lelanthran 4 hours ago | |
> Intentionally or not, this post demonstrates one of the things that makes safer abstractions in C less desirable: the shared pointer implementation uses a POSIX mutex, which means it’s (1) not cross platform, and (2) pays the mutex overhead even in provably single-threaded contexts. In other words, it’s not a zero-cost abstraction. It's an implementation detail. They could have used atomic load/store (since c11) to implement the increment/decrement. TBH I'm not sure what a mutex buys you in this situation (reference counting) | ||