From 911f1f88ee969a3f131ba237fcdde2d74fe2bee9 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Mon, 10 Jul 2017 19:27:25 -0700 Subject: [PATCH] Correct FileWatcherEventKind in server polling method Was sending Changed on Creation. Caveat: the tests will probably still fail intermittently with a race - this just fixes the deterministic failure. --- src/server/server.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index 873f7fc613c..75e46d28f7a 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -526,12 +526,18 @@ namespace ts.server { if (err) { watchedFile.callback(watchedFile.fileName, FileWatcherEventKind.Changed); } - else if (watchedFile.mtime.getTime() !== stats.mtime.getTime()) { - watchedFile.mtime = stats.mtime; - const eventKind = watchedFile.mtime.getTime() === 0 - ? FileWatcherEventKind.Deleted - : FileWatcherEventKind.Changed; - watchedFile.callback(watchedFile.fileName, eventKind); + else { + const oldTime = watchedFile.mtime.getTime(); + const newTime = stats.mtime.getTime(); + if (oldTime !== newTime) { + watchedFile.mtime = stats.mtime; + const eventKind = oldTime === 0 + ? FileWatcherEventKind.Created + : newTime === 0 + ? FileWatcherEventKind.Deleted + : FileWatcherEventKind.Changed; + watchedFile.callback(watchedFile.fileName, eventKind); + } } }); }