501 countCollection, cause);
502 }
503
504 void MemoryService::oops_do(OopClosure* f) {
505 int i;
506
507 for (i = 0; i < _pools_list->length(); i++) {
508 MemoryPool* pool = _pools_list->at(i);
509 pool->oops_do(f);
510 }
511 for (i = 0; i < _managers_list->length(); i++) {
512 MemoryManager* mgr = _managers_list->at(i);
513 mgr->oops_do(f);
514 }
515 }
516
517 bool MemoryService::set_verbose(bool verbose) {
518 MutexLocker m(Management_lock);
519 // verbose will be set to the previous value
520 Flag::Error error = CommandLineFlags::boolAtPut("PrintGC", &verbose, Flag::MANAGEMENT);
521 assert(error==Flag::SUCCESS, err_msg("Setting PrintGC flag failed with error %s", Flag::flag_error_str(error)));
522 ClassLoadingService::reset_trace_class_unloading();
523
524 return verbose;
525 }
526
527 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
528 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
529 instanceKlassHandle ik(THREAD, k);
530
531 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
532
533 JavaValue result(T_VOID);
534 JavaCallArguments args(10);
535 args.push_oop(obj); // receiver
536 args.push_long(usage.init_size_as_jlong()); // Argument 1
537 args.push_long(usage.used_as_jlong()); // Argument 2
538 args.push_long(usage.committed_as_jlong()); // Argument 3
539 args.push_long(usage.max_size_as_jlong()); // Argument 4
540
541 JavaCalls::call_special(&result,
|
501 countCollection, cause);
502 }
503
504 void MemoryService::oops_do(OopClosure* f) {
505 int i;
506
507 for (i = 0; i < _pools_list->length(); i++) {
508 MemoryPool* pool = _pools_list->at(i);
509 pool->oops_do(f);
510 }
511 for (i = 0; i < _managers_list->length(); i++) {
512 MemoryManager* mgr = _managers_list->at(i);
513 mgr->oops_do(f);
514 }
515 }
516
517 bool MemoryService::set_verbose(bool verbose) {
518 MutexLocker m(Management_lock);
519 // verbose will be set to the previous value
520 Flag::Error error = CommandLineFlags::boolAtPut("PrintGC", &verbose, Flag::MANAGEMENT);
521 assert(error==Flag::SUCCESS, "Setting PrintGC flag failed with error %s", Flag::flag_error_str(error));
522 ClassLoadingService::reset_trace_class_unloading();
523
524 return verbose;
525 }
526
527 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
528 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
529 instanceKlassHandle ik(THREAD, k);
530
531 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
532
533 JavaValue result(T_VOID);
534 JavaCallArguments args(10);
535 args.push_oop(obj); // receiver
536 args.push_long(usage.init_size_as_jlong()); // Argument 1
537 args.push_long(usage.used_as_jlong()); // Argument 2
538 args.push_long(usage.committed_as_jlong()); // Argument 3
539 args.push_long(usage.max_size_as_jlong()); // Argument 4
540
541 JavaCalls::call_special(&result,
|