Module Name: src Committed By: thorpej Date: Fri Dec 28 00:15:57 UTC 2018
Modified Files: src/sys/kern: kern_threadpool.c Log Message: Fix job reference counting: - threadpool_job_hold() no longer returns failure on overflow; it asserts that overflow doesn't happen. - threadpool_job_rele() must be called with the job lock held. - Always grab a reference count on the job in threadpool_schedule_job() if we're going to do any work. - Drop that reference count directly in threadpool_job_done(); it's not safe to dereference the job structure after the job function has called it. - In the overseer thread, when handing off the job to work thread, hold an extra reference briefly, as there's a window where we hold neither the pool lock or the job lock, and without this extra reference, the job could be snatched away. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/kern/kern_threadpool.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.