Mercurial > hg > beaglert
view projects/d-box/prio.cpp @ 287:4815ed0f21de prerelease
Makefile refactoring:
- avoids recursive call to build with/without main
- takes EXAMPLE parameter. Copies the examples/$(EXAMPLE) folder to projects/$(PROJECT) and $PROJECT defaults to exampleTestProject
- you can now `make run` (TODO: currently re-links, should instead run without linking)
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Wed, 18 May 2016 01:46:32 +0100 |
parents | 8a575ba3ab52 |
children |
line wrap: on
line source
/* * prio.cpp * * Created on: May 14, 2014 * Author: Victor Zappi */ #include "prio.h" using namespace std; //----------------------------------------------------------------------------------------------------------- // set wanted real-time priority to this thread //----------------------------------------------------------------------------------------------------------- void set_realtime_priority(int order) { int ret; // We'll operate on the currently running thread. pthread_t this_thread = pthread_self(); // struct sched_param is used to store the scheduling priority struct sched_param params; // We'll set the priority to the maximum. params.sched_priority = sched_get_priority_max(SCHED_FIFO) - order; // Attempt to set thread real-time priority to the SCHED_FIFO policy ret = pthread_setschedparam(this_thread, SCHED_FIFO, ¶ms); if (ret != 0) { // Print the error cout << "Unsuccessful in setting thread realtime prio" << endl; return; } // Now verify the change in thread priority int policy = 0; ret = pthread_getschedparam(this_thread, &policy, ¶ms); if (ret != 0) { cout << "Couldn't retrieve real-time scheduling parameters" << endl; return; } // Check the correct policy was applied if(policy != SCHED_FIFO) { cout << "Scheduling is NOT SCHED_FIFO!" << endl; } } //-----------------------------------------------------------------------------------------------------------