drd: Handle pthread_cond_destroy() failure properly

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13198 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_cond.c b/drd/drd_cond.c
index 12d39a1..23d7c8e 100644
--- a/drd/drd_cond.c
+++ b/drd/drd_cond.c
@@ -166,7 +166,7 @@
 }
 
 /** Called after pthread_cond_destroy(). */
-void DRD_(cond_post_destroy)(const Addr cond)
+void DRD_(cond_post_destroy)(const Addr cond, const Bool destroy_succeeded)
 {
    struct cond_info* p;
 
@@ -197,7 +197,8 @@
                               &cei);
    }
 
-   DRD_(clientobj_remove)(p->a1, ClientCondvar);
+   if (destroy_succeeded)
+      DRD_(clientobj_remove)(p->a1, ClientCondvar);
 }
 
 /**