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:
commit
726b8d0e28
2 changed files with 21 additions and 1 deletions
|
@ -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,
|
||||
|
|
18
src/picom.c
18
src/picom.c
|
@ -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, ¶m);
|
||||
#else
|
||||
int old_policy;
|
||||
ret = pthread_getschedparam(pthread_self(), &old_policy, ¶m);
|
||||
#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, ¶m);
|
||||
#else
|
||||
ret = pthread_setschedparam(pthread_self(), SCHED_RR, ¶m);
|
||||
#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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue