ZealOS/src/Demo/Templates/MultiCore1.CC
xmm15 889d97383d 2 Spaces -> 1 Tab (4 spaced) for indentation
Fixed PCILookUpSingle code for this change
EdCodeTools reindent needs to be updated
2020-02-20 17:40:10 -06:00

29 lines
555 B
HolyC
Executable file

#define NUM 100
I64 mp_not_done_flags,grand_total;
U0 MPRoutine(CDoc *doc)
{
I64 i,sum=0,
lo=NUM*Gs->num/mp_count, //This is how to divide a job
hi=NUM*(Gs->num+1)/mp_count;
for (i=lo;i<hi;i++)
sum+=i;
DocPrint(doc,"Core#%d:%d-%d:%d\n",Gs->num,lo,hi-1,sum);
lock {grand_total+=sum;}
LBtr(&mp_not_done_flags,Gs->num);
}
U0 Main()
{
I64 i;
grand_total=0;
mp_not_done_flags=1<<mp_count-1;
for (i=0;i<mp_count;i++)
Spawn(&MPRoutine,DocPut,NULL,i);
while (mp_not_done_flags)
Yield;
"Grand total:%d\n",grand_total;
}
Main;