[PATCH 2/2] schedsvc: Retry opening a .job file only in case of sharing violation. (v2)

Dmitry Timoshkov dmitry at baikal.ru
Tue Jun 12 08:41:25 CDT 2018


And turn loud ERR() into a TRACE() like it is in other places.

v2: fix a copy/paste typo.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/schedsvc/atsvc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/schedsvc/atsvc.c b/dlls/schedsvc/atsvc.c
index f6ea0f0e23..b8adc7279d 100644
--- a/dlls/schedsvc/atsvc.c
+++ b/dlls/schedsvc/atsvc.c
@@ -558,7 +558,7 @@ static BOOL load_job(const WCHAR *name, struct job_t *info)
         if (file == INVALID_HANDLE_VALUE)
         {
             TRACE("Failed to open %s, error %u\n", debugstr_w(name), GetLastError());
-            if (try++ >= 3) break;
+            if (GetLastError() != ERROR_SHARING_VIOLATION || try++ >= 3) break;
             Sleep(100);
             continue;
         }
@@ -872,9 +872,9 @@ static void update_job_status(struct job_t *job)
         hfile = CreateFileW(job->name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
         if (hfile != INVALID_HANDLE_VALUE) break;
 
-        if (try++ >= 3)
+        if (GetLastError() != ERROR_SHARING_VIOLATION || try++ >= 3)
         {
-            ERR("Failed to update %s, error %u\n", debugstr_w(job->name), GetLastError());
+            TRACE("Failed to update %s, error %u\n", debugstr_w(job->name), GetLastError());
             return;
         }
         Sleep(100);
-- 
2.16.3




More information about the wine-devel mailing list