From: Bart Van Assche Date: Sun, 30 Mar 2008 16:55:40 +0000 (+0000) Subject: Improved scalability in case of many synchronization objects. X-Git-Tag: svn/VALGRIND_3_4_0~772 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1edf13fd3b8b065b63422f720193d0bf5df859c8;p=thirdparty%2Fvalgrind.git Improved scalability in case of many synchronization objects. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7823 --- diff --git a/exp-drd/drd_clientobj.c b/exp-drd/drd_clientobj.c index c473de9efb..5090aacebe 100644 --- a/exp-drd/drd_clientobj.c +++ b/exp-drd/drd_clientobj.c @@ -123,6 +123,7 @@ clientobj_add(const Addr a1, const ObjType t) 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 @@ void clientobj_stop_using_mem(const Addr a1, const Addr a2) 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; )