git: kernel - close numerous kqueue MP and blocking races

看板DFBSD_commit作者時間15年前 (2010/08/22 10:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit cf9f4e88a67efbe26053ec74dc81d4f8e6c5bafc Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sat Aug 21 18:41:15 2010 -0700 kernel - close numerous kqueue MP and blocking races * create race Close a race where one thread registers a kevent and blocks in f_attach allowing another thread to register a change or deletion on the same event. * delete race Close a race where one thread deletes a kevent and blocks in f_detach allowing another thread to register a change or deletion on the same event. * scan/close race Close a race where one thread is in the middle of a kqueue_scan() and another concurrently close()s a related file descriptor. This could cause select and poll to loop forever due to not being able to delete the 'spurious' kevent. * register/close race Close a race where one thread registers a kevent and blocks in f_attach and another thread close()s the related file descriptor at the same time. Summary of changes: sys/kern/kern_descrip.c | 12 +++-- sys/kern/kern_event.c | 112 +++++++++++++++++++++++++++++++++++----------- sys/sys/event.h | 2 + sys/sys/file.h | 1 + 4 files changed, 95 insertions(+), 32 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cf9f4e88a67efbe26053ec74dc81d4f8e6c5bafc -- DragonFly BSD source repository
文章代碼(AID): #1CS8JXPK (DFBSD_commit)