emscripten/tests/nbody-java/native_java_lang_Thread.c

311 строки
10 KiB
C

#include "xmlvm.h"
#include "java_lang_Thread.h"
//XMLVM_BEGIN_NATIVE_IMPLEMENTATION
#include <pthread.h>
#ifdef __OBJC__
#import <Foundation/NSAutoreleasePool.h>
#endif
void threadRunner(JAVA_OBJECT me)
{
java_lang_Thread* thiz = me;
XMLVM_JMP_BUF xmlvm_exception_env;
JAVA_LONG nativeThreadId = (JAVA_LONG) pthread_self();
#ifdef __OBJC__
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
#endif
#ifdef XMLVM_ENABLE_STACK_TRACES
createStackForNewThread(nativeThreadId);
#endif
if (XMLVM_SETJMP(xmlvm_exception_env)) {
// Technically, XMLVM_UNWIND_EXCEPTION() should be called, but
// exceptions will not be used anymore and XMLVM_ENTER_METHOD() wasn't
// called (excessive), so a compilation error would occur
xmlvm_unhandled_exception();
} else {
thiz->fields.java_lang_Thread.xmlvmExceptionEnv_ = &xmlvm_exception_env;
java_lang_Thread_run0___long(thiz, nativeThreadId);
}
#ifdef XMLVM_ENABLE_STACK_TRACES
destroyStackForExitingThread(nativeThreadId);
#endif
#ifdef __OBJC__
[pool release];
#endif
}
//XMLVM_END_NATIVE_IMPLEMENTATION
void java_lang_Thread_initMainThread__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_initMainThread__]
((java_lang_Thread*)me)->fields.java_lang_Thread.xmlvmExceptionEnv_ = xmlvm_exception_env_main_thread;
//XMLVM_END_NATIVE
}
JAVA_INT java_lang_Thread_activeCount__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_activeCount__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_checkAccess__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_checkAccess__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_INT java_lang_Thread_countStackFrames__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_countStackFrames__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_LONG java_lang_Thread_getCurrentThreadNativeId__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getCurrentThreadNativeId__]
JAVA_LONG nativeThreadId = (JAVA_LONG)pthread_self();
return nativeThreadId;
//XMLVM_END_NATIVE
}
void java_lang_Thread_destroy__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_destroy__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_dumpStack__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_dumpStack__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_INT java_lang_Thread_enumerate___java_lang_Thread_1ARRAY(JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_enumerate___java_lang_Thread_1ARRAY]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_OBJECT java_lang_Thread_getAllStackTraces__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getAllStackTraces__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_OBJECT java_lang_Thread_getContextClassLoader__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getContextClassLoader__]
XMLVMElem _r0;
_r0.o = __NEW_org_xmlvm_runtime_XMLVMClassLoader();
org_xmlvm_runtime_XMLVMClassLoader___INIT___(_r0.o);
return _r0.o;
//XMLVM_END_NATIVE
}
JAVA_OBJECT java_lang_Thread_getDefaultUncaughtExceptionHandler__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getDefaultUncaughtExceptionHandler__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_OBJECT java_lang_Thread_getStackTrace__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getStackTrace__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_OBJECT java_lang_Thread_getUncaughtExceptionHandler__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_getUncaughtExceptionHandler__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_join___long_int(JAVA_OBJECT me, JAVA_LONG n1, JAVA_INT n2)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_join___long_int]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_resume__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_resume__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_BOOLEAN java_lang_Thread_stackTracesEnabled__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_stackTracesEnabled__]
#ifdef XMLVM_ENABLE_STACK_TRACES
return 1;
#else
return 0;
#endif
//XMLVM_END_NATIVE
}
void java_lang_Thread_setContextClassLoader___java_lang_ClassLoader(JAVA_OBJECT me, JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_setContextClassLoader___java_lang_ClassLoader]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_setDefaultUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler(JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_setDefaultUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_setPriority___int(JAVA_OBJECT me, JAVA_INT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_setPriority___int]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler(JAVA_OBJECT me, JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_start0__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_start0__]
pthread_t pt;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
int rc = pthread_create(&pt, &attr, threadRunner, (void *)me);
if (rc != 0) {
printf("ERROR creating thread. Return code: %i", rc);
exit(-1);
}
pthread_attr_destroy(&attr);
//XMLVM_END_NATIVE
}
void java_lang_Thread_stop__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_stop__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_stop___java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_stop___java_lang_Throwable]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_suspend__(JAVA_OBJECT me)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_suspend__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void java_lang_Thread_yield__()
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_yield__]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
JAVA_BOOLEAN java_lang_Thread_holdsLock___java_lang_Object(JAVA_OBJECT n1)
{
//XMLVM_BEGIN_NATIVE[java_lang_Thread_holdsLock___java_lang_Object]
XMLVM_UNIMPLEMENTED_NATIVE_METHOD();
//XMLVM_END_NATIVE
}
void xmlvm_init_native_java_lang_Thread()
{
//XMLVM_BEGIN_NATIVE_IMPLEMENTATION_INIT
//XMLVM_END_NATIVE_IMPLEMENTATION_INIT
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_checkAccess__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_checkAccess__] =
(VTABLE_PTR) java_lang_Thread_checkAccess__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_countStackFrames__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_countStackFrames__] =
(VTABLE_PTR) java_lang_Thread_countStackFrames__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_destroy__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_destroy__] =
(VTABLE_PTR) java_lang_Thread_destroy__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_getContextClassLoader__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_getContextClassLoader__] =
(VTABLE_PTR) java_lang_Thread_getContextClassLoader__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_getStackTrace__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_getStackTrace__] =
(VTABLE_PTR) java_lang_Thread_getStackTrace__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_getUncaughtExceptionHandler__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_getUncaughtExceptionHandler__] =
(VTABLE_PTR) java_lang_Thread_getUncaughtExceptionHandler__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_join___long_int
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_join___long_int] =
(VTABLE_PTR) java_lang_Thread_join___long_int;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_resume__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_resume__] =
(VTABLE_PTR) java_lang_Thread_resume__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_setContextClassLoader___java_lang_ClassLoader
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_setContextClassLoader___java_lang_ClassLoader] =
(VTABLE_PTR) java_lang_Thread_setContextClassLoader___java_lang_ClassLoader;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_setPriority___int
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_setPriority___int] =
(VTABLE_PTR) java_lang_Thread_setPriority___int;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler] =
(VTABLE_PTR) java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_start0__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_start0__] =
(VTABLE_PTR) java_lang_Thread_start0__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_stop__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_stop__] =
(VTABLE_PTR) java_lang_Thread_stop__;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_stop___java_lang_Throwable
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_stop___java_lang_Throwable] =
(VTABLE_PTR) java_lang_Thread_stop___java_lang_Throwable;
#endif
#ifdef XMLVM_VTABLE_IDX_java_lang_Thread_suspend__
__TIB_java_lang_Thread.vtable[XMLVM_VTABLE_IDX_java_lang_Thread_suspend__] =
(VTABLE_PTR) java_lang_Thread_suspend__;
#endif
}