numatop/0034-Avoid-race-on-submitting-display-commands.patch
Pingfan Liu d53e3bd7f0 Release 2.4-5
Resolves: https://issues.redhat.com/browse/RHEL-16710

Fix ncurse race issue

Signed-off-by: Pingfan Liu <piliu@redhat.com>
2025-01-08 10:21:49 +08:00

33 lines
935 B
Diff

From 8dfa30ea03111981ce5cbc793960688d93f17b68 Mon Sep 17 00:00:00 2001
From: Andi Kleen <ak@linux.intel.com>
Date: Tue, 19 Nov 2024 11:02:35 -0800
Subject: [PATCH] Avoid race on submitting display commands
Doesn't work for quitting, but we can ignore it here.
---
common/disp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/common/disp.c b/common/disp.c
index 78bf9e9..c542b77 100644
--- a/common/disp.c
+++ b/common/disp.c
@@ -193,6 +193,14 @@ disp_consthr_quit(void)
static void
dispthr_flagset_nolock(disp_flag_t flag)
{
+ if (flag != DISP_FLAG_QUIT) {
+ /* Wait in case we the disp thread hasn't processed the flag yet. */
+ while (*(volatile disp_flag_t *)&s_disp_ctl.flag != DISP_FLAG_NONE) {
+ (void) pthread_mutex_unlock(&s_disp_ctl.mutex);
+ usleep(1);
+ (void) pthread_mutex_lock(&s_disp_ctl.mutex);
+ }
+ }
s_disp_ctl.flag = flag;
(void) pthread_cond_signal(&s_disp_ctl.cond);
}
--
2.41.0