diff --git a/ShadowsocksX-NG2/Domain/Plugin/PluginCatalog.swift b/ShadowsocksX-NG2/Domain/Plugin/PluginCatalog.swift index 95f1991d..f03cd6b1 100644 --- a/ShadowsocksX-NG2/Domain/Plugin/PluginCatalog.swift +++ b/ShadowsocksX-NG2/Domain/Plugin/PluginCatalog.swift @@ -175,8 +175,7 @@ final class PluginCatalog: ObservableObject, PluginExecutableResolving { guard !Task.isCancelled else { return } let facts = await inspector.inspect(URL(fileURLWithPath: path)) guard let self, !Task.isCancelled, - self.catalogSnapshot().generation == snapshot.generation, - self.catalogSnapshot().entry(for: entry.program)?.path == path, + self.lock.withLock({ self.state.generation }) == snapshot.generation, PluginFileIdentity(path: path) == identity else { return } for name in names { self.securityFacts[name] = facts }