Merge branch 'mcatanzaro/#2769' into 'main'

Failure to set thread scheduler settings should be fatal

Closes #2769

See merge request GNOME/glib!3121
This commit is contained in:
Philip Withnall 2022-12-13 12:48:29 +00:00
commit a4c33bd621

View File

@ -1248,7 +1248,6 @@ static void *
linux_pthread_proxy (void *data) linux_pthread_proxy (void *data)
{ {
GThreadPosix *thread = data; GThreadPosix *thread = data;
static gboolean printed_scheduler_warning = FALSE; /* (atomic) */
/* Set scheduler settings first if requested */ /* Set scheduler settings first if requested */
if (thread->scheduler_settings) if (thread->scheduler_settings)
@ -1261,10 +1260,8 @@ linux_pthread_proxy (void *data)
tid = (pid_t) syscall (SYS_gettid); tid = (pid_t) syscall (SYS_gettid);
res = syscall (SYS_sched_setattr, tid, thread->scheduler_settings->attr, flags); res = syscall (SYS_sched_setattr, tid, thread->scheduler_settings->attr, flags);
errsv = errno; errsv = errno;
if (res == -1 && g_atomic_int_compare_and_exchange (&printed_scheduler_warning, FALSE, TRUE)) if (res == -1)
g_critical ("Failed to set scheduler settings: %s", g_strerror (errsv)); g_error ("Failed to set scheduler settings: %s", g_strerror (errsv));
else if (res == -1)
g_debug ("Failed to set scheduler settings: %s", g_strerror (errsv));
} }
return thread->proxy (data); return thread->proxy (data);