Add SharedMutex (based on libfiber's rwlock)