Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: third_party/tcmalloc/chromium/src/malloc_hook-inl.h

Issue 9666033: Experiment for updating the tcmalloc chromium branch to r144 (gperftools 2.0). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2005, Google Inc. 1 // Copyright (c) 2005, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 23 matching lines...) Expand all
34 // to use malloc-hook inside the tcmalloc system. It does not hold 34 // to use malloc-hook inside the tcmalloc system. It does not hold
35 // any of the client-facing calls that are used to add new hooks. 35 // any of the client-facing calls that are used to add new hooks.
36 36
37 #ifndef _MALLOC_HOOK_INL_H_ 37 #ifndef _MALLOC_HOOK_INL_H_
38 #define _MALLOC_HOOK_INL_H_ 38 #define _MALLOC_HOOK_INL_H_
39 39
40 #include <stddef.h> 40 #include <stddef.h>
41 #include <sys/types.h> 41 #include <sys/types.h>
42 #include "base/atomicops.h" 42 #include "base/atomicops.h"
43 #include "base/basictypes.h" 43 #include "base/basictypes.h"
44 #include <google/malloc_hook.h> 44 #include <gperftools/malloc_hook.h>
45 45
46 namespace base { namespace internal { 46 namespace base { namespace internal {
47 47
48 // The following (implementation) code is DEPRECATED. 48 // The following (implementation) code is DEPRECATED.
49 // A simple atomic pointer class that can be initialized by the linker 49 // A simple atomic pointer class that can be initialized by the linker
50 // when you define a namespace-scope variable as: 50 // when you define a namespace-scope variable as:
51 // 51 //
52 // AtomicPtr<Foo*> my_global = { &initial_value }; 52 // AtomicPtr<Foo*> my_global = { &initial_value };
53 // 53 //
54 // This isn't suitable for a general atomic<> class because of the 54 // This isn't suitable for a general atomic<> class because of the
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 extern AtomicPtr<MallocHook::PreSbrkHook> presbrk_hook_; 97 extern AtomicPtr<MallocHook::PreSbrkHook> presbrk_hook_;
98 extern AtomicPtr<MallocHook::SbrkHook> sbrk_hook_; 98 extern AtomicPtr<MallocHook::SbrkHook> sbrk_hook_;
99 // End DEPRECATED code. 99 // End DEPRECATED code.
100 100
101 // Maximum of 7 hooks means that HookList is 8 words. 101 // Maximum of 7 hooks means that HookList is 8 words.
102 static const int kHookListMaxValues = 7; 102 static const int kHookListMaxValues = 7;
103 103
104 // HookList: a class that provides synchronized insertions and removals and 104 // HookList: a class that provides synchronized insertions and removals and
105 // lockless traversal. Most of the implementation is in malloc_hook.cc. 105 // lockless traversal. Most of the implementation is in malloc_hook.cc.
106 template <typename T> 106 template <typename T>
107 struct HookList { 107 struct PERFTOOLS_DLL_DECL HookList {
108 COMPILE_ASSERT(sizeof(T) <= sizeof(AtomicWord), T_should_fit_in_AtomicWord); 108 COMPILE_ASSERT(sizeof(T) <= sizeof(AtomicWord), T_should_fit_in_AtomicWord);
109 109
110 // Adds value to the list. Note that duplicates are allowed. Thread-safe and 110 // Adds value to the list. Note that duplicates are allowed. Thread-safe and
111 // blocking (acquires hooklist_spinlock). Returns true on success; false 111 // blocking (acquires hooklist_spinlock). Returns true on success; false
112 // otherwise (failures include invalid value and no space left). 112 // otherwise (failures include invalid value and no space left).
113 bool Add(T value); 113 bool Add(T value);
114 114
115 // Removes the first entry matching value from the list. Thread-safe and 115 // Removes the first entry matching value from the list. Thread-safe and
116 // blocking (acquires hooklist_spinlock). Returns true on success; false 116 // blocking (acquires hooklist_spinlock). Returns true on success; false
117 // otherwise (failures include invalid value and no value found). 117 // otherwise (failures include invalid value and no value found).
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 if (!base::internal::sbrk_hooks_.empty() && increment != 0) { 313 if (!base::internal::sbrk_hooks_.empty() && increment != 0) {
314 InvokeSbrkHookSlow(result, increment); 314 InvokeSbrkHookSlow(result, increment);
315 } 315 }
316 // The following code is DEPRECATED. 316 // The following code is DEPRECATED.
317 MallocHook::SbrkHook hook = MallocHook::GetSbrkHook(); 317 MallocHook::SbrkHook hook = MallocHook::GetSbrkHook();
318 if (hook != NULL && increment != 0) (*hook)(result, increment); 318 if (hook != NULL && increment != 0) (*hook)(result, increment);
319 // End DEPRECATED code. 319 // End DEPRECATED code.
320 } 320 }
321 321
322 #endif /* _MALLOC_HOOK_INL_H_ */ 322 #endif /* _MALLOC_HOOK_INL_H_ */
OLDNEW
« no previous file with comments | « third_party/tcmalloc/chromium/src/malloc_hook.cc ('k') | third_party/tcmalloc/chromium/src/malloc_hook_mmap_freebsd.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698