static bool SetPreparing() {
bool ret = false;
- std::unique_lock<std::mutex> u(status_lock_);
+ std::unique_lock<std::shared_mutex> u(status_lock_);
if (status_ == Status::UNPREPARED) {
status_ = Status::PREPARING;
ret = true;
}
static void SetStatus(Status status) {
- std::unique_lock<std::mutex> u(status_lock_);
+ std::unique_lock<std::shared_mutex> u(status_lock_);
status_ = status;
}
static Status GetStatus() {
- std::unique_lock<std::mutex> u(status_lock_);
+ std::shared_lock<std::shared_mutex> s(status_lock_);
return status_;
}
- static std::unique_lock<std::shared_timed_mutex> GetWriterLock() {
- return std::unique_lock<std::shared_timed_mutex>(lock_);
+ static std::unique_lock<std::shared_mutex> GetWriterLock() {
+ return std::unique_lock<std::shared_mutex>(lock_);
}
static void WriterUnLock() {
lock_.unlock();
}
- static std::shared_lock<std::shared_timed_mutex> GetReaderLock() {
- return std::shared_lock<std::shared_timed_mutex>(lock_, std::defer_lock);
+ static std::shared_lock<std::shared_mutex> GetReaderLock() {
+ return std::shared_lock<std::shared_mutex>(lock_, std::defer_lock);
}
static void ReaderUnLock() {
private:
static inline Status status_;
- static inline std::mutex status_lock_;
- static inline std::shared_timed_mutex lock_;
+ static inline std::shared_mutex status_lock_;
+ static inline std::shared_mutex lock_;
};
} // namespace pkgmgr_server