mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Merge pull request #3525 from Feoramund/fix-more-error-racecond
Fix more race conditions in error reporting
This commit is contained in:
+3
-3
@@ -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) {
|
gb_internal void error_no_newline_va(TokenPos const &pos, char const *fmt, va_list va) {
|
||||||
global_error_collector.count.fetch_add(1);
|
global_error_collector.count.fetch_add(1);
|
||||||
|
mutex_lock(&global_error_collector.mutex);
|
||||||
if (global_error_collector.count.load() > MAX_ERROR_COLLECTOR_COUNT()) {
|
if (global_error_collector.count.load() > MAX_ERROR_COLLECTOR_COUNT()) {
|
||||||
print_all_errors();
|
print_all_errors();
|
||||||
gb_exit(1);
|
gb_exit(1);
|
||||||
}
|
}
|
||||||
mutex_lock(&global_error_collector.mutex);
|
|
||||||
|
|
||||||
push_error_value(pos, ErrorValue_Error);
|
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) {
|
gb_internal void syntax_error_va(TokenPos const &pos, TokenPos end, char const *fmt, va_list va) {
|
||||||
global_error_collector.count.fetch_add(1);
|
global_error_collector.count.fetch_add(1);
|
||||||
|
mutex_lock(&global_error_collector.mutex);
|
||||||
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
|
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
|
||||||
print_all_errors();
|
print_all_errors();
|
||||||
gb_exit(1);
|
gb_exit(1);
|
||||||
}
|
}
|
||||||
mutex_lock(&global_error_collector.mutex);
|
|
||||||
|
|
||||||
push_error_value(pos, ErrorValue_Warning);
|
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) {
|
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);
|
global_error_collector.count.fetch_add(1);
|
||||||
|
mutex_lock(&global_error_collector.mutex);
|
||||||
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
|
if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) {
|
||||||
print_all_errors();
|
print_all_errors();
|
||||||
gb_exit(1);
|
gb_exit(1);
|
||||||
}
|
}
|
||||||
mutex_lock(&global_error_collector.mutex);
|
|
||||||
|
|
||||||
push_error_value(pos, ErrorValue_Warning);
|
push_error_value(pos, ErrorValue_Warning);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user