aboutsummaryrefslogtreecommitdiff
path: root/src/error.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2024-05-03 17:14:13 +0100
committerGitHub <noreply@github.com>2024-05-03 17:14:13 +0100
commitfed03e896c2118bf9506d3781317591db1a8f1f5 (patch)
tree23c2758deaa32c747521645c7e3f92cf2072cf54 /src/error.cpp
parent2201f365a1676f966fff5b9a79f0f56b5c1cf7ee (diff)
parent67b786c7388db140e80653f2d6c4027e272257b2 (diff)
Merge pull request #3525 from Feoramund/fix-more-error-racecond
Fix more race conditions in error reporting
Diffstat (limited to 'src/error.cpp')
-rw-r--r--src/error.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/error.cpp b/src/error.cpp
index 1b091f88e..1ad757964 100644
--- a/src/error.cpp
+++ b/src/error.cpp
@@ -452,11 +452,11 @@ gb_internal void error_line_va(char const *fmt, va_list va) {
gb_internal void error_no_newline_va(TokenPos const &pos, char const *fmt, va_list va) {
global_error_collector.count.fetch_add(1);
+ mutex_lock(&global_error_collector.mutex);
if (global_error_collector.count.load() > MAX_ERROR_COLLECTOR_COUNT()) {
print_all_errors();
gb_exit(1);
}
- mutex_lock(&global_error_collector.mutex);
push_error_value(pos, ErrorValue_Error);
@@ -485,11 +485,11 @@ gb_internal void error_no_newline_va(TokenPos const &pos, char const *fmt, va_li
gb_internal void syntax_error_va(TokenPos const &pos, TokenPos end, char const *fmt, va_list va) {
global_error_collector.count.fetch_add(1);
+ mutex_lock(&global_error_collector.mutex);
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
print_all_errors();
gb_exit(1);
}
- mutex_lock(&global_error_collector.mutex);
push_error_value(pos, ErrorValue_Warning);
@@ -518,11 +518,11 @@ gb_internal void syntax_error_va(TokenPos const &pos, TokenPos end, char const *
gb_internal void syntax_error_with_verbose_va(TokenPos const &pos, TokenPos end, char const *fmt, va_list va) {
global_error_collector.count.fetch_add(1);
+ mutex_lock(&global_error_collector.mutex);
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
print_all_errors();
gb_exit(1);
}
- mutex_lock(&global_error_collector.mutex);
push_error_value(pos, ErrorValue_Warning);