action: utilize release sequence(s) for synchronization
authorBrian Norris <banorris@uci.edu>
Wed, 15 Aug 2012 00:37:32 +0000 (17:37 -0700)
committerBrian Norris <banorris@uci.edu>
Fri, 24 Aug 2012 03:50:19 +0000 (20:50 -0700)
commit88ccfdff63126a0fa70c094c7ed7e66f68e1b861
tree00ff6a4081ce979bb1d938744c1d810ab15c60ed
parent0e9020d6d5a4e0570d1001b07393d080de8bb318
action: utilize release sequence(s) for synchronization

Instead of checking only the trivial release sequence (i.e., a read-acquire
reads directly from a write-release) for establishing synchronization, make use
of the ModelChecker's more complete 'get_release_seq_head()' functionality,
then loop through all release heads and synchronize with each. This is
necessary because a read-acquire may synchronize with more than one
store-release.

Note that this step only implements support based on present knowledge. The
incomplete knowledge of the modification order, as given in mo_graph, as well
as "reading from the future" may require lazy checking.
action.cc