Baltoli / project-docs

Documents for my Part III project
0 stars 0 forks source link

Extend ReleaseBeforeAcquire #26

Closed Baltoli closed 7 years ago

Baltoli commented 7 years ago

This analysis could be extended - if a call to a releaser (function that calls lock_release) dominates an acquirer, then we have a problem.

Currently the analysis only looks at direct calls to release and acquire, but it could be extended to look at this in a more general way - treat calls to acquirers and releasers the same as the calls to the functions themselves.

This extension would then give us things like:

some_acquire_wrapper();
lock_release(&lock);

The reason this is different to the call order analysis is that call order looks only at the call graph - can a function that calls release then end up calling a function that calls acquire (irrespective of the orderings)? This analysis looks at control flow rather than call flow - different things.