src/share/vm/services/management.cpp

Print this page




1824   bool succeed;
1825   if (flag->is_bool()) {
1826     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
1827     succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT);
1828   } else if (flag->is_intx()) {
1829     intx ivalue = (intx)new_value.j;
1830     succeed = CommandLineFlags::intxAtPut(name, &ivalue, Flag::MANAGEMENT);
1831   } else if (flag->is_uintx()) {
1832     uintx uvalue = (uintx)new_value.j;
1833     succeed = CommandLineFlags::uintxAtPut(name, &uvalue, Flag::MANAGEMENT);
1834   } else if (flag->is_uint64_t()) {
1835     uint64_t uvalue = (uint64_t)new_value.j;
1836     succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, Flag::MANAGEMENT);
1837   } else if (flag->is_ccstr()) {
1838     oop str = JNIHandles::resolve_external_guard(new_value.l);
1839     if (str == NULL) {
1840       THROW(vmSymbols::java_lang_NullPointerException());
1841     }
1842     ccstr svalue = java_lang_String::as_utf8_string(str);
1843     succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT);



1844   }
1845   assert(succeed, "Setting flag should succeed");
1846 JVM_END
1847 
1848 class ThreadTimesClosure: public ThreadClosure {
1849  private:
1850   objArrayHandle _names_strings;
1851   char **_names_chars;
1852   typeArrayHandle _times;
1853   int _names_len;
1854   int _times_len;
1855   int _count;
1856 
1857  public:
1858   ThreadTimesClosure(objArrayHandle names, typeArrayHandle times);
1859   ~ThreadTimesClosure();
1860   virtual void do_thread(Thread* thread);
1861   void do_unlocked();
1862   int count() { return _count; }
1863 };




1824   bool succeed;
1825   if (flag->is_bool()) {
1826     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
1827     succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT);
1828   } else if (flag->is_intx()) {
1829     intx ivalue = (intx)new_value.j;
1830     succeed = CommandLineFlags::intxAtPut(name, &ivalue, Flag::MANAGEMENT);
1831   } else if (flag->is_uintx()) {
1832     uintx uvalue = (uintx)new_value.j;
1833     succeed = CommandLineFlags::uintxAtPut(name, &uvalue, Flag::MANAGEMENT);
1834   } else if (flag->is_uint64_t()) {
1835     uint64_t uvalue = (uint64_t)new_value.j;
1836     succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, Flag::MANAGEMENT);
1837   } else if (flag->is_ccstr()) {
1838     oop str = JNIHandles::resolve_external_guard(new_value.l);
1839     if (str == NULL) {
1840       THROW(vmSymbols::java_lang_NullPointerException());
1841     }
1842     ccstr svalue = java_lang_String::as_utf8_string(str);
1843     succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT);
1844     if (succeed) {
1845       FREE_C_HEAP_ARRAY(char, svalue, mtInternal);
1846     }
1847   }
1848   assert(succeed, "Setting flag should succeed");
1849 JVM_END
1850 
1851 class ThreadTimesClosure: public ThreadClosure {
1852  private:
1853   objArrayHandle _names_strings;
1854   char **_names_chars;
1855   typeArrayHandle _times;
1856   int _names_len;
1857   int _times_len;
1858   int _count;
1859 
1860  public:
1861   ThreadTimesClosure(objArrayHandle names, typeArrayHandle times);
1862   ~ThreadTimesClosure();
1863   virtual void do_thread(Thread* thread);
1864   void do_unlocked();
1865   int count() { return _count; }
1866 };