diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 5b91c2071..4f96b5d3a 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -121,6 +121,7 @@ void ThreadImpl::setPriorityImpl(int prio) if (prio != _pData->prio) { _pData->prio = prio; + _pData->policy = SCHED_OTHER; if (isRunningImpl()) { struct sched_param par; @@ -132,7 +133,7 @@ void ThreadImpl::setPriorityImpl(int prio) } -void ThreadImpl::setOSPriorityImpl(int prio, int policy ) +void ThreadImpl::setOSPriorityImpl(int prio, int policy) { if (prio != _pData->osPrio || policy != _pData->policy) { @@ -236,7 +237,7 @@ void ThreadImpl::startImpl(Runnable& target) else { struct sched_param par; - par.sched_priority = mapPrio(_pData->prio, _pData->policy); + par.sched_priority = _pData->osPrio; if (pthread_setschedparam(_pData->thread, _pData->policy, &par)) throw SystemException("cannot set thread priority"); }