File tree 2 files changed +16
-4
lines changed 2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -45,11 +45,12 @@ func NewRunner(client *codersdk.Client, cfg Config) *Runner {
45
45
}
46
46
47
47
// Run implements Runnable.
48
- func (r * Runner ) Run (ctx context.Context , _ string , logs io.Writer ) error {
48
+ func (r * Runner ) Run (ctx context.Context , _ string , w io.Writer ) error {
49
49
ctx , span := tracing .StartSpan (ctx )
50
50
defer span .End ()
51
51
52
- logs = loadtestutil .NewSyncWriter (logs )
52
+ logs := loadtestutil .NewSyncWriter (w )
53
+ defer logs .Close ()
53
54
logger := slog .Make (sloghuman .Sink (logs )).Leveled (slog .LevelDebug )
54
55
r .client .Logger = logger
55
56
r .client .LogBodies = true
Original file line number Diff line number Diff line change 7
7
8
8
// SyncWriter wraps an io.Writer in a sync.Mutex.
9
9
type SyncWriter struct {
10
- mut * sync.Mutex
11
- w io.Writer
10
+ mut * sync.Mutex
11
+ w io.Writer
12
+ closed bool
12
13
}
13
14
14
15
func NewSyncWriter (w io.Writer ) * SyncWriter {
@@ -22,5 +23,15 @@ func NewSyncWriter(w io.Writer) *SyncWriter {
22
23
func (sw * SyncWriter ) Write (p []byte ) (n int , err error ) {
23
24
sw .mut .Lock ()
24
25
defer sw .mut .Unlock ()
26
+ if sw .closed {
27
+ return - 1 , io .ErrClosedPipe
28
+ }
25
29
return sw .w .Write (p )
26
30
}
31
+
32
+ func (sw * SyncWriter ) Close () error {
33
+ sw .mut .Lock ()
34
+ defer sw .mut .Unlock ()
35
+ sw .closed = true
36
+ return nil
37
+ }
You can’t perform that action at this time.
0 commit comments