model: assign "pending" return values in release_seq_heads()
authorBrian Norris <banorris@uci.edu>
Thu, 4 Oct 2012 19:42:13 +0000 (12:42 -0700)
committerBrian Norris <banorris@uci.edu>
Thu, 4 Oct 2012 20:08:59 +0000 (13:08 -0700)
commit2c830a91c32a55de67c21e03f36529f994d9139d
tree4b48c9ef92598b3ff9ce4cd7833bbac00047149e
parent9a89975eb7aa3c818124382fc04cc8e8d51dbaaa
model: assign "pending" return values in release_seq_heads()

Now that the lazy pending release sequences list is improved, return
more information from release_seq_heads().

Note that this change also affects the behavior of the last double loop;
now, even after discovering write(s) from one thread that might break the
release sequence, I continue exploring other threads. This has some pros
and cons:

Con:
* may cause more work in exploring many threads without gaining any
  extra information

Pro:
* may help discover a write that *certainly* breaks the sequence,
  whereas previously, we might have exited with an uncertain status
* builds a more thorough, complete set of writes that might break the
  release sequence

The last point is the main intention, since we will require a complete
set for end-of-execution fixups. The others balance out to a net benefit
(and possibly a bugfix).
model.cc
model.h