+static void set_thread_policy(int policy)
+{
+ struct sched_param p;
+ int ret, old_policy, old_priority;
+
+ memset(&p, 0, sizeof(p));
+ ret = pthread_getschedparam(pthread_self(), &old_policy, &p);
+ if (ret) {
+ plog_err("Failed getting thread policy: %d\n", ret);
+ return;
+ }
+ old_priority = p.sched_priority;
+ p.sched_priority = sched_get_priority_max(policy);
+ ret = pthread_setschedparam(pthread_self(), policy, &p);
+ if (ret) {
+ plog_err("Failed setting thread priority: %d", ret);
+ } else
+ plog_info("Thread policy/priority changed from %d/%d to %d/%d\n", old_policy, old_priority, policy, p.sched_priority);
+}
+