Skip to content
This repository was archived by the owner on Feb 25, 2021. It is now read-only.

Commit 5b45014

Browse files
Remove unnecessary reload delay
1 parent 7c94e4b commit 5b45014

File tree

1 file changed

+13
-20
lines changed

1 file changed

+13
-20
lines changed

src/Microsoft.AspNetCore.Blazor.Server/LiveReloadingContext.cs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ internal class LiveReloadingContext
1616
// Keep in sync with the const in Microsoft.AspNetCore.Blazor.Build's AppBuilder.cs
1717
private const string BlazorBuildCompletedSignalFile = "__blazorBuildCompleted";
1818

19-
// If some external automated process is writing multiple files to wwwroot,
20-
// you probably want to wait until they've all been written before reloading.
21-
// Pausing by 500 milliseconds is a crude effort - we might need a different
22-
// mechanism (e.g., waiting until writes have stopped by 500ms).
23-
private const int WebRootUpdateDelayMilliseconds = 500; // TODO: REMOVE THIS
19+
// These strings are in the format needed by EventSource
2420
private const string heartbeatMessage = "data: alive\n\n";
2521
private const string reloadMessage = "data: reload\n\n";
2622

@@ -84,7 +80,7 @@ private void CreateFileSystemWatchers(BlazorConfig config)
8480
distFileWatcher.Deleted += (sender, eventArgs) => {
8581
if (eventArgs.Name.Equals(BlazorBuildCompletedSignalFile, StringComparison.Ordinal))
8682
{
87-
RequestReload(0);
83+
RequestReload();
8884
}
8985
};
9086
distFileWatcher.EnableRaisingEvents = true;
@@ -97,27 +93,24 @@ private void CreateFileSystemWatchers(BlazorConfig config)
9793
if (!string.IsNullOrEmpty(config.WebRootPath))
9894
{
9995
var webRootWatcher = new FileSystemWatcher(config.WebRootPath);
100-
webRootWatcher.Deleted += (sender, evtArgs) => RequestReload(WebRootUpdateDelayMilliseconds);
101-
webRootWatcher.Created += (sender, evtArgs) => RequestReload(WebRootUpdateDelayMilliseconds);
102-
webRootWatcher.Changed += (sender, evtArgs) => RequestReload(WebRootUpdateDelayMilliseconds);
103-
webRootWatcher.Renamed += (sender, evtArgs) => RequestReload(WebRootUpdateDelayMilliseconds);
96+
webRootWatcher.Deleted += (sender, evtArgs) => RequestReload();
97+
webRootWatcher.Created += (sender, evtArgs) => RequestReload();
98+
webRootWatcher.Changed += (sender, evtArgs) => RequestReload();
99+
webRootWatcher.Renamed += (sender, evtArgs) => RequestReload();
104100
webRootWatcher.EnableRaisingEvents = true;
105101
_pinnedWatchers.Add(webRootWatcher);
106102
}
107103
}
108104

109-
private void RequestReload(int delayMilliseconds)
105+
private void RequestReload()
110106
{
111-
Task.Delay(delayMilliseconds).ContinueWith(_ =>
107+
lock (_currentReloadListenerLock)
112108
{
113-
lock (_currentReloadListenerLock)
114-
{
115-
// Lock just to be sure two threads don't assign different new CTSs, of which
116-
// only one would later get cancelled.
117-
_currentReloadListener.Cancel();
118-
_currentReloadListener = new CancellationTokenSource();
119-
}
120-
});
109+
// Lock just to be sure two threads don't assign different new CTSs, of which
110+
// only one would later get cancelled.
111+
_currentReloadListener.Cancel();
112+
_currentReloadListener = new CancellationTokenSource();
113+
}
121114
}
122115
}
123116
}

0 commit comments

Comments
 (0)