From a8cef60e54aaeeeeb5f5a5171f8e0358a5f0884e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Wed, 15 Jan 2025 12:30:05 -0500
Subject: [PATCH] Decorate intentional sleeps while holding lock

So they're auto-triaged in Synchronet.
---
 src/conio/sdl_con.c | 9 +++++++--
 src/xpdev/xpbeep.c  | 3 +++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c
index ab5842af73..9a6312250b 100644
--- a/src/conio/sdl_con.c
+++ b/src/conio/sdl_con.c
@@ -248,8 +248,10 @@ static void sdl_user_func(int func, ...)
 				return;
 		}
 		va_end(argptr);
-		while((rv = sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT))!=1)
+		while((rv = sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT))!=1) {
+			// coverity[sleep]
 			YIELD();
+		}
 		break;
 	}
 	pthread_mutex_unlock(&sdl_ufunc_mtx);
@@ -274,8 +276,10 @@ static int sdl_user_func_ret(int func, ...)
 			case SDL_USEREVENT_SETVIDMODE:
 				ev.user.data1 = (void *)(intptr_t)va_arg(argptr, int);
 				ev.user.data2 = (void *)(intptr_t)va_arg(argptr, int);
-				while(sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT)!=1)
+				while(sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT)!=1) {
+					// coverity[sleep]
 					YIELD();
+				}
 				break;
 			case SDL_USEREVENT_GETWINPOS:
 				ev.user.data1 = va_arg(argptr, void *);
@@ -284,6 +288,7 @@ static int sdl_user_func_ret(int func, ...)
 			case SDL_USEREVENT_INIT:
 			case SDL_USEREVENT_QUIT:
 				while(sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT)!=1)
+					// coverity[sleep]
 					YIELD();
 				break;
 			default:
diff --git a/src/xpdev/xpbeep.c b/src/xpdev/xpbeep.c
index 330e4060a4..eed133bd58 100644
--- a/src/xpdev/xpbeep.c
+++ b/src/xpdev/xpbeep.c
@@ -738,6 +738,7 @@ xptone_complete(void)
 #ifdef XPDEV_THREAD_SAFE
 	pthread_mutex_lock(&handle_mutex);
 #endif
+	// coverity[sleep]
 	xptone_complete_locked();
 #ifdef XPDEV_THREAD_SAFE
 	pthread_mutex_unlock(&handle_mutex);
@@ -818,6 +819,7 @@ xptone_close(void)
 #ifdef XPDEV_THREAD_SAFE
 	pthread_mutex_lock(&handle_mutex);
 #endif
+	// coverity[sleep]
 	ret = xptone_close_locked();
 #ifdef XPDEV_THREAD_SAFE
 	pthread_mutex_unlock(&handle_mutex);
@@ -1050,6 +1052,7 @@ void xp_play_sample_thread(void *data)
 				waited = true;
 			}
 			else {
+				// coverity[sleep]
 				xptone_close_locked();
 			}
 		}
-- 
GitLab