Skip to content

Commit

Permalink
IWF-274: clean up TODOs and rename var
Browse files Browse the repository at this point in the history
  • Loading branch information
jbowers committed Feb 4, 2025
1 parent a66a1b3 commit 083322b
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 11 deletions.
3 changes: 1 addition & 2 deletions integ/greedy_timer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,8 @@ func TestGreedyTimerWorkflowBaseCadenceContinueAsNew(t *testing.T) {
t.Skip()
}
for i := 0; i < *repeatIntegTest; i++ {
// TODO: provide durations
doTestGreedyTimerWorkflowCustomConfig(t, service.BackendTypeCadence, greedyTimerConfig(true))
// TODO: test stuff
smallWaitForFastTest()
}
}

Expand Down
2 changes: 1 addition & 1 deletion service/interpreter/timers/greedyTimerProcessor.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func NewGreedyTimerProcessor(

err = provider.SetQueryHandler(ctx, service.GetScheduledGreedyTimerTimesQueryType, func() (service.GetScheduledGreedyTimerTimesQueryResponse, error) {
return service.GetScheduledGreedyTimerTimesQueryResponse{
ScheduledGreedyTimerTimes: tp.timerManager.scheduledTimerTimes,
ScheduledGreedyTimerTimes: tp.timerManager.providerScheduledTimerUnixTs,
PendingScheduled: tp.timerManager.pendingScheduling,
}, nil
})
Expand Down
16 changes: 8 additions & 8 deletions service/interpreter/timers/greedyTimerScheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type timerScheduler struct {
// Timers requested by the workflow in desc order
pendingScheduling []*service.TimerInfo
// timers created through the workflow provider that are going to fire in desc order
scheduledTimerTimes []int64
providerScheduledTimerUnixTs []int64
}

func (t *timerScheduler) addTimer(toAdd *service.TimerInfo) {
Expand Down Expand Up @@ -53,19 +53,19 @@ func (t *timerScheduler) removeTimer(toRemove *service.TimerInfo) {
}

func (t *timerScheduler) pruneToNextTimer(pruneTo int64) *service.TimerInfo {
index := len(t.scheduledTimerTimes)
for i := len(t.scheduledTimerTimes) - 1; i >= 0; i-- {
timerTime := t.scheduledTimerTimes[i]
index := len(t.providerScheduledTimerUnixTs)
for i := len(t.providerScheduledTimerUnixTs) - 1; i >= 0; i-- {
timerTime := t.providerScheduledTimerUnixTs[i]
if timerTime > pruneTo {
break
}
index = i
}
// If index is 0, it means all times are in the past
if index == 0 {
t.scheduledTimerTimes = nil
t.providerScheduledTimerUnixTs = nil
} else {
t.scheduledTimerTimes = t.scheduledTimerTimes[:index]
t.providerScheduledTimerUnixTs = t.providerScheduledTimerUnixTs[:index]
}

if len(t.pendingScheduling) == 0 {
Expand Down Expand Up @@ -104,7 +104,7 @@ func startGreedyTimerScheduler(
_ = provider.Await(ctx, func() bool {
now := provider.Now(ctx).Unix()
next := t.pruneToNextTimer(now)
return (next != nil && (len(t.scheduledTimerTimes) == 0 || next.FiringUnixTimestampSeconds < t.scheduledTimerTimes[len(t.scheduledTimerTimes)-1])) || continueAsNewCounter.IsThresholdMet()
return (next != nil && (len(t.providerScheduledTimerUnixTs) == 0 || next.FiringUnixTimestampSeconds < t.providerScheduledTimerUnixTs[len(t.providerScheduledTimerUnixTs)-1])) || continueAsNewCounter.IsThresholdMet()
})

if continueAsNewCounter.IsThresholdMet() {
Expand All @@ -120,7 +120,7 @@ func startGreedyTimerScheduler(
// there is a goroutines awaiting some condition(some time has past) to continue,
// see WaitForTimerFiredOrSkipped.
provider.NewTimer(ctx, duration)
t.scheduledTimerTimes = append(t.scheduledTimerTimes, fireAt)
t.providerScheduledTimerUnixTs = append(t.providerScheduledTimerUnixTs, fireAt)
}
})

Expand Down

0 comments on commit 083322b

Please sign in to comment.