| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #include "kernel.h"
- #include "scheduler.h"
- #ifndef ZV_FULL_DISABLE_NON_BALANCED_PRIORITY
- zv_process_t * zv_kernel_non_balanced_priority(zv_kernel_t *self) {
- zv_process_t *selected = NULL;
- for (
- zv_process_t *current = self->processes;
- current != (self->processes + self->processes_count);
- ++current
- ) {
- if (!zv_process_is_ready(current)) {
- continue;
- }
-
- if (selected == NULL) {
- selected = current;
- continue;
- }
- if (current->priority < selected->priority) {
- selected = current;
- continue;
- }
- }
- return selected;
- }
- #else
- zv_process_t * zv_kernel_non_balanced_priority(zv_kernel_t *self) {
- return NULL;
- }
- #endif
|