Resolves: https://issues.redhat.com/browse/RHEL-16710 Fix ncurse race issue Signed-off-by: Pingfan Liu <piliu@redhat.com>
33 lines
935 B
Diff
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
|
|
|