Merge patch from Jeremy Fitzhardinge:

19-hg-lockgraph
  HELGRIND: large patch which does a big bugfix and adds some new
  instrumentation:

  1. The bugfix is BIG. Previously the code which maintained the
  thread's current lockset would often (maybe always) fail to add new
  locks to the set, so it always looked like threads were holding one
  lock. The problem was in weird_LockSet_equals(); I rewrote it in a way
  which should be obviously correct. Fixing this exposed a bug in
  removing locks from a thread's lockset, which was also caused by
  another bug in weird_LockSet_equals(). This fix makes many spurious
  data race warnings go away (notably, stdio becomes silent).

  2. The new feature is tracking of the order of lock usage. If
  threads are taking locks in an inconsistent order, that's a symptom of
  possible deadlock. Helgrind will now warn when it sees this happening
  (though the warnings themselves need to be improved).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1267 a5019735-40e9-0310-863c-91ae7b9d1cf9
2 files changed