< prev index next >

src/hotspot/share/prims/jvmtiEnvBase.hpp

Print this page




 408   jobject _object;
 409   JavaThread* _calling_thread;
 410   jvmtiMonitorUsage* _info_ptr;
 411   jvmtiError _result;
 412 
 413 public:
 414   VM_GetObjectMonitorUsage(JvmtiEnv *env, JavaThread* calling_thread, jobject object, jvmtiMonitorUsage* info_ptr) {
 415     _env = env;
 416     _object = object;
 417     _calling_thread = calling_thread;
 418     _info_ptr = info_ptr;
 419   }
 420   VMOp_Type type() const { return VMOp_GetObjectMonitorUsage; }
 421   jvmtiError result() { return _result; }
 422   void doit() {
 423     _result = ((JvmtiEnvBase*) _env)->get_object_monitor_usage(_calling_thread, _object, _info_ptr);
 424   }
 425 
 426 };
 427 
 428 // VM operation to get current contended monitor.
 429 class VM_GetCurrentContendedMonitor : public VM_Operation {
 430 private:
 431   JvmtiEnv *_env;
 432   JavaThread *_calling_thread;
 433   JavaThread *_java_thread;
 434   jobject *_owned_monitor_ptr;
 435   jvmtiError _result;
 436 
 437 public:
 438   VM_GetCurrentContendedMonitor(JvmtiEnv *env, JavaThread *calling_thread, JavaThread *java_thread, jobject *mon_ptr) {
 439     _env = env;
 440     _calling_thread = calling_thread;
 441     _java_thread = java_thread;
 442     _owned_monitor_ptr = mon_ptr;

 443   }
 444   VMOp_Type type() const { return VMOp_GetCurrentContendedMonitor; }
 445   jvmtiError result() { return _result; }
 446   void doit();
 447 };
 448 
 449 // VM operation to get stack trace at safepoint.
 450 class VM_GetStackTrace : public VM_Operation {
 451 private:
 452   JvmtiEnv *_env;
 453   JavaThread *_java_thread;
 454   jint _start_depth;
 455   jint _max_count;
 456   jvmtiFrameInfo *_frame_buffer;
 457   jint *_count_ptr;
 458   jvmtiError _result;
 459 
 460 public:
 461   VM_GetStackTrace(JvmtiEnv *env, JavaThread *java_thread,
 462                    jint start_depth, jint max_count,
 463                    jvmtiFrameInfo* frame_buffer, jint* count_ptr) {
 464     _env = env;
 465     _java_thread = java_thread;
 466     _start_depth = start_depth;




 408   jobject _object;
 409   JavaThread* _calling_thread;
 410   jvmtiMonitorUsage* _info_ptr;
 411   jvmtiError _result;
 412 
 413 public:
 414   VM_GetObjectMonitorUsage(JvmtiEnv *env, JavaThread* calling_thread, jobject object, jvmtiMonitorUsage* info_ptr) {
 415     _env = env;
 416     _object = object;
 417     _calling_thread = calling_thread;
 418     _info_ptr = info_ptr;
 419   }
 420   VMOp_Type type() const { return VMOp_GetObjectMonitorUsage; }
 421   jvmtiError result() { return _result; }
 422   void doit() {
 423     _result = ((JvmtiEnvBase*) _env)->get_object_monitor_usage(_calling_thread, _object, _info_ptr);
 424   }
 425 
 426 };
 427 
 428 // HandshakeClosure to get current contended monitor.
 429 class GetOneCurrentContendedMonitor : public HandshakeClosure {
 430 private:
 431   JvmtiEnv *_env;
 432   JavaThread *_calling_thread;

 433   jobject *_owned_monitor_ptr;
 434   jvmtiError _result;
 435 
 436 public:
 437   GetOneCurrentContendedMonitor(JvmtiEnv *env, JavaThread *calling_thread, jobject *mon_ptr) : HandshakeClosure("GetOneCurrentContendedMonitor") {
 438     _env = env;
 439     _calling_thread = calling_thread;

 440     _owned_monitor_ptr = mon_ptr;
 441     _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
 442   }

 443   jvmtiError result() { return _result; }
 444   void do_thread(Thread *target);
 445 };
 446 
 447 // VM operation to get stack trace at safepoint.
 448 class VM_GetStackTrace : public VM_Operation {
 449 private:
 450   JvmtiEnv *_env;
 451   JavaThread *_java_thread;
 452   jint _start_depth;
 453   jint _max_count;
 454   jvmtiFrameInfo *_frame_buffer;
 455   jint *_count_ptr;
 456   jvmtiError _result;
 457 
 458 public:
 459   VM_GetStackTrace(JvmtiEnv *env, JavaThread *java_thread,
 460                    jint start_depth, jint max_count,
 461                    jvmtiFrameInfo* frame_buffer, jint* count_ptr) {
 462     _env = env;
 463     _java_thread = java_thread;
 464     _start_depth = start_depth;


< prev index next >