comparison src/share/vm/services/attachListener.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents d2a62e0f25eb
children d8ce2825b193
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
42 // Implementation of "properties" command. 42 // Implementation of "properties" command.
43 // 43 //
44 // Invokes sun.misc.VMSupport.serializePropertiesToByteArray to serialize 44 // Invokes sun.misc.VMSupport.serializePropertiesToByteArray to serialize
45 // the system properties into a byte array. 45 // the system properties into a byte array.
46 46
47 static klassOop load_and_initialize_klass(Symbol* sh, TRAPS) { 47 static Klass* load_and_initialize_klass(Symbol* sh, TRAPS) {
48 klassOop k = SystemDictionary::resolve_or_fail(sh, true, CHECK_NULL); 48 Klass* k = SystemDictionary::resolve_or_fail(sh, true, CHECK_NULL);
49 instanceKlassHandle ik (THREAD, k); 49 instanceKlassHandle ik (THREAD, k);
50 if (ik->should_be_initialized()) { 50 if (ik->should_be_initialized()) {
51 ik->initialize(CHECK_NULL); 51 ik->initialize(CHECK_NULL);
52 } 52 }
53 return ik(); 53 return ik();
57 Thread* THREAD = Thread::current(); 57 Thread* THREAD = Thread::current();
58 HandleMark hm; 58 HandleMark hm;
59 59
60 // load sun.misc.VMSupport 60 // load sun.misc.VMSupport
61 Symbol* klass = vmSymbols::sun_misc_VMSupport(); 61 Symbol* klass = vmSymbols::sun_misc_VMSupport();
62 klassOop k = load_and_initialize_klass(klass, THREAD); 62 Klass* k = load_and_initialize_klass(klass, THREAD);
63 if (HAS_PENDING_EXCEPTION) { 63 if (HAS_PENDING_EXCEPTION) {
64 java_lang_Throwable::print(PENDING_EXCEPTION, out); 64 java_lang_Throwable::print(PENDING_EXCEPTION, out);
65 CLEAR_PENDING_EXCEPTION; 65 CLEAR_PENDING_EXCEPTION;
66 return JNI_ERR; 66 return JNI_ERR;
67 } 67 }
454 } 454 }
455 455
456 // Starts the Attach Listener thread 456 // Starts the Attach Listener thread
457 void AttachListener::init() { 457 void AttachListener::init() {
458 EXCEPTION_MARK; 458 EXCEPTION_MARK;
459 klassOop k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK); 459 Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK);
460 instanceKlassHandle klass (THREAD, k); 460 instanceKlassHandle klass (THREAD, k);
461 instanceHandle thread_oop = klass->allocate_instance_handle(CHECK); 461 instanceHandle thread_oop = klass->allocate_instance_handle(CHECK);
462 462
463 const char thread_name[] = "Attach Listener"; 463 const char thread_name[] = "Attach Listener";
464 Handle string = java_lang_String::create_from_str(thread_name, CHECK); 464 Handle string = java_lang_String::create_from_str(thread_name, CHECK);