Files
bsb2/kernel/user/app1/appl.cc
2025-11-26 08:24:31 +01:00

46 lines
1.2 KiB
C++

// vim: set noet ts=4 sw=4:
#include "appl.h"
#include "../../syscall/stub.h"
#include "../../arch/core.h"
#include "../../arch/system.h"
#include "../../debug/output.h"
#include "../../device/textstream.h"
#include "../../interrupt/guard.h"
#include "../../sync/semaphore.h"
#include "../../thread/scheduler.h"
extern Semaphore koutsem;
extern TextStream kout;
extern Application apps[];
void Application::action() { // NOLINT
// Thread 1 may be an auxiliary thread
sys_test(1,2,3,4,5);
unsigned id = 0;
while (&apps[id++] != this);
for (unsigned i = 0;; ++i) {
//// Make sure that we can use kout exclusively due to the hardware cursor
//// otherwise we'd get a word jumble
//koutsem.p(Guard::enter().vault());
//kout.setPos(0U, id);
//kout << i;
//kout.flush();
//koutsem.v(Guard::enter().vault());
//// XXX: Doing this (the first time) in TASK 16 breaks all scheduling
//if (i == 10000) {
// if (id % 2 == 1) {
// Guard::enter().vault().scheduler.kill(&apps[id - 1]);
// }
//}
//Guard::enter().vault().scheduler.resume();
//if (id > 1) {
// Guarded g = Guard::enter();
// g.vault().bellringer.sleep(g.vault(), id * id * 10);
//}
}
}