diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-08-16 02:18:47 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-09-14 14:45:06 +0200 |
commit | b51f047c28142cdfb7b24641006d0afdcf399292 (patch) | |
tree | 7387a8a62833e78eb232005121b0a7d786c86c6b /kern | |
parent | 537188a07d5ee6548555260acdd616034c73c7c4 (diff) |
codify locking contracts
Conflicts:
vm/vm_page.h
Diffstat (limited to 'kern')
-rw-r--r-- | kern/exception.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kern/exception.c b/kern/exception.c index 63a63d6..5338274 100644 --- a/kern/exception.c +++ b/kern/exception.c @@ -454,6 +454,8 @@ exception_raise( (sizeof(struct mach_exception) <= receiver->ith_msize) && ((receiver->ith_option & MACH_RCV_NOTIFY) == 0))) || !thread_handoff(self, exception_raise_continue, receiver)) { + imq_lock_steal(reply_mqueue); + imq_lock_steal(dest_mqueue); imq_unlock(reply_mqueue); imq_unlock(dest_mqueue); goto slow_exception_raise; @@ -461,6 +463,8 @@ exception_raise( counter(c_exception_raise_block++); assert(current_thread() == receiver); + imq_lock_steal(reply_mqueue); + imq_lock_steal(dest_mqueue); /* * We need to finish preparing self for its |