Lines Matching refs:ThreadData

39 // When ThreadData is first initialized, should we start in an ACTIVE state to
45 const ThreadData::Status kInitialStartupState =
46 ThreadData::PROFILING_CHILDREN_ACTIVE;
49 // the ThreadData class. This compile time flag should be set to true if we
198 const ThreadData& current)
217 Births::Births(const Location& location, const ThreadData& current)
230 // ThreadData maintains the central data for all births and deaths on a single
238 NowFunction* ThreadData::now_function_ = NULL;
241 bool ThreadData::now_function_is_time_ = false;
243 // A TLS slot which points to the ThreadData instance for the current thread. We
247 base::ThreadLocalStorage::StaticSlot ThreadData::tls_index_ = TLS_INITIALIZER;
250 int ThreadData::worker_thread_data_creation_count_ = 0;
253 int ThreadData::cleanup_count_ = 0;
256 int ThreadData::incarnation_counter_ = 0;
259 ThreadData* ThreadData::all_thread_data_list_head_ = NULL;
262 ThreadData* ThreadData::first_retired_worker_ = NULL;
266 ThreadData::list_lock_ = LAZY_INSTANCE_INITIALIZER;
269 ThreadData::Status ThreadData::status_ = ThreadData::UNINITIALIZED;
271 ThreadData::ThreadData(const std::string& suggested_name)
282 ThreadData::ThreadData(int thread_number)
293 ThreadData::~ThreadData() {}
295 void ThreadData::PushToHeadOfList() {
300 random_number_ += static_cast<int32>(this - static_cast<ThreadData*>(0));
311 ThreadData* ThreadData::first() {
316 ThreadData* ThreadData::next() const { return next_; }
319 void ThreadData::InitializeThreadContext(const std::string& suggested_name) {
322 ThreadData* current_thread_data =
323 reinterpret_cast<ThreadData*>(tls_index_.Get());
326 current_thread_data = new ThreadData(suggested_name);
331 ThreadData* ThreadData::Get() {
334 ThreadData* registered = reinterpret_cast<ThreadData*>(tls_index_.Get());
339 ThreadData* worker_thread_data = NULL;
355 worker_thread_data = new ThreadData(worker_thread_number);
364 void ThreadData::OnThreadTermination(void* thread_data) {
370 reinterpret_cast<ThreadData*>(thread_data)->OnThreadTerminationCleanup();
373 void ThreadData::OnThreadTerminationCleanup() {
378 return; // ThreadData was constructed in an earlier unit test.
386 DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>(NULL));
392 void ThreadData::Snapshot(bool reset_max, ProcessDataSnapshot* process_data) {
397 ThreadData::SnapshotAllExecutedTasks(reset_max, process_data, &birth_counts);
411 Births* ThreadData::TallyABirth(const Location& location) {
440 void ThreadData::TallyADeath(const Births& birth,
480 Births* ThreadData::TallyABirthIfActive(const Location& location) {
486 ThreadData* current_thread_data = Get();
493 void ThreadData::TallyRunOnNamedThreadIfTracking(
505 ThreadData* current_thread_data = stopwatch.GetThreadData();
524 void ThreadData::TallyRunOnWorkerThreadIfTracking(
538 // one ThreadData instance that uses locks to protect *all* access. This will
546 ThreadData* current_thread_data = stopwatch.GetThreadData();
559 void ThreadData::TallyRunInAScopedRegionIfTracking(
571 ThreadData* current_thread_data = stopwatch.GetThreadData();
580 void ThreadData::SnapshotAllExecutedTasks(bool reset_max,
586 // Get an unchanging copy of a ThreadData list.
587 ThreadData* my_list = ThreadData::first();
595 for (ThreadData* thread_data = my_list;
602 void ThreadData::SnapshotExecutedTasks(bool reset_max,
607 ThreadData::BirthMap birth_map;
608 ThreadData::DeathMap death_map;
609 ThreadData::ParentChildSet parent_child_set;
612 for (ThreadData::DeathMap::const_iterator it = death_map.begin();
619 for (ThreadData::BirthMap::const_iterator it = birth_map.begin();
627 for (ThreadData::ParentChildSet::const_iterator it = parent_child_set.begin();
634 void ThreadData::SnapshotMaps(bool reset_max,
658 void ThreadData::ResetAllThreadData() {
659 ThreadData* my_list = first();
661 for (ThreadData* thread_data = my_list;
667 void ThreadData::Reset() {
680 ThreadData::SetAlternateTimeSource(alternate_time_source);
683 bool ThreadData::Initialize() {
709 tls_index_.Initialize(&ThreadData::OnThreadTermination);
733 bool ThreadData::InitializeAndSetTrackingStatus(Status status) {
747 ThreadData::Status ThreadData::status() {
752 bool ThreadData::TrackingStatus() {
757 bool ThreadData::TrackingParentChildStatus() {
762 void ThreadData::PrepareForStartOfRun(const Births* parent) {
764 ThreadData* current_thread_data = Get();
771 void ThreadData::SetAlternateTimeSource(NowFunction* now_function) {
778 TrackedTime ThreadData::Now() {
787 void ThreadData::EnsureCleanupWasCalled(int major_threads_shutdown_count) {
802 void ThreadData::ShutdownSingleThreadedCleanup(bool leak) {
808 ThreadData* thread_data_list;
816 ThreadData* worker = first_retired_worker_;
833 ThreadData* thread_data = thread_data_list;
843 // Do actual recursive delete in all ThreadData instances.
845 ThreadData* next_thread_data = thread_data_list;
857 : start_time_(ThreadData::Now()),
858 current_thread_data_(ThreadData::Get()),
889 const TrackedTime end_time = ThreadData::Now();
930 ThreadData* TaskStopwatch::GetThreadData() const {
956 const ThreadData::ParentChildPair& parent_child)