async writer must be initiated first, implements atomic write
(buf []byte)
| 58 | // async writer |
| 59 | // must be initiated first, implements atomic write |
| 60 | func (lw *AsyncLogWriter) Write(buf []byte) (n int, err error) { |
| 61 | lw.Lock() |
| 62 | defer lw.Unlock() |
| 63 | |
| 64 | len := len(buf) |
| 65 | msg := make([]byte, len) |
| 66 | copy(msg, buf) |
| 67 | lw.msg <- msg |
| 68 | |
| 69 | return len, nil |
| 70 | } |
| 71 | |
| 72 | func (lw *AsyncLogWriter) writeRoutine() { |
| 73 | defer lw.wg.Done() |
no outgoing calls