diff --git a/src/Unused/CLI/ProgressIndicator.hs b/src/Unused/CLI/ProgressIndicator.hs index 046a8a2..b589190 100644 --- a/src/Unused/CLI/ProgressIndicator.hs +++ b/src/Unused/CLI/ProgressIndicator.hs @@ -23,7 +23,7 @@ createSpinner = progressWithIndicator :: (a -> IO [b]) -> ProgressIndicator -> [a] -> IO [b] progressWithIndicator f i terms = do printPrefix i - indicator <- start i $ length terms + (_, indicator) <- start i $ length terms concat <$> parallel (ioOps indicator) <* stop indicator <* stopGlobalPool where ioOps i' = map (\t -> f t <* increment i') terms diff --git a/src/Unused/CLI/ProgressIndicator/Internal.hs b/src/Unused/CLI/ProgressIndicator/Internal.hs index 24ae763..55492a1 100644 --- a/src/Unused/CLI/ProgressIndicator/Internal.hs +++ b/src/Unused/CLI/ProgressIndicator/Internal.hs @@ -11,13 +11,13 @@ import System.ProgressBar (ProgressRef, startProgress, incProgress, msg, percent import Unused.CLI.ProgressIndicator.Types import Unused.CLI.Util -start :: ProgressIndicator -> Int -> IO ProgressIndicator +start :: ProgressIndicator -> Int -> IO (ThreadId, ProgressIndicator) start s@Spinner{} _ = do tid <- forkIO $ runSpinner 0 s - return $ s { sThreadId = Just tid } + return (tid, s { sThreadId = Just tid }) start ProgressBar{} i = do (ref, tid) <- buildProgressBar $ toInteger i - return $ ProgressBar (Just ref) (Just tid) + return (tid, ProgressBar (Just ref) (Just tid)) stop :: ProgressIndicator -> IO () stop ProgressBar{ pbThreadId = Just tid } = killThread tid