1.1 --- a/src/share/vm/code/nmethod.hpp Wed Dec 16 12:48:04 2009 +0100 1.2 +++ b/src/share/vm/code/nmethod.hpp Wed Dec 16 22:15:12 2009 -0800 1.3 @@ -252,7 +252,9 @@ 1.4 void* operator new(size_t size, int nmethod_size); 1.5 1.6 const char* reloc_string_for(u_char* begin, u_char* end); 1.7 - void make_not_entrant_or_zombie(int state); 1.8 + // Returns true if this thread changed the state of the nmethod or 1.9 + // false if another thread performed the transition. 1.10 + bool make_not_entrant_or_zombie(int state); 1.11 void inc_decompile_count(); 1.12 1.13 // used to check that writes to nmFlags are done consistently. 1.14 @@ -375,10 +377,12 @@ 1.15 bool is_zombie() const { return flags.state == zombie; } 1.16 bool is_unloaded() const { return flags.state == unloaded; } 1.17 1.18 - // Make the nmethod non entrant. The nmethod will continue to be alive. 1.19 - // It is used when an uncommon trap happens. 1.20 - void make_not_entrant() { make_not_entrant_or_zombie(not_entrant); } 1.21 - void make_zombie() { make_not_entrant_or_zombie(zombie); } 1.22 + // Make the nmethod non entrant. The nmethod will continue to be 1.23 + // alive. It is used when an uncommon trap happens. Returns true 1.24 + // if this thread changed the state of the nmethod or false if 1.25 + // another thread performed the transition. 1.26 + bool make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); } 1.27 + bool make_zombie() { return make_not_entrant_or_zombie(zombie); } 1.28 1.29 // used by jvmti to track if the unload event has been reported 1.30 bool unload_reported() { return _unload_reported; } 1.31 @@ -563,7 +567,7 @@ 1.32 // Logging 1.33 void log_identity(xmlStream* log) const; 1.34 void log_new_nmethod() const; 1.35 - void log_state_change(int state) const; 1.36 + void log_state_change() const; 1.37 1.38 // Prints a comment for one native instruction (reloc info, pc desc) 1.39 void print_code_comment_on(outputStream* st, int column, address begin, address end);