From 1f30caff8b63beda75a5dcd15ffe3e9e818ed483 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 19 Jun 2022 14:36:35 +0100 Subject: patch 8.2.5129: timeout handling is not optimal Problem: Timeout handling is not optimal. Solution: Avoid setting timeout_flag twice. Adjust the pointer when stopping the regexp timeout. Adjust variable name. --- src/os_unix.c | 1 - src/os_win32.c | 6 +++--- src/regexp.c | 1 + src/version.c | 2 ++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/os_unix.c b/src/os_unix.c index 083fd8f9be..c0293cefdc 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -8307,7 +8307,6 @@ start_timeout(long msec) // This is really the caller's responsibility, but let's make sure the // previous timer has been stopped. stop_timeout(); - timeout_flag = FALSE; if (!timer_created) { diff --git a/src/os_win32.c b/src/os_win32.c index 1adaaedcea..f325935059 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -8335,7 +8335,7 @@ static int timer_active = FALSE; * timeouts. */ static int timeout_flags[2]; -static int flag_idx = 0; +static int timeout_flag_idx = 0; static int *timeout_flag = &timeout_flags[0]; @@ -8383,7 +8383,7 @@ start_timeout(long msec) { BOOL ret; - timeout_flag = &timeout_flags[flag_idx]; + timeout_flag = &timeout_flags[timeout_flag_idx]; stop_timeout(); ret = CreateTimerQueueTimer( @@ -8395,7 +8395,7 @@ start_timeout(long msec) } else { - flag_idx = (flag_idx + 1) % 2; + timeout_flag_idx = (timeout_flag_idx + 1) % 2; timer_active = TRUE; *timeout_flag = FALSE; } diff --git a/src/regexp.c b/src/regexp.c index 0a6a8af3d5..32661f6d8a 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -61,6 +61,7 @@ init_regexp_timeout(long msec) disable_regexp_timeout(void) { stop_timeout(); + timeout_flag = &dummy_timeout_flag; } #endif diff --git a/src/version.c b/src/version.c index 75cbbaf2e9..d038087541 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 5129, /**/ 5128, /**/ -- cgit v1.2.3