Lines Matching defs:alarm
368 auto alarm = std::make_shared<TimerInfo>(id, type, when, whenElapsed, windowLength, maxWhen,
371 if (TimerProxy::GetInstance().IsUidProxy(alarm->uid)) {
373 callingUid, alarm->id);
374 TimerProxy::GetInstance().RecordProxyUidTimerMap(alarm);
375 alarm->UpdateWhenElapsedFromNow(whenElapsed, milliseconds(TimerProxy::GetInstance().GetProxyDelayTime()));
377 if (TimerProxy::GetInstance().IsPidProxy(alarm->pid)) {
379 callingPid, alarm->id);
380 TimerProxy::GetInstance().RecordProxyPidTimerMap(alarm);
381 alarm->UpdateWhenElapsedFromNow(whenElapsed, milliseconds(TimerProxy::GetInstance().GetProxyDelayTime()));
384 SetHandlerLocked(alarm, false, false);
424 TIME_HILOGI(TIME_MODULE_SERVICE, "Idle alarm removed.");
451 void TimerManager::SetHandlerLocked(std::shared_ptr<TimerInfo> alarm, bool rebatching, bool isRebatched)
454 TimerProxy::GetInstance().RecordUidTimerMap(alarm, isRebatched);
455 TimerProxy::GetInstance().RecordPidTimerMap(alarm, isRebatched);
457 if (!isRebatched && mPendingIdleUntil_ != nullptr && !CheckAllowWhileIdle(alarm)) {
458 TIME_HILOGI(TIME_MODULE_SERVICE, "Pending not-allowed alarm in idle state, id=%{public}" PRId64 "",
459 alarm->id);
460 alarm->offset = duration_cast<milliseconds>(alarm->whenElapsed - GetBootTimeNs());
461 pendingDelayTimers_.push_back(alarm);
465 AdjustSingleTimer(alarm);
468 if (!isRebatched && alarm->flags & static_cast<uint32_t>(IDLE_UNTIL)) {
469 TIME_HILOGI(TIME_MODULE_SERVICE, "Set idle timer, id=%{public}" PRId64 "", alarm->id);
470 mPendingIdleUntil_ = alarm;
473 InsertAndBatchTimerLocked(std::move(alarm));
613 TIME_HILOGI(TIME_MODULE_SERVICE, "Idle alarm triggers.");
632 bool TimerManager::ProcTriggerTimer(std::shared_ptr<TimerInfo> &alarm,
635 if (mPendingIdleUntil_ != nullptr && mPendingIdleUntil_->id == alarm->id) {
638 if (TimerProxy::GetInstance().IsUidProxy(alarm->uid)) {
639 alarm->UpdateWhenElapsedFromNow(nowElapsed, milliseconds(TimerProxy::GetInstance().GetProxyDelayTime()));
642 alarm->uid, alarm->id, alarm->whenElapsed.time_since_epoch().count(),
644 SetHandlerLocked(alarm, false, false);
646 } else if (TimerProxy::GetInstance().IsPidProxy(alarm->pid)) {
647 alarm->UpdateWhenElapsedFromNow(nowElapsed, milliseconds(TimerProxy::GetInstance().GetProxyDelayTime()));
650 alarm->pid, alarm->id, alarm->whenElapsed.time_since_epoch().count(),
652 SetHandlerLocked(alarm, false, false);
655 HandleRepeatTimer(alarm, nowElapsed);
683 auto alarm = batch->Get(i);
684 triggerList.push_back(alarm);
687 alarm->uid, alarm->id, alarm->bundleName.c_str(), alarm->wakeup);
689 if (alarm->wakeup) {
695 auto alarm = *iter;
696 if (!ProcTriggerTimer(alarm, nowElapsed)) {
752 void TimerManager::InsertAndBatchTimerLocked(std::shared_ptr<TimerInfo> alarm)
754 int64_t whichBatch = (alarm->flags & static_cast<uint32_t>(STANDALONE)) ?
756 AttemptCoalesceLocked(alarm->whenElapsed, alarm->maxWhenElapsed);
759 whichBatch, alarm->id, alarm->whenElapsed.time_since_epoch().count(),
760 alarm->maxWhenElapsed.time_since_epoch().count());
762 AddBatchLocked(alarmBatches_, std::make_shared<Batch>(*alarm));
765 if (batch->Add(alarm)) {
926 void TimerManager::UpdateTimersState(std::shared_ptr<TimerInfo> &alarm)
928 RemoveLocked(alarm->id, false);
929 AdjustSingleTimer(alarm);
930 InsertAndBatchTimerLocked(alarm);
938 [this] (std::shared_ptr<TimerInfo> &alarm) { UpdateTimersState(alarm); });
980 [this] (std::shared_ptr<TimerInfo> &alarm) { UpdateTimersState(alarm); })) {
1025 [this] (std::shared_ptr<TimerInfo> &alarm) { UpdateTimersState(alarm); });
1028 bool TimerManager::CheckAllowWhileIdle(const std::shared_ptr<TimerInfo> &alarm)
1036 [&alarm](const DevStandbyMgr::AllowInfo &allowInfo) { return allowInfo.GetName() == alarm->bundleName; });
1045 if (alarm->flags & static_cast<uint32_t>(INEXACT_REMINDER)) {
1062 bool TimerManager::AdjustDeliveryTimeBasedOnDeviceIdle(const std::shared_ptr<TimerInfo> &alarm)
1065 alarm->uid, alarm->id);
1066 if (mPendingIdleUntil_ == alarm) {
1070 auto itMap = delayedTimers_.find(alarm->id);
1073 if (alarm->type == RTC || alarm->type == RTC_WAKEUP) {
1079 if (alarm->origWhen > currentTime) {
1080 auto offset = alarm->origWhen - currentTime;
1081 return alarm->UpdateWhenElapsedFromNow(GetBootTimeNs(), offset);
1084 return alarm->UpdateWhenElapsedFromNow(GetBootTimeNs(), milliseconds(2));
1089 if (CheckAllowWhileIdle(alarm)) {
1090 TIME_HILOGD(TIME_MODULE_SERVICE, "Timer unrestricted, not adjust. id=%{public}" PRId64 "", alarm->id);
1092 } else if (alarm->whenElapsed > mPendingIdleUntil_->whenElapsed) {
1093 TIME_HILOGD(TIME_MODULE_SERVICE, "Timer not allowed, not adjust. id=%{public}" PRId64 "", alarm->id);
1096 TIME_HILOGD(TIME_MODULE_SERVICE, "Timer not allowed, id=%{public}" PRId64 "", alarm->id);
1097 delayedTimers_[alarm->id] = alarm->whenElapsed;
1099 return alarm->UpdateWhenElapsedFromNow(GetBootTimeNs(), offset);
1112 auto alarm = batch->Get(i);
1113 isAdjust = AdjustDeliveryTimeBasedOnDeviceIdle(alarm) || isAdjust;
1298 TIME_HILOGI(TIME_MODULE_SERVICE, "first alarm is null");