Remove another use of a global mutex

This commit is contained in:
gingerBill
2023-01-02 19:46:55 +00:00
parent 0d87b2e8db
commit d2ec2d1606
+6 -1
View File
@@ -1581,19 +1581,24 @@ gb_internal bool check_proc_body(CheckerContext *ctx_, Token token, DeclInfo *de
Scope *ps = decl->parent->scope; Scope *ps = decl->parent->scope;
if (ps->flags & (ScopeFlag_File & ScopeFlag_Pkg & ScopeFlag_Global)) { if (ps->flags & (ScopeFlag_File & ScopeFlag_Pkg & ScopeFlag_Global)) {
return true; return true;
} else MUTEX_GUARD_BLOCK(&ctx->info->deps_mutex) { } else {
// NOTE(bill): Add the dependencies from the procedure literal (lambda) // NOTE(bill): Add the dependencies from the procedure literal (lambda)
// But only at the procedure level // But only at the procedure level
MUTEX_GUARD_BLOCK(decl->deps_mutex) MUTEX_GUARD_BLOCK(decl->parent->deps_mutex) {
for (auto const &entry : decl->deps) { for (auto const &entry : decl->deps) {
Entity *e = entry.ptr; Entity *e = entry.ptr;
ptr_set_add(&decl->parent->deps, e); ptr_set_add(&decl->parent->deps, e);
} }
}
MUTEX_GUARD_BLOCK(decl->type_info_deps_mutex) MUTEX_GUARD_BLOCK(decl->parent->type_info_deps_mutex) {
for (auto const &entry : decl->type_info_deps) { for (auto const &entry : decl->type_info_deps) {
Type *t = entry.ptr; Type *t = entry.ptr;
ptr_set_add(&decl->parent->type_info_deps, t); ptr_set_add(&decl->parent->type_info_deps, t);
} }
} }
} }
}
return true; return true;
} }