Improved scalability in case of many synchronization objects.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7823 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_clientobj.c b/exp-drd/drd_clientobj.c
index c473de9..5090aac 100644
--- a/exp-drd/drd_clientobj.c
+++ b/exp-drd/drd_clientobj.c
@@ -123,6 +123,7 @@
p->any.type = t;
VG_(OSetGen_Insert)(s_clientobj, p);
tl_assert(VG_(OSetGen_Lookup)(s_clientobj, &a1) == p);
+ drd_start_suppression(a1, a1 + 1, "clientobj");
return p;
}
@@ -160,6 +161,10 @@
DrdClientobj* p;
tl_assert(s_clientobj);
+
+ if (! drd_is_any_suppressed(a1, a2))
+ return;
+
VG_(OSetGen_ResetIter)(s_clientobj);
p = VG_(OSetGen_Next)(s_clientobj);
for ( ; p != 0; )