]> Zhao Yanbai Git Server - minix.git/commit
Fix bug in IPC deadlock detection code.
authorCristiano Giuffrida <cristiano@minix3.org>
Wed, 16 Dec 2009 23:32:08 +0000 (23:32 +0000)
committerCristiano Giuffrida <cristiano@minix3.org>
Wed, 16 Dec 2009 23:32:08 +0000 (23:32 +0000)
commitb4d6d9db26105e225818951daf5b4a5817f05465
treec0ff369a8a7c3af0ebade392a028cad4c9f0fcc1
parentd31ad285a0f8b7e0017042cb9f34c6aee1b97ca9
Fix bug in IPC deadlock detection code.

The old deadlock code was misplaced and unable to deal with asynchronous
IPC primitives (notify and senda) effectively. As an example, the following
sequence of messages allowed the deadlock detection code to
trigger a false positive:
1. A.notify(B)
2. A.receive(B)
3. B.receive(A)
1. B.notify(A)
The solution is to run the deadlock detection routine only when a process is
about to block in mini_send() or mini_receive().
kernel/proc.c