https://ziqing-x.github.io/posts/write-a-shared_mutex/
使用 c 的条件变量实现一个共享锁 - aurshon