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);