75
fifoScheduler Scheduler[T],
76
logger log.Logger,
78
>
iwrrChannels := atomic.Value{}
79
>
iwrrChannels.Store(WeightedChannels[T]{})
80
>
81
>
return &InterleavedWeightedRoundRobinScheduler[T, K]{
82
>
status: common.DaemonStatusInitialized,
83
>
84
>
ts: clock.NewRealTimeSource(),
85
>
fifoScheduler: fifoScheduler,
86
>
logger: logger,
87
>
88
>
options: options,
89
>
90
>
notifyChan: make(chan struct{}, 1),
91
>
shutdownChan: make(chan struct{}),
92
>
93
>
numInflightTask: 0,
94
>
weightedChannels: make(map[K]*WeightedChannel[T]),
95
>
iwrrChannels: iwrrChannels,
96
>
}
97
>
}
98
99
func (s *InterleavedWeightedRoundRobinScheduler[T, K]) Start() {