thread implementation

main
Eggert Jung 4 months ago
parent c1145d28f8
commit 76eb2420bd

@ -127,10 +127,9 @@ extern "C" int main() {
DBG << "Main CPU " << static_cast<int>(LAPIC::getID()) << endl << flush;
prepareContext(&test1_stack[sizeof(test1_stack)-1], test1, (void(*)(void*)) &(test_func1));
prepareContext(&test2_stack[sizeof(test2_stack)-1], test2, (void(*)(void*)) &(test_func2));
test1_thread.go();
context_launch(&test1);
//Application{}.action();
while (true){

@ -1,6 +1,7 @@
// vim: set noet ts=4 sw=4:
#include "thread.h"
#include "../arch/context.h"
// Alias to simplify stuff
typedef void (*kickoff_t)(void*);
@ -10,14 +11,17 @@ void Thread::kickoff(Thread* object) {
}
Thread::Thread(void* tos) {
prepareContext(tos, context, (void(*)(void*)) &(kickoff), this);
}
void Thread::resume(Thread* next) {
context_switch(&next->context, &context);
}
void Thread::go() {
context_launch(&context);
}
void Thread::action() {}
void Thread::action() {
while(1);
}

Loading…
Cancel
Save