General Purpose library for Freestanding C++ and POSIX systems
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 

40 lignes
494 B

#pragma once
#include "gp/indexed_array.hpp"
#include "gp/vfs/process_data.hpp"
namespace gp{
class system;
class scheduler {
gp::specifics::platform_data root;
size_t current = 0;
system& sys;
no_inline_decl(
void yield_to(size_t target_pid)
);
public:
scheduler(class system&);
[[noreturn]] void run(allocator& alloc) {
again:
run_once();
cleanup(alloc);
goto again;
}
void cleanup(allocator& alloc);
void run_once();
void yield(){
yield_to(0);
}
};
}