]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Optimize tr_freehook
authorUlrich Drepper <drepper@gmail.com>
Thu, 22 Dec 2011 16:38:32 +0000 (11:38 -0500)
committerUlrich Drepper <drepper@gmail.com>
Thu, 22 Dec 2011 16:38:32 +0000 (11:38 -0500)
ChangeLog
NEWS
malloc/mtrace.c

index b8ea695e1bcf70073ad5c235cf710da7e96ab5f7..0544a052ebd95437f1d3f6ce5a3b513e5550c722 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-12-22  Ulrich Drepper  <drepper@gmail.com>
 
+       [BZ #13328]
+       * malloc/mtrace.c (tr_freehook): Avoid unnecessary unlock/lock.
+       Proposed by Mariusz_Cukr <marcukr@op.pl>.
+
        * sysdeps/x86_64/fpu/bits/fenv.h: Use __REDIRECT_NTH for
        __feraiseexcept_renamed.
 
diff --git a/NEWS b/NEWS
index bdf996eafa5652abf55cef25369a07ebbfbbec4b..a10415d1a3ce42c78c7d400716774290a8e04980 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,9 +12,9 @@ Version 2.15
   6779, 6783, 9696, 10103, 10709, 11589, 12403, 12847, 12868, 12852, 12874,
   12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090,
   13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13192,
-  13268, 13276, 13291, 13305, 13335, 13337, 13344, 13358, 13367, 13413,
-  13416, 13423, 13439, 13446, 13472, 13484, 13506, 13515, 13523, 13524,
-  13538
+  13268, 13276, 13291, 13305, 13328, 13335, 13337, 13344, 13358, 13367,
+  13413, 13416, 13423, 13439, 13446, 13472, 13484, 13506, 13515, 13523,
+  13524, 13538
 
 * New program pldd to list loaded object of a process
   Implemented by Ulrich Drepper.
index b55449f1eac599537d00827b89c92cf3c03b560d..0d0cb35ff3d8a5d9a5384f7edd20e497c9ce7f89 100644 (file)
@@ -146,10 +146,12 @@ tr_freehook (ptr, caller)
   tr_where (caller, info);
   /* Be sure to print it first.  */
   fprintf (mallstream, "- %p\n", ptr);
-  __libc_lock_unlock (lock);
   if (ptr == mallwatch)
-    tr_break ();
-  __libc_lock_lock (lock);
+    {
+      __libc_lock_unlock (lock);
+      tr_break ();
+      __libc_lock_lock (lock);
+    }
   __free_hook = tr_old_free_hook;
   if (tr_old_free_hook != NULL)
     (*tr_old_free_hook) (ptr, caller);