fmsg: drop messages when msgbuf is full during withhold
All checks were successful
test / test (push) Successful in 20s

Logging functions are not expected to block. This change fixes multiple hangs where more than 64 messages are produced during withhold.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
2024-11-04 12:56:19 +09:00
parent 88abcbe0b2
commit d7df24c999
2 changed files with 26 additions and 6 deletions

View File

@@ -16,20 +16,17 @@ func SetPrefix(prefix string) {
func Print(v ...any) {
dequeueOnce.Do(dequeue)
queueSync.Add(1)
msgbuf <- dPrint(v)
queue(dPrint(v))
}
func Printf(format string, v ...any) {
dequeueOnce.Do(dequeue)
queueSync.Add(1)
msgbuf <- &dPrintf{format, v}
queue(&dPrintf{format, v})
}
func Println(v ...any) {
dequeueOnce.Do(dequeue)
queueSync.Add(1)
msgbuf <- dPrintln(v)
queue(dPrintln(v))
}
func Fatal(v ...any) {