#
202933 |
|
24-Jan-2010 |
attilio |
- Fix the kthread_{suspend, resume, suspend_check}() locking. In the current code, the locking is completely broken and may lead easilly to deadlocks. Fix it by using the proc_mtx, linked to the suspending thread, as lock for the operation. Keep using the thread_lock for setting and reading the flag even if it is not entirely necessary (atomic ops may do it as well, but this way the code is more readable). - Fix a deadlock within kthread_suspend(). The suspender should not sleep on a different channel wrt the suspended thread, or, otherwise, the awaker should wakeup both. Uniform the interface to what the kproc_* counterparts do (sleeping on the same channel). - Change the kthread_suspend_check() prototype. kthread_suspend_check() always assumes curthread and must only refer to it, so skip the thread pointer as it may be easilly mistaken. If curthread is not a kthread, the system will panic.
In collabouration with: jhb Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com> MFC: 2 weeks
|
#
187746 |
|
26-Jan-2009 |
trhodes |
Add ENOMEM to the return values. Remove invalid return values. Remove reference to non-existent manual pages. Remove reference to rfork (it does not discuss RFSTOPPED). Add sys/unistd.h to the list of includes (required for RFSTOPPED).
PR: 126227 Submitted by: Mateusz Guzik <mjguzik@gmail.com> (based on, original version) Reviewed by: jhb, Christoph Mallon <christoph.mallon@gmx.de>
|