From d1f722e3b0b74a9d9a2e35ac1f47dbca9f7cf606 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 9 Sep 2016 15:49:44 -0400 Subject: better locking for json with -J Avoid threads emitting json at the same time and scrambling, which was still possible even with the buffering, just less likely. Converted json IO actions to JSONChunk data too. --- Types/Messages.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Types') diff --git a/Types/Messages.hs b/Types/Messages.hs index a155cae2a..49242ea45 100644 --- a/Types/Messages.hs +++ b/Types/Messages.hs @@ -10,6 +10,7 @@ module Types.Messages where import Data.Default +import qualified Data.ByteString.Lazy as B #ifdef WITH_CONCURRENTOUTPUT import System.Console.Regions (ConsoleRegion) @@ -30,7 +31,7 @@ data MessageState = MessageState , consoleRegion :: Maybe ConsoleRegion , consoleRegionErrFlag :: Bool #endif - , jsonBuffer :: [IO ()] + , jsonBuffer :: B.ByteString } instance Default MessageState @@ -44,5 +45,5 @@ instance Default MessageState , consoleRegion = Nothing , consoleRegionErrFlag = False #endif - , jsonBuffer = [] + , jsonBuffer = B.empty } -- cgit v1.2.3