add logging to thread and destructor
This commit is contained in:
@ -20,13 +20,13 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
IdleThread() {
|
IdleThread() {
|
||||||
kout << "Initialized Idle Thread" << endl;
|
log << INFO << "Initialized Idle Thread with ID: " << dec << this->tid << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void run() override {
|
void run() override {
|
||||||
// Idle-Thread läuft, ab jetzt ist der Scheduler fertig initialisiert
|
// Idle-Thread läuft, ab jetzt ist der Scheduler fertig initialisiert
|
||||||
scheduler.enable_preemption();
|
scheduler.enable_preemption();
|
||||||
kout << "IdleThread enabled preemption" << endl;
|
log << INFO << "IdleThread enabled preemption" << endl;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
// kout << "Idle!" << endl;
|
// kout << "Idle!" << endl;
|
||||||
|
|||||||
@ -30,6 +30,7 @@ extern "C" {
|
|||||||
void Thread_switch(struct ThreadState* regs_now, struct ThreadState* reg_then);
|
void Thread_switch(struct ThreadState* regs_now, struct ThreadState* reg_then);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Logger Thread::log = Logger("Thread");
|
||||||
unsigned int ThreadCnt = 0;
|
unsigned int ThreadCnt = 0;
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
@ -107,6 +108,7 @@ void kickoff(Thread* object) {
|
|||||||
* stack Stack für die neue Koroutine *
|
* stack Stack für die neue Koroutine *
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
Thread::Thread() : stack(new unsigned int[1024]), tid(ThreadCnt++) {
|
Thread::Thread() : stack(new unsigned int[1024]), tid(ThreadCnt++) {
|
||||||
|
Thread::log << INFO << "Initialized thread with ID: " << this->tid << endl;
|
||||||
Thread_init(®s, stack + 1024, kickoff, this); // Stack grows from top to bottom
|
Thread_init(®s, stack + 1024, kickoff, this); // Stack grows from top to bottom
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,20 +29,26 @@
|
|||||||
#define __Thread_include__
|
#define __Thread_include__
|
||||||
|
|
||||||
#include "kernel/threads/ThreadState.h"
|
#include "kernel/threads/ThreadState.h"
|
||||||
#include "lib/Chain.h"
|
#include "user/lib/Logger.h"
|
||||||
|
|
||||||
class Thread : public Chain {
|
class Thread {
|
||||||
private:
|
private:
|
||||||
Thread(const Thread& copy) = delete; // Verhindere Kopieren
|
Thread(const Thread& copy) = delete; // Verhindere Kopieren
|
||||||
|
|
||||||
unsigned int* stack;
|
unsigned int* stack;
|
||||||
struct ThreadState regs;
|
struct ThreadState regs;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static Logger log;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
unsigned int tid; // Thread-ID (wird im Konstruktor vergeben)
|
unsigned int tid; // Thread-ID (wird im Konstruktor vergeben)
|
||||||
|
|
||||||
Thread();
|
Thread();
|
||||||
~Thread();
|
|
||||||
|
virtual ~Thread() {
|
||||||
|
delete[] this->stack;
|
||||||
|
}
|
||||||
|
|
||||||
// Thread aktivieren
|
// Thread aktivieren
|
||||||
void start();
|
void start();
|
||||||
|
|||||||
Reference in New Issue
Block a user