18,11 → 18,11 |
|
/** |
------------ |
CVS : $Id: signal.c,v 1.2 2002-11-11 08:34:09 pj Exp $ |
CVS : $Id: signal.c,v 1.3 2003-01-07 17:07:49 pj Exp $ |
|
File: $File$ |
Revision: $Revision: 1.2 $ |
Last update: $Date: 2002-11-11 08:34:09 $ |
Revision: $Revision: 1.3 $ |
Last update: $Date: 2003-01-07 17:07:49 $ |
------------ |
|
This file contains: |
334,7 → 334,7 |
iq_extract(p, &sigwaiters); |
|
l = proc_table[p].task_level; |
level_table[l]->task_insert(l,p); |
level_table[l]->public_unblock(l,p); |
|
} |
|
481,10 → 481,10 |
/* Reactivate the task... */ |
iq_extract(task, &sigwaiters); |
l = proc_table[task].task_level; |
level_table[l]->task_insert(l,task); |
level_table[l]->public_unblock(l,task); |
|
if (proc_table[task].delay_timer != -1) { |
event_delete(proc_table[task].delay_timer); |
kern_event_delete(proc_table[task].delay_timer); |
proc_table[task].delay_timer = -1; |
} |
|
627,10 → 627,10 |
iq_extract(task, &sigwaiters); |
|
l = proc_table[task].task_level; |
level_table[l]->task_insert(l,task); |
level_table[l]->public_unblock(l,task); |
|
if (proc_table[task].delay_timer != -1) { |
event_delete(proc_table[task].delay_timer); |
kern_event_delete(proc_table[task].delay_timer); |
proc_table[task].delay_timer = -1; |
} |
|
700,7 → 700,7 |
iq_extract(p, &sigwaiters); |
|
l = proc_table[p].task_level; |
level_table[l]->task_insert(l,p); |
level_table[l]->public_unblock(l,p); |
|
event_need_reschedule(); |
} |
718,8 → 718,6 |
proc_des *pthread = &proc_table[exec_shadow]; |
int thissig; |
|
struct timespec ty; |
TIME tx; |
LEVEL l; |
|
task_testcancel(); |
814,18 → 812,10 |
/* now, we really block the task... */ |
proc_table[exec_shadow].context = kern_context_save(); |
|
/* SAME AS SCHEDULER... manage the capacity event and the load_info */ |
ll_gettime(TIME_EXACT, &schedule_time); |
SUBTIMESPEC(&schedule_time, &cap_lasttime, &ty); |
tx = TIMESPEC2USEC(&ty); |
proc_table[exec_shadow].avail_time -= tx; |
jet_update_slice(tx); |
if (cap_timer != NIL) { |
event_delete(cap_timer); |
cap_timer = NIL; |
} |
kern_epilogue_macro(); |
|
l = proc_table[exec_shadow].task_level; |
level_table[l]->task_extract(l,exec_shadow); |
level_table[l]->public_block(l,exec_shadow); |
|
/* |
* Add this thread to the list of threads in sigwait. Once that is |
841,7 → 831,7 |
/* we can use the delaytimer because if we are here we are not in a |
task_delay */ |
struct timespec t, abstime; |
ll_gettime(TIME_EXACT, &t); |
kern_gettime(&t); |
ADDTIMESPEC(&t, timeout, &abstime); |
|
proc_table[exec_shadow].delay_timer = |
1027,8 → 1017,6 |
{ |
proc_des *pthread = &proc_table[exec_shadow]; |
|
struct timespec ty; |
TIME tx; |
LEVEL l; |
|
task_testcancel(); |
1056,18 → 1044,9 |
/* now, we really block the task... */ |
proc_table[exec_shadow].context = kern_context_save(); |
|
/* SAME AS SCHEDULER... manage the capacity event and the load_info */ |
ll_gettime(TIME_EXACT, &schedule_time); |
SUBTIMESPEC(&schedule_time, &cap_lasttime, &ty); |
tx = TIMESPEC2USEC(&ty); |
proc_table[exec_shadow].avail_time -= tx; |
jet_update_slice(tx); |
if (cap_timer != NIL) { |
event_delete(cap_timer); |
cap_timer = NIL; |
} |
kern_epilogue_macro(); |
l = proc_table[exec_shadow].task_level; |
level_table[l]->task_extract(l,exec_shadow); |
level_table[l]->public_block(l,exec_shadow); |
|
iq_insertfirst(exec_shadow, &sigwaiters); |
proc_table[exec_shadow].status = WAIT_SIGSUSPEND; |
1116,7 → 1095,7 |
|
kern_cli(); |
|
ll_gettime(TIME_EXACT, &temp); |
kern_gettime(&temp); |
|
if (alarm_timer == -1) |
returnvalue.tv_sec = 0; |
1123,7 → 1102,7 |
else { |
SUBTIMESPEC(&alarm_time, &temp, &returnvalue); |
|
event_delete(alarm_timer); |
kern_event_delete(alarm_timer); |
} |
|
if (seconds) { |
1497,7 → 1476,7 |
if (proc_table[i].status == WAIT_SIG) { |
|
if (proc_table[i].delay_timer != -1) { |
event_delete(proc_table[i].delay_timer); |
kern_event_delete(proc_table[i].delay_timer); |
proc_table[i].delay_timer = -1; |
} |
|
1504,7 → 1483,7 |
iq_extract(i, &sigwaiters); |
|
l = proc_table[i].task_level; |
level_table[l]->task_insert(l,i); |
level_table[l]->public_unblock(l,i); |
|
return 1; |
} |
1511,7 → 1490,7 |
else if (proc_table[i].status == WAIT_SIGSUSPEND) { |
|
l = proc_table[i].task_level; |
level_table[l]->task_insert(l,i); |
level_table[l]->public_unblock(l,i); |
|
return 1; |
} |