Subversion Repositories shark

Compare Revisions

Regard whitespace Rev 37 → Rev 38

/shark/trunk/kernel/signal.c
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;
}