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

Side by Side Diff: runtime/vm/thread_registry.cc

Issue 2609253002: Added isolate + thread high watermark tracking to Observatory (Closed)
Patch Set: Merge branch 'master' of github.com:dart-lang/sdk into resubmit Created 3 years, 11 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
« no previous file with comments | « runtime/vm/thread_registry.h ('k') | runtime/vm/thread_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/thread_registry.h" 5 #include "vm/thread_registry.h"
6 6
7 #include "vm/isolate.h" 7 #include "vm/isolate.h"
8 #include "vm/json_stream.h" 8 #include "vm/json_stream.h"
9 #include "vm/lockers.h" 9 #include "vm/lockers.h"
10 10
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 // Get thread structure from free list or create a new one. 163 // Get thread structure from free list or create a new one.
164 if (free_list_ == NULL) { 164 if (free_list_ == NULL) {
165 thread = new Thread(isolate); 165 thread = new Thread(isolate);
166 } else { 166 } else {
167 thread = free_list_; 167 thread = free_list_;
168 free_list_ = thread->next_; 168 free_list_ = thread->next_;
169 } 169 }
170 return thread; 170 return thread;
171 } 171 }
172 172
173
173 void ThreadRegistry::ReturnToFreelistLocked(Thread* thread) { 174 void ThreadRegistry::ReturnToFreelistLocked(Thread* thread) {
174 ASSERT(thread != NULL); 175 ASSERT(thread != NULL);
175 ASSERT(thread->os_thread_ == NULL); 176 ASSERT(thread->os_thread_ == NULL);
176 ASSERT(thread->isolate_ == NULL); 177 ASSERT(thread->isolate_ == NULL);
177 ASSERT(thread->heap_ == NULL); 178 ASSERT(thread->heap_ == NULL);
178 ASSERT(threads_lock()->IsOwnedByCurrentThread()); 179 ASSERT(threads_lock()->IsOwnedByCurrentThread());
179 // Add thread to the free list. 180 // Add thread to the free list.
180 thread->next_ = free_list_; 181 thread->next_ = free_list_;
181 free_list_ = thread; 182 free_list_ = thread;
182 } 183 }
183 184
185
186 uint ThreadRegistry::ThreadHighWatermarksTotalLocked() const {
187 ASSERT(threads_lock()->IsOwnedByCurrentThread());
188 uint memory_high_watermarks_total = 0;
189 Thread* current = active_list_;
190 while (current != NULL) {
191 memory_high_watermarks_total += current->memory_high_watermark();
192 current = current->next_;
193 }
194 return memory_high_watermarks_total;
siva 2017/01/21 00:30:51 Why is it necessary to sum up the high water marks
195 }
196
184 } // namespace dart 197 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/thread_registry.h ('k') | runtime/vm/thread_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698