Skip to content

Commit 0229942

Browse files
This did nothing!
1 parent 80a2543 commit 0229942

1 file changed

Lines changed: 9 additions & 22 deletions

File tree

src/util/ThreadPriority.cpp

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ void set_priority(const NUClear::PriorityLevel& priority) {
4343
} // namespace
4444

4545
#elif defined(__linux__)
46-
4746
#include <pthread.h>
4847
#include <sched.h>
4948

@@ -91,28 +90,16 @@ void set_priority(const NUClear::PriorityLevel& priority) {
9190

9291
namespace {
9392

94-
/// The minimum priority level for the SCHED_RR policy
95-
const int min_rr_priority = sched_get_priority_min(SCHED_RR);
96-
/// The maximum priority level for the SCHED_RR policy
97-
const int max_rr_priority = sched_get_priority_max(SCHED_RR);
98-
9993
void set_priority(const NUClear::PriorityLevel& priority) {
100-
auto sched_priority = min_rr_priority + (priority / (max_rr_priority - min_rr_priority));
101-
102-
sched_param p{};
103-
p.sched_priority = sched_priority;
104-
pthread_setschedparam(pthread_self(), SCHED_RR, &p);
105-
106-
// TODO this fails in CI maybe the system calls are too much?
107-
// switch (priority) {
108-
// case NUClear::PriorityLevel::IDLE: pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0); break;
109-
// case NUClear::PriorityLevel::LOWEST: pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 1); break;
110-
// case NUClear::PriorityLevel::LOW: pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 0); break;
111-
// case NUClear::PriorityLevel::NORMAL: pthread_set_qos_class_self_np(QOS_CLASS_DEFAULT, 0); break;
112-
// case NUClear::PriorityLevel::HIGH: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 1); break;
113-
// case NUClear::PriorityLevel::HIGHEST: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 0); break;
114-
// case NUClear::PriorityLevel::REALTIME: pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0); break;
115-
// }
94+
switch (priority) {
95+
case NUClear::PriorityLevel::IDLE: pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0); break;
96+
case NUClear::PriorityLevel::LOWEST: pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 1); break;
97+
case NUClear::PriorityLevel::LOW: pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 0); break;
98+
case NUClear::PriorityLevel::NORMAL: pthread_set_qos_class_self_np(QOS_CLASS_DEFAULT, 0); break;
99+
case NUClear::PriorityLevel::HIGH: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 1); break;
100+
case NUClear::PriorityLevel::HIGHEST: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 0); break;
101+
case NUClear::PriorityLevel::REALTIME: pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0); break;
102+
}
116103
}
117104

118105
} // namespace

0 commit comments

Comments
 (0)