Potentially this can be made more precise by using the logic we use for barriers (and now also for ghost phase transitions).
The thing that I am unclear about is how this interacts with the lockset analysis (wait temporarily relinquishes the mutex, but I'm not sure if our lockset analysis considers this).
If it can be made more precise, we might also think about adding a second function mhp to the A module that would be answered with top by those analysis that only speak about specific memory locations.
This would allow us to stop abusing may_race with PointAccess queries in all those places where it's not about races (deadlocks comes to mind)
Potentially this can be made more precise by using the logic we use for barriers (and now also for ghost phase transitions).
The thing that I am unclear about is how this interacts with the lockset analysis (wait temporarily relinquishes the mutex, but I'm not sure if our lockset analysis considers this).
If it can be made more precise, we might also think about adding a second function
mhpto theAmodule that would be answered with top by those analysis that only speak about specific memory locations.This would allow us to stop abusing
may_racewithPointAccessqueries in all those places where it's not about races (deadlocks comes to mind)