| 1234567891011121314151617181920212223242526272829 |
- #include "kernel.h"
- #include "scheduler.h"
- #ifndef ZV_FULL_DISABLE_ROUND_ROUBIN_FIRST_MATCH
- zv_process_t * zv_kernel_round_first_match(zv_kernel_t *self) {
- zv_pid_t size = self->processes_count;
- zv_pid_t count = (self->last + 1) % size;
- while (count != self->last) {
- zv_process_t *current = self->processes + count;
-
- if (zv_process_is_ready(current)) {
- return current;
- }
- count = (count + 1) % size;
- }
- return NULL;
- }
- #else
- zv_process_t * zv_kernel_round_first_match(zv_kernel_t *self) {
- return NULL;
- }
- #endif
|