git: vkernel - Fix corrupt tailq (vkernel64 only)

看板DFBSD_commit作者時間15年前 (2011/01/05 07:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 74c9628e78f2e1c7d9356b41407b394220745b7e Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Tue Jan 4 15:06:59 2011 -0800 vkernel - Fix corrupt tailq (vkernel64 only) * Properly remove an exiting thread from any tsleep queue it might be enqueued on (due to tsleep_interlock() use cases) prior to exiting. * Fixes tailq corruption which can occur with threaded programs. * Fix is only applicable to vkernel64. All other platforms already properly remove the thread. * Assert that an exiting thread has been removed from any sleep queue before freeing it in kern_exit.c to catch any future cases. Summary of changes: sys/kern/kern_exit.c | 2 ++ sys/kern/kern_synch.c | 17 ++++++++++++----- sys/kern/lwkt_thread.c | 6 ++++-- sys/platform/vkernel64/x86_64/vm_machdep.c | 2 ++ 4 files changed, 20 insertions(+), 7 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/74c9628e78f2e1c7d9356b41407b394220745b7e -- DragonFly BSD source repository
文章代碼(AID): #1D8wtrMA (DFBSD_commit)