qthreads
qthreads copied to clipboard
Check Fences For Stolen Qthreads
We need to confirm that we handle the memory fencing correctly for the case where a qthread suspends and then gets stolen to another shepherd. It's not currently obvious to me if/where that's getting handled right now, and some of the thread sanitizer errors seem to be pointing toward this as an issue. The threadqueues should be providing the ordering constraint for the safety of migration, but the corresponding fences need to be handled as a part of the suspend/resume process.
Taking this one off the 1.21 release milestone since figuring out how to do this safely without causing performance regressions is likely to be a pain.