News for hackers. Stuff that matters.
Re:Bug in std:shared_mutex on Windows by bingo3131 on Sunday March 03, 2024 @11:44AM (#39581978)
Misleading title?

This is a Windows API bug with the slim reader/writer (SRW) locks. It's just that the bug was discovered via std::shared_mutex as that is implemented using SRW locks.

SRW locks: https://learn.microsoft.com/en-us/windows/win32/sync/slim-re...

Confirmation from a Microsoft employee that the bug has been raised internally with the Windows API team: https://old.reddit.com/r/cpp/comments/1b55686/maybe_possible...

Re:Bug in std:shared_mutex on Windows by dang on Sunday March 03, 2024 @01:04PM (#39582790)
Ok, I've changed the title to say that. Thanks!
Re:Bug in std:shared_mutex on Windows by tialaramex on Sunday March 03, 2024 @02:26PM (#39583584)
Yes, for example if you make a Rust std::sync:RWLock on Windows, it will literally be SRWLock because Microsoft advertises this API as having exactly the behaviour Rust wants so why would you build something worse instead ?

Rust's Mutex on Windows is also an SRWLock but it can't hit this bug because it deliberately only uses the exclusive locking.

Re:Bug in std:shared_mutex on Windows by iknowstuff on Sunday March 03, 2024 @03:12PM (#39584036)
So it doesn't use a shared lock when .read() is used?
Re:Bug in std:shared_mutex on Windows by zozbot234 on Sunday March 03, 2024 @03:18PM (#39584126)
Rust has both Mutex and RWLock. The Mutex only uses exclusive locks, there's no distinction between "read" and "write".
Re:Bug in std:shared_mutex on Windows by iknowstuff on Sunday March 03, 2024 @03:20PM (#39584141)
Oh sorry my morning brain thought the comment was all about RWLock