rem: struct sched_param sparam; sparam.sched_priority = 0; if (::sched_setscheduler(0, SCHED_OTHER, &sparam) == -1) ECA_LOG_MSG(ECA_LOGGER::info, "(eca-engine) Unable to change scheduling back to SCHED_OTHER!");
add: if (kvu_set_thread_scheduling(SCHED_OTHER, 0) != 0) ECA_LOG_MSG(ECA_LOGGER::info, "Unable to change scheduling back to SCHED_OTHER!");
context: void ECA_ENGINE::stop_operation(void){  // ---  DBC_REQUIRE(is_prepared() == true);  // ---  ECA_LOG_MSG(ECA_LOGGER::system_objects, "(eca-engine) stopping engine operation!");  running_rep = false;  /* stop realtime devices */  for (unsigned int adev_sizet = 0; adev_sizet != realtime_objects_rep.size(); adev_sizet++) {    if (realtime_objects_rep[adev_sizet]->is_running() == true) realtime_objects_rep[adev_sizet]->stop();  }  prepared_rep = false;  /* release samplebuffer rt-locks */  for(size_t n = 0; n < cslots_rep.size(); n++) {    cslots_rep[n]->set_rt_lock(false);  }  mixslot_repp->set_rt_lock(false);  stop_servers();  /* lower priority back to normal */  if (csetup_repp->raised_priority() == true) {    struct sched_param sparam;    sparam.sched_priority = 0;    if (::sched_setscheduler(0, SCHED_OTHER, &sparam) == -1)      ECA_LOG_MSG(ECA_LOGGER::info, "(eca-engine) Unable to change scheduling back to SCHED_OTHER!");    else      ECA_LOG_MSG(ECA_LOGGER::system_objects, "(eca-engine) Changed back to non-realtime scheduling SCHED_OTHER.");  }  /* release chainsetup lock */  csetup_repp->toggle_locked_state(false);  /* signals wait_for_stop() that engine operation has stopped */  signal_stop();  // ---  DBC_ENSURE(is_running() != true);  DBC_ENSURE(is_prepared() != true);  // ---}