Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select {
- case b := <-i.c:
- buf.Write(i.header)
- buf.Write(nl)
- buf.Write(b)
- buf.Write(nl)
- if buf.Len() > i.Config.FlushThreshold {
- flush = true
- }
- case <-ticker.C:
- if buf.Len() > 0 {
- flush = true
- }
- case <-i.flush:
- log.InfoK("Manual flush request", "buffer", buf.Len())
- drain:
- for {
- select {
- case b := <-i.c:
- buf.Write(i.header)
- buf.Write(nl)
- buf.Write(b)
- buf.Write(nl)
- if buf.Len() > i.Config.FlushThreshold {
- break drain
- }
- default:
- break drain
- }
- }
- if buf.Len() > 0 {
- flush = true
- }
- case <-i.t.Dying():
- // Drain a now closed c
- for b := range i.c {
- buf.Write(i.header)
- buf.Write(nl)
- buf.Write(b)
- buf.Write(nl)
- }
- if buf.Len() > 0 {
- flush = true
- }
- exit = true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement