mstask: Retry with a timeout if opening a job file has failed.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bfb0474e77
commit
5c85a24310
|
@ -1398,7 +1398,7 @@ static HRESULT WINAPI MSTASK_IPersistFile_Load(IPersistFile *iface, LPCOLESTR fi
|
||||||
TaskImpl *This = impl_from_IPersistFile(iface);
|
TaskImpl *This = impl_from_IPersistFile(iface);
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
HANDLE file, mapping;
|
HANDLE file, mapping;
|
||||||
DWORD access, sharing, size;
|
DWORD access, sharing, size, try;
|
||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
TRACE("(%p, %s, 0x%08x)\n", iface, debugstr_w(file_name), mode);
|
TRACE("(%p, %s, 0x%08x)\n", iface, debugstr_w(file_name), mode);
|
||||||
|
@ -1432,11 +1432,18 @@ static HRESULT WINAPI MSTASK_IPersistFile_Load(IPersistFile *iface, LPCOLESTR fi
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
file = CreateFileW(file_name, access, sharing, NULL, OPEN_EXISTING, 0, 0);
|
try = 1;
|
||||||
if (file == INVALID_HANDLE_VALUE)
|
for (;;)
|
||||||
{
|
{
|
||||||
TRACE("Failed to open %s, error %u\n", debugstr_w(file_name), GetLastError());
|
file = CreateFileW(file_name, access, sharing, NULL, OPEN_EXISTING, 0, 0);
|
||||||
return HRESULT_FROM_WIN32(GetLastError());
|
if (file != INVALID_HANDLE_VALUE) break;
|
||||||
|
|
||||||
|
if (try++ >= 3)
|
||||||
|
{
|
||||||
|
TRACE("Failed to open %s, error %u\n", debugstr_w(file_name), GetLastError());
|
||||||
|
return HRESULT_FROM_WIN32(GetLastError());
|
||||||
|
}
|
||||||
|
Sleep(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
size = GetFileSize(file, NULL);
|
size = GetFileSize(file, NULL);
|
||||||
|
|
Loading…
Reference in New Issue