< prev index next >

src/hotspot/share/runtime/thread.cpp

Print this page

1312 }
1313 
1314 void NonJavaThread::post_run() {
1315   JFR_ONLY(Jfr::on_thread_exit(this);)
1316   remove_from_the_list();
1317   // Ensure thread-local-storage is cleared before termination.
1318   Thread::clear_thread_current();
1319 }
1320 
1321 // NamedThread --  non-JavaThread subclasses with multiple
1322 // uniquely named instances should derive from this.
1323 NamedThread::NamedThread() :
1324   NonJavaThread(),
1325   _name(NULL),
1326   _processed_thread(NULL),
1327   _gc_id(GCId::undefined())
1328 {}
1329 
1330 NamedThread::~NamedThread() {
1331   FREE_C_HEAP_ARRAY(char, _name);
1332   _name = NULL;
1333 }
1334 
1335 void NamedThread::set_name(const char* format, ...) {
1336   guarantee(_name == NULL, "Only get to set name once.");
1337   _name = NEW_C_HEAP_ARRAY(char, max_name_len, mtThread);
1338   va_list ap;
1339   va_start(ap, format);
1340   jio_vsnprintf(_name, max_name_len, format, ap);
1341   va_end(ap);
1342 }
1343 
1344 void NamedThread::print_on(outputStream* st) const {
1345   st->print("\"%s\" ", name());
1346   Thread::print_on(st);
1347   st->cr();
1348 }
1349 
1350 
1351 // ======= WatcherThread ========
1352 

1312 }
1313 
1314 void NonJavaThread::post_run() {
1315   JFR_ONLY(Jfr::on_thread_exit(this);)
1316   remove_from_the_list();
1317   // Ensure thread-local-storage is cleared before termination.
1318   Thread::clear_thread_current();
1319 }
1320 
1321 // NamedThread --  non-JavaThread subclasses with multiple
1322 // uniquely named instances should derive from this.
1323 NamedThread::NamedThread() :
1324   NonJavaThread(),
1325   _name(NULL),
1326   _processed_thread(NULL),
1327   _gc_id(GCId::undefined())
1328 {}
1329 
1330 NamedThread::~NamedThread() {
1331   FREE_C_HEAP_ARRAY(char, _name);

1332 }
1333 
1334 void NamedThread::set_name(const char* format, ...) {
1335   guarantee(_name == NULL, "Only get to set name once.");
1336   _name = NEW_C_HEAP_ARRAY(char, max_name_len, mtThread);
1337   va_list ap;
1338   va_start(ap, format);
1339   jio_vsnprintf(_name, max_name_len, format, ap);
1340   va_end(ap);
1341 }
1342 
1343 void NamedThread::print_on(outputStream* st) const {
1344   st->print("\"%s\" ", name());
1345   Thread::print_on(st);
1346   st->cr();
1347 }
1348 
1349 
1350 // ======= WatcherThread ========
1351 
< prev index next >