Skip to content

Commit 0735d53

Browse files
authored
stringbuilder is not threadsafe (#16557)
1 parent 09ac400 commit 0735d53

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

tests/FSharp.Test.Utilities/Utilities.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,12 @@ module Utilities =
108108
let outputLines = StringBuilder()
109109
let errorLines = StringBuilder()
110110

111-
do redirector.OutputProduced.Add (fun line -> outputLines.AppendLine line |>ignore)
112-
do redirector.ErrorProduced.Add(fun line -> errorLines.AppendLine line |>ignore)
111+
do redirector.OutputProduced.Add (fun line -> lock outputLines <| fun () -> outputLines.AppendLine line |>ignore)
112+
do redirector.ErrorProduced.Add(fun line -> lock errorLines <| fun () -> errorLines.AppendLine line |>ignore)
113113

114-
member _.Output () = outputLines.ToString()
114+
member _.Output () = lock outputLines outputLines.ToString
115115

116-
member _.ErrorOutput () = errorLines.ToString()
116+
member _.ErrorOutput () = lock errorLines errorLines.ToString
117117

118118
interface IDisposable with
119119
member _.Dispose() = (redirector :> IDisposable).Dispose()

0 commit comments

Comments
 (0)