@@ -34,6 +34,7 @@ void set_priority(const NUClear::PriorityLevel& priority) {
3434 case IDLE: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_IDLE); break ;
3535 case LOWEST: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_LOWEST); break ;
3636 case LOW: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_BELOW_NORMAL); break ;
37+ default : // Default to normal if someone broke the enum
3738 case NORMAL: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_NORMAL); break ;
3839 case HIGH: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_ABOVE_NORMAL); break ;
3940 case HIGHEST: SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_HIGHEST); break ;
@@ -90,17 +91,17 @@ void set_priority(const NUClear::PriorityLevel& priority) {
9091
9192namespace {
9293
93- void set_priority (const NUClear::PriorityLevel& /* priority*/ ) {
94- // TODO try doing nothing, see if it works without setting any priority
95- // switch (priority) {
96- // case NUClear::PriorityLevel::IDLE : pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0 ); break;
97- // case NUClear::PriorityLevel::LOWEST : pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 1 ); break;
98- // case NUClear::PriorityLevel::LOW: pthread_set_qos_class_self_np(QOS_CLASS_UTILITY, 0); break;
99- // case NUClear::PriorityLevel::NORMAL: pthread_set_qos_class_self_np(QOS_CLASS_DEFAULT, 0); break;
100- // case NUClear::PriorityLevel::HIGH: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 1); break;
101- // case NUClear::PriorityLevel::HIGHEST: pthread_set_qos_class_self_np(QOS_CLASS_USER_INITIATED, 0); break;
102- // case NUClear::PriorityLevel::REALTIME: pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0); break;
103- // }
94+ void set_priority (const NUClear::PriorityLevel& priority) {
95+ switch ( priority) {
96+ case NUClear::PriorityLevel::IDLE: pthread_set_qos_class_self_np (QOS_CLASS_BACKGROUND, 0 ); break ;
97+ case NUClear::PriorityLevel::LOWEST : pthread_set_qos_class_self_np (QOS_CLASS_UTILITY, 1 ); break ;
98+ case NUClear::PriorityLevel::LOW : pthread_set_qos_class_self_np (QOS_CLASS_UTILITY, 0 ); break ;
99+ default : // Default to normal if someone broke the enum
100+ case NUClear::PriorityLevel::NORMAL: pthread_set_qos_class_self_np (QOS_CLASS_DEFAULT, 0 ); break ;
101+ case NUClear::PriorityLevel::HIGH: pthread_set_qos_class_self_np (QOS_CLASS_USER_INITIATED, 1 ); break ;
102+ case NUClear::PriorityLevel::HIGHEST: pthread_set_qos_class_self_np (QOS_CLASS_USER_INITIATED, 0 ); break ;
103+ case NUClear::PriorityLevel::REALTIME: pthread_set_qos_class_self_np (QOS_CLASS_USER_INTERACTIVE, 0 ); break ;
104+ }
104105}
105106
106107} // namespace
0 commit comments