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