Skip to content

Commit 59d7fef

Browse files
Merge pull request #10 from replicate/andreas/lock-logger
Lock stream logger to be safe
2 parents 06adc2d + 359801b commit 59d7fef

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

pkg/logger/stream_logger.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"encoding/json"
55
"fmt"
66
"net/http"
7+
"sync"
78

89
"github.com/replicate/cog/pkg/console"
9-
1010
"github.com/replicate/cog/pkg/model"
1111
)
1212

@@ -28,6 +28,7 @@ type Message struct {
2828

2929
type StreamLogger struct {
3030
writer http.ResponseWriter
31+
mu sync.Mutex
3132
}
3233

3334
func NewStreamLogger(w http.ResponseWriter) *StreamLogger {
@@ -45,6 +46,8 @@ func (logger *StreamLogger) logText(messageType MessageType, text string) {
4546

4647
func (logger *StreamLogger) write(data []byte) {
4748
data = append(data, '\n')
49+
logger.mu.Lock()
50+
defer logger.mu.Unlock()
4851
if _, err := logger.writer.Write(data); err != nil {
4952
console.Warn("HTTP response writer failed to write: %s", data)
5053
return

0 commit comments

Comments
 (0)