mirror of
https://github.com/go-task/task.git
synced 2025-03-21 21:27:07 +02:00
fix: concurrent mutations to prefixWriter (#1974)
This commit is contained in:
parent
fd3532812e
commit
0409c3c3ba
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/go-task/task/v3/internal/logger"
|
"github.com/go-task/task/v3/internal/logger"
|
||||||
"github.com/go-task/task/v3/internal/templater"
|
"github.com/go-task/task/v3/internal/templater"
|
||||||
@ -14,6 +15,7 @@ type Prefixed struct {
|
|||||||
logger *logger.Logger
|
logger *logger.Logger
|
||||||
seen map[string]uint
|
seen map[string]uint
|
||||||
counter *uint
|
counter *uint
|
||||||
|
mutex *sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPrefixed(logger *logger.Logger) Prefixed {
|
func NewPrefixed(logger *logger.Logger) Prefixed {
|
||||||
@ -23,6 +25,7 @@ func NewPrefixed(logger *logger.Logger) Prefixed {
|
|||||||
seen: make(map[string]uint),
|
seen: make(map[string]uint),
|
||||||
counter: &counter,
|
counter: &counter,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
|
mutex: &sync.Mutex{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,6 +88,9 @@ func (pw *prefixWriter) writeLine(line string) error {
|
|||||||
line += "\n"
|
line += "\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer pw.prefixed.mutex.Unlock()
|
||||||
|
pw.prefixed.mutex.Lock()
|
||||||
|
|
||||||
idx, ok := pw.prefixed.seen[pw.prefix]
|
idx, ok := pw.prefixed.seen[pw.prefix]
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user