35 using namespace cacao;
49 return jlt.get_uncaughtExceptionHandler();
56 utf8::java_lang_Thread__V,
88 assert(
thread.is_non_null());
89 thread.set_threadStatus(state);
107 if (*threadgroup_system == NULL)
108 vm_abort(
"thread_create_initial_threadgroups: failed to allocate system threadgroup");
114 if (*threadgroup_main == NULL)
115 vm_abort(
"thread_create_initial_threadgroups: failed to allocate main threadgroup");
121 utf8::Ljava_lang_ThreadGroup_Ljava_lang_String__V,
126 vm_abort(
"thread_create_initial_threadgroups: failed to resolve threadgroup init method");
131 vm_abort(
"thread_create_initial_threadgroups: exception while initializing main threadgroup");
154 #ifndef WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_7
static threadobject * get_thread_from_object(java_handle_t *h)
classinfo * class_java_lang_ThreadGroup
methodinfo * class_resolveclassmethod(classinfo *c, Utf8String name, Utf8String desc, classinfo *referer, bool throwexception)
virtual java_handle_t * get_handle() const
static JavaString from_utf8(Utf8String)
static void thread_create_initial_threadgroups(java_handle_t **threadgroup_system, java_handle_t **threadgroup_main)
typedef void(JNICALL *jvmtiEventSingleStep)(jvmtiEnv *jvmti_env
java_handle_t * vm_call_method(methodinfo *m, java_handle_t *o,...)
static java_handle_t * get_thread_exception_handler(const java_lang_Thread &jlt)
JNIEnv jclass jobject const char * name
static void set_javathread_state(threadobject *t, int state)
static methodinfo * thread_method_init
int main(int argc, char **argv)
java_handle_t * builtin_new(classinfo *c)
void vm_abort(const char *text,...)
static java_handle_t * threadgroup_main
#define LLNI_class_get(obj, variable)
static ThreadList * get()
Provides access to singleton.
static Utf8String from_utf8(const char *, size_t)
static bool invoke_thread_initializer(java_lang_Thread &jlt, threadobject *t, methodinfo *thread_method_init, java_handle_t *name, java_handle_t *group)
static void clear_heap_reference(java_lang_Thread &jlt)
static java_handle_t * threadgroup_system
static methodinfo * get_threadgroup_remove_method(classinfo *c)
void utf_display_printable_ascii(Utf8String u)
java_handle_t * native_new_and_init(classinfo *c)
Registers a new native agent by specified by it's library name and with an optional options string...
static java_handle_t * get_vmthread_handle(const java_lang_Thread &jlt)
static void setup_thread_vmdata(const java_lang_Thread &jlt, threadobject *t)
java_handle_t * exceptions_get_exception(void)
GNU Classpath java/lang/Thread.
static classinfo * get_thread_class_from_object(java_handle_t *object)
classinfo * class_java_lang_Thread
threadobject * get_thread_from_java_object(java_handle_t *h)
Return the Java thread object from the given thread object.
static void print_thread_name(const java_lang_Thread &jlt, FILE *stream)
static methodinfo * get_thread_init_method()