1

add logging to thread and destructor

This commit is contained in:
2022-07-16 16:36:34 +02:00
parent 696292bdff
commit 675f995abd
3 changed files with 13 additions and 5 deletions

View File

@ -20,13 +20,13 @@ private:
public:
IdleThread() {
kout << "Initialized Idle Thread" << endl;
log << INFO << "Initialized Idle Thread with ID: " << dec << this->tid << endl;
}
void run() override {
// Idle-Thread läuft, ab jetzt ist der Scheduler fertig initialisiert
scheduler.enable_preemption();
kout << "IdleThread enabled preemption" << endl;
log << INFO << "IdleThread enabled preemption" << endl;
while (true) {
// kout << "Idle!" << endl;

View File

@ -30,6 +30,7 @@ extern "C" {
void Thread_switch(struct ThreadState* regs_now, struct ThreadState* reg_then);
}
Logger Thread::log = Logger("Thread");
unsigned int ThreadCnt = 0;
/*****************************************************************************
@ -107,6 +108,7 @@ void kickoff(Thread* object) {
* stack Stack für die neue Koroutine *
*****************************************************************************/
Thread::Thread() : stack(new unsigned int[1024]), tid(ThreadCnt++) {
Thread::log << INFO << "Initialized thread with ID: " << this->tid << endl;
Thread_init(&regs, stack + 1024, kickoff, this); // Stack grows from top to bottom
}

View File

@ -29,20 +29,26 @@
#define __Thread_include__
#include "kernel/threads/ThreadState.h"
#include "lib/Chain.h"
#include "user/lib/Logger.h"
class Thread : public Chain {
class Thread {
private:
Thread(const Thread& copy) = delete; // Verhindere Kopieren
unsigned int* stack;
struct ThreadState regs;
protected:
static Logger log;
public:
unsigned int tid; // Thread-ID (wird im Konstruktor vergeben)
Thread();
~Thread();
virtual ~Thread() {
delete[] this->stack;
}
// Thread aktivieren
void start();