summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-08-03 20:21:45 +0700
committerShulhan <ms@kilabit.info>2022-08-03 20:21:45 +0700
commit7dd9858b2263a53179919da61e11c26d96fbfea7 (patch)
tree4631e1476372edad993c42cfc6c073e5b67b5a36
parent9c1bcb8938c0b59e0395a7c26c5117e3a5dc0fc5 (diff)
downloadpakakeh.go-7dd9858b2263a53179919da61e11c26d96fbfea7.tar.xz
lib/mlog: simplify for-select channel consumers with for-range
-rw-r--r--lib/mlog/multi_logger.go80
1 files changed, 33 insertions, 47 deletions
diff --git a/lib/mlog/multi_logger.go b/lib/mlog/multi_logger.go
index 33c0865c..bf420a05 100644
--- a/lib/mlog/multi_logger.go
+++ b/lib/mlog/multi_logger.go
@@ -236,35 +236,28 @@ func (mlog *MultiLogger) processErrorQueue() {
b []byte
w NamedWriter
err error
- ok bool
)
- for {
- select {
- case b, ok = <-mlog.qerr:
- if !ok {
- // A closed channel is already empty, no need
- // to flush it.
- for name = range mlog.errs {
- delete(mlog.errs, name)
- }
- mlog.flushq <- struct{}{}
- return
- }
- if bytes.Equal(b, cmdFlush) {
- // Empty data indicated flushing the channel.
- flush(mlog.qerr, mlog.errs)
- mlog.flushq <- struct{}{}
- continue
- }
+ for b = range mlog.qerr {
+ if bytes.Equal(b, cmdFlush) {
+ // Empty data indicated flushing the channel.
+ flush(mlog.qerr, mlog.errs)
+ mlog.flushq <- struct{}{}
+ continue
+ }
- for name, w = range mlog.errs {
- _, err = w.Write(b)
- if err != nil {
- log.Printf("MultiLogger: %s: %s", name, err)
- }
+ for name, w = range mlog.errs {
+ _, err = w.Write(b)
+ if err != nil {
+ log.Printf("MultiLogger: %s: %s", name, err)
}
}
}
+
+ for name = range mlog.errs {
+ // A closed channel is already empty, no need to flush it.
+ delete(mlog.errs, name)
+ }
+ mlog.flushq <- struct{}{}
}
func (mlog *MultiLogger) processOutputQueue() {
@@ -273,35 +266,28 @@ func (mlog *MultiLogger) processOutputQueue() {
b []byte
w NamedWriter
err error
- ok bool
)
- for {
- select {
- case b, ok = <-mlog.qout:
- if !ok {
- // A closed channel is already empty, no need
- // to flush it.
- for name = range mlog.outs {
- delete(mlog.outs, name)
- }
- mlog.flushq <- struct{}{}
- return
- }
- if bytes.Equal(b, cmdFlush) {
- flush(mlog.qout, mlog.outs)
- mlog.flushq <- struct{}{}
- continue
- }
+ for b = range mlog.qout {
+ if bytes.Equal(b, cmdFlush) {
+ flush(mlog.qout, mlog.outs)
+ mlog.flushq <- struct{}{}
+ continue
+ }
- for name, w = range mlog.outs {
- _, err = w.Write(b)
- if err != nil {
- log.Printf("MultiLogger: %s: %s", name, err)
- }
+ for name, w = range mlog.outs {
+ _, err = w.Write(b)
+ if err != nil {
+ log.Printf("MultiLogger: %s: %s", name, err)
}
}
}
+
+ for name = range mlog.outs {
+ // A closed channel is already empty, no need to flush it.
+ delete(mlog.outs, name)
+ }
+ mlog.flushq <- struct{}{}
}
func (mlog *MultiLogger) writeTo(q chan []byte, format string, v ...interface{}) {