Le Jeudi 16 Juin 2005 14:12, Edgar Bonet a écrit :
Merci pour les explications.
> > dans le premier cas, comment mettre ça en oeuvre ?
>
> #include <stdio.h>
> #include <sys/mman.h>
> #include <sched.h>
>
> /*
> * Become a real time process.
> * Returs 0 on success, -1 on error.
> */
> int become_real_time(void)
> {
> struct sched_param priority;
>
> if (mlockall(MCL_CURRENT | MCL_FUTURE) == -1) {
> perror("mlockall");
> return -1;
> }
>
> priority.sched_priority = 10;
> if (sched_setscheduler(0, SCHED_FIFO, &priority) == -1) {
> perror("sched_setscheduler");
> return -1;
> }
>
> return 0;
> }
>
> La valeur de priority.sched_priority n'a pas d'importance tant que tu as
> un seul processus temps réel. Il faut juste qu'elle soit > 0 et
> < sched_get_priority_max() (99 en principe, c.f. le man).
>
> Il faut bien entendu être root, sinon tu te prends EPERM.
Ok, mais dans le cas d'un programme comme rosengarden, je suppose que c'est
déjà fait. Donc suffit-il de le lancer root ? Rien d'autre à configurer
dans le noyau ?
--
Frédéric
http://www.gbiloba.org