Files
TempleOS-Rijn/SparrowOS/Demo/MultiCore/LoadTest.CPP
T
2018-09-08 21:45:28 +02:00

58 lines
1.0 KiB
C++

I64 load_test_done;
U0 Job1(I64)
{ //Compile Compiler
TaskInitExt; //Enable file access
Preempt(ON); //Off by default
Silent(ON);
while (!load_test_done) {
Cd("::/SparrowOS/Compiler");
Cmp("Compiler");
}
lock {load_test_done--;}
}
U0 Job2(I64)
{ //Log a file
TaskInitExt; //Enable file access
Preempt(ON); //Off by default
while (!load_test_done) {
AdamLog("%F","::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z");
Yield;
}
lock {load_test_done--;}
}
U0 Job3(I64)
{ //Log a file
TaskInitExt; //Enable file access
Preempt(ON); //Off by default
while (!load_test_done) {
Cd("::/SparrowOS/Compiler");
AdamLog("%F","Compiler.PRJ.Z");
Yield;
}
lock {load_test_done--;}
}
U0 Main()
{
load_test_done=0;
"Running MultiCore Test...\n";
MPSpawn(&Job1);
MPSpawn(&Job2);
MPSpawn(&Job1);
MPSpawn(&Job3);
Spawn(&Job1);
Spawn(&Job2);
Spawn(&Job1);
Spawn(&Job3);
PressAKey;
load_test_done=8;
//We don't want to yank code from under MP cores.
while (load_test_done)
Yield;
}
Main;