summaryrefslogtreecommitdiff
path: root/src/loot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/loot.cpp')
-rw-r--r--src/loot.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/loot.cpp b/src/loot.cpp
index a7251965..47a70596 100644
--- a/src/loot.cpp
+++ b/src/loot.cpp
@@ -159,7 +159,15 @@ private:
{
DWORD bytesRead = 0;
- if (!::GetOverlappedResultEx(m_stdout.get(), &m_ov, &bytesRead, PipeTimeout, FALSE)) {
+ const auto r = WaitForSingleObject(m_readEvent.get(), PipeTimeout);
+
+ if (r == WAIT_FAILED) {
+ const auto e = GetLastError();
+ log::error("WaitForSingleObject in AsyncPipe failed, {}", formatSystemMessage(e));
+ return {};
+ }
+
+ if (!::GetOverlappedResult(m_stdout.get(), &m_ov, &bytesRead, FALSE)) {
const auto e = GetLastError();
switch (e)
@@ -490,8 +498,6 @@ const Loot::Report& Loot::report() const
void Loot::lootThread()
{
- ::SetThreadDescription(GetCurrentThread(), L"loot");
-
try
{
m_result = false;