From 23e917df454ba1588fcbe08adfa47422a443b9da Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Mon, 25 Nov 2019 03:08:27 -0500 Subject: switched to overlapped io so lootcli can still be terminated even if it's not writing anything to stdout --- src/loot.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/loot.h') diff --git a/src/loot.h b/src/loot.h index a67b9ed8..7e5e01bd 100644 --- a/src/loot.h +++ b/src/loot.h @@ -11,6 +11,7 @@ Q_DECLARE_METATYPE(lootcli::Progress); Q_DECLARE_METATYPE(MOBase::log::Levels); class OrganizerCore; +class AsyncPipe; class Loot : public QObject { @@ -98,16 +99,13 @@ private: std::atomic m_cancel; std::atomic m_result; env::HandlePtr m_lootProcess; - env::HandlePtr m_stdout; + std::unique_ptr m_pipe; std::string m_outputBuffer; Report m_report; - HANDLE createPipe(); bool spawnLootcli( QWidget* parent, OrganizerCore& core, bool didUpdateMasterList, - HANDLE stdoutHandle); - - std::string readFromPipe(); + env::HandlePtr stdoutHandle); void lootThread(); bool waitForCompletion(); -- cgit v1.3.1