1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2024-11-25 14:06:08 -05:00

Merge pull request #1188 from yukiteruamano/next

Partially fix building on OpenBSD
This commit is contained in:
Yuxuan Shui 2024-02-10 11:21:30 +01:00 committed by GitHub
commit 726b8d0e28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View file

@ -86,6 +86,10 @@ elif (host_system == 'freebsd' or host_system == 'netbsd' or
cflags += ['-DHAS_KQUEUE']
endif
if host_system == 'openbsd'
deps += [dependency('threads', required: true)]
endif
subdir('backend')
picom = executable('picom', srcs, c_args: cflags,

View file

@ -35,6 +35,9 @@
#include <xcb/render.h>
#include <xcb/sync.h>
#include <xcb/xfixes.h>
#ifdef __OpenBSD__
#include <pthread.h>
#endif
#include <ev.h>
#include <test.h>
@ -2588,17 +2591,30 @@ void set_rr_scheduling(void) {
int ret;
struct sched_param param;
#ifndef __OpenBSD__
ret = sched_getparam(0, &param);
#else
int old_policy;
ret = pthread_getschedparam(pthread_self(), &old_policy, &param);
#endif
if (ret != 0) {
log_debug("Failed to get old scheduling priority");
return;
}
param.sched_priority = priority;
#ifndef __OpenBSD__
ret = sched_setscheduler(0, SCHED_RR, &param);
#else
ret = pthread_setschedparam(pthread_self(), SCHED_RR, &param);
#endif
if (ret != 0) {
log_info("Failed to set real-time scheduling priority to %d. Consider "
"giving picom the CAP_SYS_NICE capability",
"giving picom the CAP_SYS_NICE capability or equivalent "
"support.",
priority);
return;
}