Add quick logic for scheduler to send fake packet when no buffer is pending

This commit is contained in:
yuhan6665 2024-07-01 21:27:24 -04:00
parent 71973da3f4
commit c0619e390a

View file

@ -57,10 +57,14 @@ func(s *Scheduler) mainLoop() {
var sending = len(s.Buffer) var sending = len(s.Buffer)
if sending > 0 { if sending > 0 {
errors.LogDebug(s.ctx, "Scheduler Trigger for ", sending, " buffer(s) with ", d, " ", trigger) errors.LogDebug(s.ctx, "Scheduler Trigger for ", sending, " buffer(s) with ", d, " ", trigger)
}
for i := 0; i<sending; i++ { for i := 0; i<sending; i++ {
s.Error <- s.writer.WriteMultiBuffer(<-s.Buffer) s.Error <- s.writer.WriteMultiBuffer(<-s.Buffer)
} }
} else if trigger > 0 {
errors.LogDebug(s.ctx, "Scheduler Trigger for fake buffer with ", d, " ", trigger)
mb := make(buf.MultiBuffer, 1)
s.Error <- s.writer.WriteMultiBuffer(mb)
}
s.bufferReadLock.Unlock() s.bufferReadLock.Unlock()
}() }()
} }
@ -69,6 +73,6 @@ func(s *Scheduler) mainLoop() {
func(s *Scheduler) exampleIndependentScheduler() { func(s *Scheduler) exampleIndependentScheduler() {
for { for {
time.Sleep(500 * time.Millisecond) time.Sleep(500 * time.Millisecond)
s.Trigger <- -1 // send all buffers s.Trigger <- 1 // send fake buffer if no pending
} }
} }