diff --git a/services/base/src/thread_handler_impl.cpp b/services/base/src/thread_handler_impl.cpp index 468dfd776486cb62082bd334f1aaffc31ea16a4b..c571bea783f18be6cc242a8d160aed898e38694c 100644 --- a/services/base/src/thread_handler_impl.cpp +++ b/services/base/src/thread_handler_impl.cpp @@ -33,6 +33,8 @@ namespace UserIam { namespace UserAuth { using namespace OHOS; using namespace OHOS::UserIam::Common; +constexpr uint32_t TASK_BLOCK_MONITOR_TIMEOUT = 20; + ThreadHandlerImpl::ThreadHandlerImpl(std::string name, bool canSuspend) : pool_(name), canSuspend_(canSuspend) { pool_.Start(1); @@ -52,8 +54,11 @@ void ThreadHandlerImpl::PostTask(const Task &task) } pool_.AddTask(task); - constexpr uint32_t TASK_BLOCK_MONITOR_TIMEOUT = 20; auto taskBlockMonitor = MakeShared("taskBlockMonitor", TASK_BLOCK_MONITOR_TIMEOUT); + if (taskBlockMonitor == nullptr) { + IAM_LOGE("taskBlockMonitor is nullptr"); + return; + } pool_.AddTask([taskBlockMonitor] { (void)taskBlockMonitor; }); diff --git a/services/base/src/thread_handler_singleton_impl.cpp b/services/base/src/thread_handler_singleton_impl.cpp index dcf5b55ca84f801a21650d6cd5d5d9ac4b02e0d8..1da2d6441303b43267288c45e75902dc1ef61696 100644 --- a/services/base/src/thread_handler_singleton_impl.cpp +++ b/services/base/src/thread_handler_singleton_impl.cpp @@ -34,12 +34,18 @@ namespace UserIam { namespace UserAuth { using namespace OHOS; using namespace OHOS::UserIam::Common; +constexpr uint32_t TASK_BLOCK_MONITOR_TIMEOUT = 20; + void ThreadHandlerSingletonImpl::PostTask(const Task &task) { RelativeTimer::GetInstance().Register(task, 0); - constexpr uint32_t TASK_BLOCK_MONITOR_TIMEOUT = 20; auto taskBlockMonitor = MakeShared("taskBlockMonitor", TASK_BLOCK_MONITOR_TIMEOUT); + if (taskBlockMonitor == nullptr) { + IAM_LOGE("taskBlockMonitor is nullptr"); + return; + } + RelativeTimer::GetInstance().Register( [taskBlockMonitor] { (void)taskBlockMonitor;