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);
}
/**