logMsg :: Logger -> ByteString -> IO ()
logMsg !lg !s = do
    let !s' = fromByteString s `mappend` fromWord8 (c2w '\n')
    atomicModifyIORef (_queuedMessages lg) $ \d -> (d `mappend` s',())
    void $ tryPutMVar (_dataWaiting lg) ()


------------------------------------------------------------------------------
logMsg :: Logger -> ByteString -> IO ()
logMsg !lg !s = do
    let !s' = fromByteString s `mappend` fromWord8 (c2w '\n')
    atomicModifyIORef (_queuedMessages lg) $ \d -> (d `mappend` s',())
    void $ tryPutMVar (_dataWaiting lg) ()


------------------------------------------------------------------------------
logMsg !lg !s = do
    let !s' = fromByteString s `mappend` fromWord8 (c2w '\n')
    atomicModifyIORef (_queuedMessages lg) $ \d -> (d `mappend` s',())
    void $ tryPutMVar (_dataWaiting lg) ()


------------------------------------------------------------------------------