File tree Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -187,6 +187,7 @@ func allReferencedPackages(pkg *Package, filterNodes NodeFilter) []*Package {
187
187
type TypeChecker struct {
188
188
checkedPackages map [* Package ]struct {}
189
189
filterNodes NodeFilter
190
+ sync.Mutex
190
191
}
191
192
192
193
// Check type-checks the given package and all packages referenced
@@ -224,7 +225,10 @@ func (c *TypeChecker) check(root *Package) {
224
225
root .Lock ()
225
226
defer root .Unlock ()
226
227
227
- if _ , ok := c .checkedPackages [root ]; ok {
228
+ c .Lock ()
229
+ _ , ok := c .checkedPackages [root ]
230
+ c .Unlock ()
231
+ if ok {
228
232
return
229
233
}
230
234
@@ -244,5 +248,7 @@ func (c *TypeChecker) check(root *Package) {
244
248
// ...then, we can safely type-check ourself
245
249
root .NeedTypesInfo ()
246
250
251
+ c .Lock ()
252
+ defer c .Unlock ()
247
253
c .checkedPackages [root ] = struct {}{}
248
254
}
You can’t perform that action at this time.
0 commit comments