< prev index next >

src/share/vm/gc/shared/gcId.cpp

Print this page




  30 uint GCId::_next_id = 0;
  31 
  32 NamedThread* currentNamedthread() {
  33   assert(Thread::current()->is_Named_thread(), "This thread must be NamedThread");
  34   return (NamedThread*)Thread::current();
  35 }
  36 
  37 const uint GCId::create() {
  38   return _next_id++;
  39 }
  40 
  41 const uint GCId::current() {
  42   assert(currentNamedthread()->gc_id() != undefined(), "Using undefined GC id.");
  43   return current_raw();
  44 }
  45 
  46 const uint GCId::current_raw() {
  47   return currentNamedthread()->gc_id();
  48 }
  49 












  50 GCIdMark::GCIdMark() : _gc_id(GCId::create()) {
  51   currentNamedthread()->set_gc_id(_gc_id);
  52 }
  53 
  54 GCIdMark::GCIdMark(uint gc_id) : _gc_id(gc_id) {
  55   currentNamedthread()->set_gc_id(_gc_id);
  56 }
  57 
  58 GCIdMark::~GCIdMark() {
  59   currentNamedthread()->set_gc_id(GCId::undefined());
  60 }
  61 
  62 GCIdMarkAndRestore::GCIdMarkAndRestore() : _gc_id(GCId::create()) {
  63   _previous_gc_id = GCId::current_raw();
  64   currentNamedthread()->set_gc_id(_gc_id);
  65 }
  66 
  67 GCIdMarkAndRestore::GCIdMarkAndRestore(uint gc_id) : _gc_id(gc_id) {
  68   _previous_gc_id = GCId::current_raw();
  69   currentNamedthread()->set_gc_id(_gc_id);


  30 uint GCId::_next_id = 0;
  31 
  32 NamedThread* currentNamedthread() {
  33   assert(Thread::current()->is_Named_thread(), "This thread must be NamedThread");
  34   return (NamedThread*)Thread::current();
  35 }
  36 
  37 const uint GCId::create() {
  38   return _next_id++;
  39 }
  40 
  41 const uint GCId::current() {
  42   assert(currentNamedthread()->gc_id() != undefined(), "Using undefined GC id.");
  43   return current_raw();
  44 }
  45 
  46 const uint GCId::current_raw() {
  47   return currentNamedthread()->gc_id();
  48 }
  49 
  50 size_t GCId::print_prefix(char* buf, size_t len) {
  51   if (Thread::current()->is_Named_thread()) {
  52     uint gc_id = current_raw();
  53     if (gc_id != undefined()) {
  54       int ret = jio_snprintf(buf, len, "GC(%u) ", gc_id);
  55       assert(ret > 0, "Failed to print prefix. Log buffer too small?");
  56       return (size_t)ret;
  57     }
  58   }
  59   return 0;
  60 }
  61 
  62 GCIdMark::GCIdMark() : _gc_id(GCId::create()) {
  63   currentNamedthread()->set_gc_id(_gc_id);
  64 }
  65 
  66 GCIdMark::GCIdMark(uint gc_id) : _gc_id(gc_id) {
  67   currentNamedthread()->set_gc_id(_gc_id);
  68 }
  69 
  70 GCIdMark::~GCIdMark() {
  71   currentNamedthread()->set_gc_id(GCId::undefined());
  72 }
  73 
  74 GCIdMarkAndRestore::GCIdMarkAndRestore() : _gc_id(GCId::create()) {
  75   _previous_gc_id = GCId::current_raw();
  76   currentNamedthread()->set_gc_id(_gc_id);
  77 }
  78 
  79 GCIdMarkAndRestore::GCIdMarkAndRestore(uint gc_id) : _gc_id(gc_id) {
  80   _previous_gc_id = GCId::current_raw();
  81   currentNamedthread()->set_gc_id(_gc_id);
< prev index next >