@@ -119,28 +119,21 @@ public void RemoveAnalysis(IPythonModule module) {
119
119
120
120
public void EnqueueDocumentForAnalysis ( IPythonModule module , ImmutableArray < IPythonModule > analysisDependencies ) {
121
121
var key = new AnalysisModuleKey ( module ) ;
122
- PythonAnalyzerEntry entry ;
123
- int version ;
124
122
lock ( _syncObj ) {
125
- if ( ! _analysisEntries . TryGetValue ( key , out entry ) ) {
123
+ if ( ! _analysisEntries . TryGetValue ( key , out var entry ) ) {
126
124
return ;
127
125
}
128
- version = _version + 1 ;
129
- }
130
-
131
- if ( entry . Invalidate ( analysisDependencies , version , out var dependencies ) ) {
132
- AnalyzeDocument ( key , entry , dependencies ) ;
126
+ var version = _version + 1 ;
127
+ if ( entry . Invalidate ( analysisDependencies , version , out var dependencies ) ) {
128
+ AnalyzeDocument ( key , entry , dependencies ) ;
129
+ }
133
130
}
134
131
}
135
132
136
133
public void EnqueueDocumentForAnalysis ( IPythonModule module , PythonAst ast , int bufferVersion ) {
137
- PythonAnalyzerEntry entry ;
138
- AnalysisModuleKey key ;
139
- int version ;
140
-
141
134
lock ( _syncObj ) {
142
- entry = GetOrCreateAnalysisEntry ( module , out key ) ;
143
- version = _version + 1 ;
135
+ var entry = GetOrCreateAnalysisEntry ( module , out var key ) ;
136
+ var version = _version + 1 ;
144
137
if ( entry . BufferVersion >= bufferVersion ) {
145
138
return ;
146
139
}
@@ -152,10 +145,10 @@ public void EnqueueDocumentForAnalysis(IPythonModule module, PythonAst ast, int
152
145
key = nonUserAsDocumentKey ;
153
146
entry = documentEntry ;
154
147
}
155
- }
156
148
157
- if ( entry . Invalidate ( module , ast , bufferVersion , version , out var dependencies ) ) {
158
- AnalyzeDocument ( key , entry , dependencies ) ;
149
+ if ( entry . Invalidate ( module , ast , bufferVersion , version , out var dependencies ) ) {
150
+ AnalyzeDocument ( key , entry , dependencies ) ;
151
+ }
159
152
}
160
153
}
161
154
@@ -220,16 +213,13 @@ private void AnalyzeDocument(in AnalysisModuleKey key, in PythonAnalyzerEntry en
220
213
_log ? . Log ( TraceEventType . Verbose , $ "Analysis of { entry . Module . Name } ({ entry . Module . ModuleType } ) queued. Dependencies: { string . Join ( ", " , dependencies . Select ( d => d . IsTypeshed ? $ "{ d . Name } (stub)" : d . Name ) ) } ") ;
221
214
222
215
var graphVersion = _dependencyResolver . ChangeValue ( key , entry , entry . IsUserOrBuiltin || key . IsNonUserAsDocument , dependencies ) ;
223
-
224
- lock ( _syncObj ) {
225
- if ( _version > graphVersion ) {
226
- return ;
227
- }
228
-
229
- _version = graphVersion ;
230
- _currentSession ? . Cancel ( ) ;
216
+ if ( _version > graphVersion ) {
217
+ return ;
231
218
}
232
219
220
+ _version = graphVersion ;
221
+ _currentSession ? . Cancel ( ) ;
222
+
233
223
if ( TryCreateSession ( graphVersion , entry , out var session ) ) {
234
224
session . Start ( true ) ;
235
225
}
0 commit comments