summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2026-04-09 23:27:00 +0200
committerTom Smeding <tom@tomsmeding.com>2026-04-09 23:27:05 +0200
commitfc8511695f9a9589e11ab18727ad6233e785ad1a (patch)
treec20a2b861cce159f9b2d13a598b67959cf832dd0 /src
parent0710fa9b2cac6a3f3d18de6b303c69b2af606fd5 (diff)
Flush stdout after printing
This is useful when the program is run as a system service logging to the system log.
Diffstat (limited to 'src')
-rw-r--r--src/AtomicPrint.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/AtomicPrint.hs b/src/AtomicPrint.hs
index c2367dd..82a8552 100644
--- a/src/AtomicPrint.hs
+++ b/src/AtomicPrint.hs
@@ -9,6 +9,7 @@ import Control.Monad (void)
import Data.Text qualified as T
import Data.Text.IO.Utf8 qualified as T
import Data.Text (Text)
+import System.IO
import System.IO.Unsafe (unsafePerformIO)
@@ -22,7 +23,7 @@ atomicPrintS = atomicPrint . T.pack
atomicPrint :: Text -> IO ()
atomicPrint text =
withMVar mutex $ \() ->
- T.putStrLn text
+ T.putStrLn text >> hFlush stdout
atomicPrintNoWaitS :: String -> IO ()
atomicPrintNoWaitS = atomicPrintNoWait . T.pack