Skip to content

Commit

Permalink
return ErrAsyncWriterFull if async channel is full
Browse files Browse the repository at this point in the history
  • Loading branch information
phuslu committed Jun 6, 2024
1 parent 66c9f2c commit 22b289a
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 26 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
- `IOWriter`, *io.Writer wrapper*
- `ConsoleWriter`, *colorful & formatting*
- `FileWriter`, *rotating & effective*
- `Async File Writer`, *asynchronously & performant*
- `AsyncWriter`, *asynchronously & performant*
- `MultiLevelWriter`, *multiple level dispatch*
- `SyslogWriter`, *memory efficient syslog*
file - `JournalWriter`, *linux systemd logging*
Expand Down
2 changes: 1 addition & 1 deletion async.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (w *AsyncWriter) WriteEntry(e *Entry) (int, error) {
case w.ch <- entry:
return len(entry.buf), nil
default:
return 0, nil
return 0, ErrAsyncWriterFull
}
} else {
w.ch <- entry
Expand Down
4 changes: 1 addition & 3 deletions async_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ func (w *AsyncWriter) vwriter() {
}
// writev
_, err = w.file.WriteV(iovs[:n])
// if err != nil {
// quit = true
// }
// quic = err != nil
// return entries to pool
for i := 0; i < n; i++ {
epool.Put(es[i])
Expand Down
22 changes: 1 addition & 21 deletions async_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,31 +50,11 @@ func BenchmarkSyncFileWriter(b *testing.B) {
}

func BenchmarkAsyncFileWriter(b *testing.B) {
logger := Logger{
Writer: &AsyncWriter{
ChannelSize: 4096,
WritevDisabled: true,
Writer: &FileWriter{
Filename: "async_file_test.log",
},
},
}
defer logger.Writer.(io.Closer).Close()

b.ReportAllocs()
b.ResetTimer()
b.RunParallel(func(b *testing.PB) {
for b.Next() {
logger.Info().Msg("hello file writer")
}
})
}

func BenchmarkAsyncFileWriterWriteV(b *testing.B) {
logger := Logger{
Writer: &AsyncWriter{
ChannelSize: 4096,
WritevDisabled: false,
DiscardOnFull: false,
Writer: &FileWriter{
Filename: "async_file_test2.log",
},
Expand Down

0 comments on commit 22b289a

Please sign in to comment.