diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2013-11-22 22:28:20 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2013-11-22 22:28:20 +0100 |
commit | df6b68092cf2806d7c517e15d2db57b0b19a9788 (patch) | |
tree | 932d57b6fac051acaedaa212403675d2b6670b83 /sys/src/9/port/devaoe.c | |
parent | 91c7e0b127ef494b151fae81d80885fd3d306dc5 (diff) |
kernel: kproc error and exit
catch the error() that can be thrown by sleep() and tsleep()
in kprocs.
add missing pexit() calls.
always set the freemem argument to pexit() from kproc otherwise
the process gets added to the broken list.
Diffstat (limited to 'sys/src/9/port/devaoe.c')
-rw-r--r-- | sys/src/9/port/devaoe.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/src/9/port/devaoe.c b/sys/src/9/port/devaoe.c index 0512f7016..a583ed4f3 100644 --- a/sys/src/9/port/devaoe.c +++ b/sys/src/9/port/devaoe.c @@ -701,8 +701,10 @@ loop: } runlock(&devs); i = Nms - TK2MS(Ticks - starttick); - if(i > 0) + if(i > 0 && !waserror()){ tsleep(&up->sleep, return0, 0, i); + poperror(); + } goto loop; } |