diff --git a/services/reminder/include/reminder_data_manager.h b/services/reminder/include/reminder_data_manager.h index efe1cfeb484ba18738226f1e7400c376685bd7cf..2467c7a31989378691a2c118714bae6348d634b5 100644 --- a/services/reminder/include/reminder_data_manager.h +++ b/services/reminder/include/reminder_data_manager.h @@ -712,6 +712,7 @@ private: static std::mutex ALERT_MUTEX; static std::mutex TIMER_MUTEX; static std::mutex ACTIVE_MUTEX; + std::mutex cancelMutex_; // for cancelReminder function /** * Max number of reminders limit for the whole system. diff --git a/services/reminder/src/reminder_data_manager.cpp b/services/reminder/src/reminder_data_manager.cpp index 56d5dd1ac71fc38fbc591ab55c6ad92e9b7cb1e4..c68da5ef7ab2da9cda88d3b8b424bf0c051a39bd 100644 --- a/services/reminder/src/reminder_data_manager.cpp +++ b/services/reminder/src/reminder_data_manager.cpp @@ -130,6 +130,7 @@ ErrCode ReminderDataManager::CancelReminder( ANSR_LOGW("Not find the reminder due to not match"); return ERR_REMINDER_NOT_EXIST; } + std::lock_guard locker(cancelMutex_); if (activeReminderId_ == reminderId) { { std::lock_guard locker(ReminderDataManager::ACTIVE_MUTEX); diff --git a/services/reminder/test/unittest/reminder_data_manager_test.cpp b/services/reminder/test/unittest/reminder_data_manager_test.cpp index ba3db22dd5e7210b22c4de0317825123e29247d9..56b2552318b510d69ca85068a1c60d3427e35dc2 100644 --- a/services/reminder/test/unittest/reminder_data_manager_test.cpp +++ b/services/reminder/test/unittest/reminder_data_manager_test.cpp @@ -1638,7 +1638,7 @@ HWTEST_F(ReminderDataManagerTest, ReminderDataManagerTest_038, Level1) Uri enableUri(uriStr); std::string enable; auto ret = ReminderDataShareHelper::GetInstance().Query(enableUri, "focus_mode_enable", enable); - EXPECT_TRUE(ret == false); + EXPECT_EQ(ret, false); } } // namespace Notification } // namespace OHOS