402,6 → 402,8 |
int current_exec = 0; |
int current_endcycle = 0; |
|
int kill_delta = 0; |
|
unsigned long long last_tsc, tsc; |
|
input_file = fopen(filename,"r"); |
465,6 → 467,7 |
break; |
|
case 5: |
case 9: |
/* 2 par */ |
fscanf(input_file,"%d %d",&par1,&par2); |
break; |
548,7 → 551,10 |
case 5: |
|
for (i=0;i<context_total;i++) |
if (par1 == context_list[i].ctx) break; |
if (par1 == context_list[i].ctx) { |
context_list[i].pid = par2; |
break; |
} |
if (i == context_total) { |
context_list[context_total].ctx = par1; |
context_list[context_total].pid = par2; |
556,7 → 562,33 |
} |
|
break; |
|
/* Task kill */ |
case 7: |
|
for (i=0;i<context_total;i++) |
if (par1 == context_list[i].ctx) break; |
if (i == context_total) Error(5); |
else { |
|
kill_delta += 1000; |
|
for (k=0;k<current_endcycle;k++) |
if (endcycle_list[k].ctx == par1) |
endcycle_list[k].ctx += kill_delta; |
for (k=0;k<current_exec;k++) |
if (exec_list[k].ctx == par1) |
exec_list[k].ctx += kill_delta; |
context_list[context_total].ctx = context_list[i].ctx + kill_delta; |
context_list[context_total].pid = context_list[i].pid; |
context_total++; |
|
if (current_context == par1) current_context += kill_delta; |
|
} |
|
break; |
|
/* Task endcycle */ |
case 8: |
|
570,6 → 602,22 |
|
break; |
|
/* Task id */ |
case 9: |
|
for (i=0;i<context_total;i++) |
if (par1 == context_list[i].ctx) { |
context_list[i].pid = par2; |
break; |
} |
if (i == context_total) { |
context_list[context_total].ctx = par1; |
context_list[context_total].pid = par2; |
context_total++; |
} |
|
break; |
|
} |
|
if (current_exec == MAXJOB-1) { |