scheduler : modify.c - owanesh/unifi-eos GitHub Wiki
/*
* Modifica la priorità del task specificato, ritorna 1 in caso di successo, altrimenti 0
*/
int modifyById(ReadyQueue *head, unsigned long id) {
if (isEmpty(head)) {
printf("La lista dei task e' vuota.");
return 0;
}
ReadyQueue *found = searchById(head, id);
if (found == NULL) {
printf("Task non trovato nel sistema.");
return 0;
}
byte priority = requestPriority(found);
found->task.priority = priority;
return 1;
}
Viene inizialmente verificato che la lista non sia vuota, in caso affermativo si delega a searchById() (funzione appartenente a readyQueue.c ) la ricerca del task. Se esiste viene delegato a requestPriority() l’acquisizione di un nuovo valore e lo si assegna al task.
byte requestPriority(ReadyQueue* found) {
int appo[2] = { 0, 9 };
printf("\nPriorita' attuale:%d", found->task.priority);
byte priority = selectOption("\nInserisci la nuova priorita' (tra 0 e 9): ",
appo, NULL, 0);
return priority;
}