79 for(uint i=0; i<_time_stamp_index; i++) {
80 GCTaskTimeStamp* time_stamp = time_stamp_at(i);
81 tty->print_cr("\t[ %s " JLONG_FORMAT " " JLONG_FORMAT " ]",
82 time_stamp->name(),
83 time_stamp->entry_time(),
84 time_stamp->exit_time());
85 }
86
87 // Reset after dumping the data
88 _time_stamp_index = 0;
89 }
90
91 // GC workers get tasks from the GCTaskManager and execute
92 // them in this method. If there are no tasks to execute,
93 // the GC workers wait in the GCTaskManager's get_task()
94 // for tasks to be enqueued for execution.
95
96 void GCTaskThread::run() {
97 // Set up the thread for stack overflow support
98 this->record_stack_base_and_size();
99 this->initialize_thread_local_storage();
100 this->initialize_named_thread();
101 // Bind yourself to your processor.
102 if (processor_id() != GCTaskManager::sentinel_worker()) {
103 if (TraceGCTaskThread) {
104 tty->print_cr("GCTaskThread::run: "
105 " binding to processor %u", processor_id());
106 }
107 if (!os::bind_to_processor(processor_id())) {
108 DEBUG_ONLY(
109 warning("Couldn't bind GCTaskThread %u to processor %u",
110 which(), processor_id());
111 )
112 }
113 }
114 // Part of thread setup.
115 // ??? Are these set up once here to make subsequent ones fast?
116 HandleMark hm_outer;
117 ResourceMark rm_outer;
118
119 TimeStamp timer;
|
79 for(uint i=0; i<_time_stamp_index; i++) {
80 GCTaskTimeStamp* time_stamp = time_stamp_at(i);
81 tty->print_cr("\t[ %s " JLONG_FORMAT " " JLONG_FORMAT " ]",
82 time_stamp->name(),
83 time_stamp->entry_time(),
84 time_stamp->exit_time());
85 }
86
87 // Reset after dumping the data
88 _time_stamp_index = 0;
89 }
90
91 // GC workers get tasks from the GCTaskManager and execute
92 // them in this method. If there are no tasks to execute,
93 // the GC workers wait in the GCTaskManager's get_task()
94 // for tasks to be enqueued for execution.
95
96 void GCTaskThread::run() {
97 // Set up the thread for stack overflow support
98 this->record_stack_base_and_size();
99 this->initialize_named_thread();
100 // Bind yourself to your processor.
101 if (processor_id() != GCTaskManager::sentinel_worker()) {
102 if (TraceGCTaskThread) {
103 tty->print_cr("GCTaskThread::run: "
104 " binding to processor %u", processor_id());
105 }
106 if (!os::bind_to_processor(processor_id())) {
107 DEBUG_ONLY(
108 warning("Couldn't bind GCTaskThread %u to processor %u",
109 which(), processor_id());
110 )
111 }
112 }
113 // Part of thread setup.
114 // ??? Are these set up once here to make subsequent ones fast?
115 HandleMark hm_outer;
116 ResourceMark rm_outer;
117
118 TimeStamp timer;
|