fix(autotranslate): mark warmup thread as IsBackground
F9.2: PreloadCache spawned a new Thread without IsBackground, which kept the plugin unload blocked until the warmup finished (typically 100-300 ms). Setting IsBackground=true plus a named thread matches the pattern already used in MessageManager (F6.1) and Plugin.RetentionSweep (F9.3) since v1.4.0.
This commit is contained in:
@@ -54,15 +54,21 @@ internal static class AutoTranslate
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Warms the auto-translate cache on a background thread so the first
|
// Warms the auto-translate cache on a background thread so the first
|
||||||
// message send doesn't hitch the main thread.
|
// message send doesn't hitch the main thread. IsBackground keeps plugin
|
||||||
|
// unload non-blocking even if the warmup is still in flight.
|
||||||
internal static void PreloadCache()
|
internal static void PreloadCache()
|
||||||
{
|
{
|
||||||
new Thread(() =>
|
var thread = new Thread(() =>
|
||||||
{
|
{
|
||||||
var sw = Stopwatch.StartNew();
|
var sw = Stopwatch.StartNew();
|
||||||
AllEntries();
|
AllEntries();
|
||||||
Plugin.Log.Debug($"Warming up auto-translate took {sw.ElapsedMilliseconds}ms");
|
Plugin.Log.Debug($"Warming up auto-translate took {sw.ElapsedMilliseconds}ms");
|
||||||
}).Start();
|
})
|
||||||
|
{
|
||||||
|
IsBackground = true,
|
||||||
|
Name = "HellionChat-AutoTranslate-Warmup",
|
||||||
|
};
|
||||||
|
thread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<AutoTranslateEntry> AllEntries()
|
private static List<AutoTranslateEntry> AllEntries()
|
||||||
|
|||||||
Reference in New Issue
Block a user