Updated internal documentation.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8375 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/TODO.txt b/drd/TODO.txt
index b3fc34e..bbfdc10 100644
--- a/drd/TODO.txt
+++ b/drd/TODO.txt
@@ -15,6 +15,7 @@
- Find out why no variable name information is printed for races
detected in parallel sections of OpenMP programs. An example:
./vg-in-place --tool=exp-drd exp-drd/tests/omp_prime 4 -t 2
+- Report races in glibc on stdout / stderr back to glibc maintainers.
Testing
@@ -27,6 +28,8 @@
Documentation
~~~~~~~~~~~~~
+- Add comment on double checked locking.
+- Add comment on circular buffers.
- Explain how to handle transactions (with regard to locking order).
- Continue the discussion on the Valgrind mailing list about docbook and
'make dist'. See also http://bugs.kde.org/show_bug.cgi?id=162121.
diff --git a/drd/Testing.txt b/drd/Testing.txt
index 90a2165..2502a8e 100644
--- a/drd/Testing.txt
+++ b/drd/Testing.txt
@@ -4,20 +4,25 @@
1. Run the regression tests. After having compiled DRD, run the following
command:
perl tests/vg_regtest drd
-2. Test the slowdown for matinv for various matrix sizes via the script
+2. Run Konstantin's regression tests:
+ svn checkout http://data-race-test.googlecode.com/svn/trunk drt
+ make -C drt/unittest -s build
+ ./vg-in-place --tool=drd drt/unittest/racecheck_unittest 2>&1|less
+3. Test the slowdown for matinv for various matrix sizes via the script
drd/scripts/run-matinv (must be about 24 for i == 1 and about
31 for i == 10 with n == 200).
-3. Test whether DRD works with standard KDE applications and whether it does
+4. Test whether DRD works with standard KDE applications and whether it does
not print any false positives:
./vg-in-place --tool=drd kate
./vg-in-place --tool=drd --check-stack-var=yes kate
./vg-in-place --trace-children=yes --tool=drd knode
./vg-in-place --trace-children=yes --tool=drd --check-stack-var=yes knode
./vg-in-place --trace-children=yes --tool=drd amarokapp
-4. Test whether DRD works with standard GNOME applications. Expect
+5. Test whether DRD works with standard GNOME applications. Expect
race reports triggered by ORBit_RootObject_duplicate() and after
having closed the GNOME terminal window:
./vg-in-place --trace-children=yes --tool=drd gnome-terminal
-5. Test DRD with Firefox. First of all, build and install Firefox 3. Next,
- run the following command:
+6. Test DRD with Firefox. First of all, build and install Firefox 3:
+ drd/scripts/download-and-build-firefox
+ Next, run the following command:
LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --trace-children=yes --tool=drd $HOME/software/mozilla-build/dist/bin/firefox-bin
diff --git a/drd/drd_barrier.c b/drd/drd_barrier.c
index fac3eb7..0f2d4db 100644
--- a/drd/drd_barrier.c
+++ b/drd/drd_barrier.c
@@ -410,6 +410,9 @@
struct barrier_thread_info* q;
const UWord word_tid = tid;
q = VG_(OSetGen_Remove)(p->oset, &word_tid);
+ /* q is only non-zero if the barrier object has been used by thread tid
+ * after the barrier_init() call and before the thread finished.
+ */
if (q)
{
barrier_thread_destroy(q);