diff --git a/drd/docs/drd-manual.xml b/drd/docs/drd-manual.xml index 61df72f40..0d12004b5 100644 --- a/drd/docs/drd-manual.xml +++ b/drd/docs/drd-manual.xml @@ -797,6 +797,11 @@ output reports that the lock acquired at line 51 in source file being waited upon. + + + Missing synchronization between barrier wait and barrier destruction. + + Exiting a thread without first unlocking the spinlocks, diff --git a/drd/drd_barrier.c b/drd/drd_barrier.c index e20447f22..d2f477f69 100644 --- a/drd/drd_barrier.c +++ b/drd/drd_barrier.c @@ -509,6 +509,10 @@ static void barrier_delete_thread(struct barrier_info* const p, /** * Report that *_barrier_destroy() has been called but that this call was * not synchronized with the last *_barrier_wait() call on the same barrier. + * + * This topic has been discussed extensively on comp.programming.threads + * (February 3, 2009). See also + * Immediately destroying pthread barriers. */ static void barrier_report_wait_delete_race(const struct barrier_info* const p,