まとめ: std::sync::RwLock::{write(), try_read()} を併用した場合には「書き込みロックを最優先」という挙動は必ずしも期待できない (LinuxではNG) Pthread の規約が挙動に自由度をもたせており、Linuxにおけるデフォルト実装では writer starvation が発生する Rustにおいて writer starvation を回避しつつ readers-writer lock を使うには parking_lot::RwLock を使うと良い 目次 背景: Readers-writer lock とは? 背景: Rustにおける readers-writer lock 背景: RwLock::write() と RwLock::try_read() 再現コード 原因分析 修正: parking_lot::RwLock を使う おわり