diff --git a/FastDownward/Exec.hs b/FastDownward/Exec.hs index 5dcdccb..43c5cba 100644 --- a/FastDownward/Exec.hs +++ b/FastDownward/Exec.hs @@ -129,12 +129,14 @@ module FastDownward.Exec ) where +import Control.Concurrent.Async (concurrently) import Control.Monad.IO.Class ( MonadIO, liftIO ) import Data.Char import Data.List import Data.Maybe import Data.Ratio -import qualified Data.Text.Lazy +import qualified Data.Text +import qualified Data.Text.IO import qualified Data.Text.Lazy.IO import qualified FastDownward.SAS import qualified FastDownward.SAS.Plan @@ -294,16 +296,14 @@ callFastDownward Options{ fastDownward, problem, planFilePath, searchConfigurati Data.Text.Lazy.IO.hPutStr writeProblemHandle ( FastDownward.SAS.Plan.toSAS problem ) >> hClose writeProblemHandle + (stderr, stdout) <- concurrently + (Data.Text.IO.hGetContents stderrHandle) + (Data.Text.IO.hGetContents stdoutHandle) + exitCode <- waitForProcess processHandle - stdout <- - Data.Text.Lazy.IO.hGetContents stdoutHandle - - stderr <- - Data.Text.Lazy.IO.hGetContents stderrHandle - - return ( exitCode, Data.Text.Lazy.unpack stdout, Data.Text.Lazy.unpack stderr ) + return ( exitCode, Data.Text.unpack stdout, Data.Text.unpack stderr ) -- | See diff --git a/fast-downward.cabal b/fast-downward.cabal index 7084cac..68645c0 100644 --- a/fast-downward.cabal +++ b/fast-downward.cabal @@ -58,6 +58,7 @@ library FastDownward.SAS.Version build-depends: base ^>= 4.11.1.0 || ^>= 4.12.0.0 || ^>= 4.13.0.0, + async ^>= 2.2.0, containers ^>= 0.5.11.0 || ^>= 0.6, mtl ^>= 2.2.2, process ^>= 1.6.3.0,