deep-c-rsc/jcgo_Out/VMThread.c

1162 lines
33 KiB
C

/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */
#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif
#ifdef JCGO_116
#ifdef CHKALL_java_lang_VMThread
#include "jcgobchk.h"
#endif
JCGO_NOSEP_STATIC java_lang_VMThread CFASTCALL
java_lang_VMThread__this__L20uxk( java_lang_VMThread This, java_lang_Thread
thread )
{
{
;
JCGO_FIELD_NZACCESS(This, thread)= thread;
}
return This;
}
JCGO_NOSEP_INLINE java_lang_VMThread CFASTCALL
java_lang_VMThread__new__L20uxk( java_lang_Thread thread )
{
return java_lang_VMThread__this__L20uxk(
(java_lang_VMThread)jcgo_newObject((jvtable)&java_lang_VMThread_methods),
thread);
}
JCGO_NOSEP_INLINE jboolean CFASTCALL
java_lang_VMThread__isStartRetryNeededOnce__( void )
{
{
if (!java_lang_VMThread__hasThreads)
{
return (jboolean)jfalse;
}
(java_lang_VMRuntime__gcOnNoResources__());
(java_lang_VMThread__yield__());
return (jboolean)jtrue;
}
}
JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_lang_VMThread__getName__( java_lang_VMThread This )
{
{
return JCGO_VLT_LFETCH(java_lang_String, JCGO_FIELD_ACCESS(java_lang_Thread,
JCGO_FIELD_NZACCESS(This, thread), name));
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__start__J( java_lang_VMThread This, jlong stacksize
)
{
{
jboolean retrying;
retrying= jfalse;
while ((JCGO_VLT_LSTORE(java_lang_Object, &JCGO_FIELD_NZACCESS(This,
vmdata), (java_lang_VMThread__start0__LoJ(
(java_lang_Object)JCGO_FIELD_NZACCESS(This, thread), stacksize)))) ==
jnull)
{
if (retrying || !(java_lang_VMThread__isStartRetryNeededOnce__()))
{
JCGO_THROW_EXC((java_lang_OutOfMemoryError__new__Ls(
(java_lang_String__concat__Ls(
JCGO_STRREF_OF(jcgo_string3_VMThread), (java_lang_VMThread__getName__(
This)))))));
}
retrying= (jboolean)jtrue;
}
{
JCGO_SYNC_BLOCKSAFENZ(java_lang_VMThread__threadStartLock)
{
JCGO_VLT_LSTORE(void, &JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), vmThread), This);
java_lang_VMThread__totalStartedCnt++;
(java_lang_VMThread__notify__LoZ(
(java_lang_Object)java_lang_VMThread__threadStartLock, (jboolean)jtrue));
}
JCGO_SYNC_END
}
(java_lang_VMThread__yield__());
}
}
JCGO_NOSEP_INLINE jint CFASTCALL
java_lang_VMThread__getPriority__( java_lang_VMThread This )
{
{
return JCGO_VLT_FETCHI(JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), priority));
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__setupMainThread__( void )
{
{
java_lang_Thread thread;
java_lang_VMThread vt;
java_lang_Throwable throwable;
thread= (java_lang_Thread__new__L40aspLsIZ(
(java_lang_VMThread)jnull, JCGO_STRREF_OF(jcgo_string4_VMThread),
java_lang_Thread__NORM_PRIORITY, (jboolean)jfalse));
(java_lang_VMThread__rootGroupAdd__L20uxk(
thread));
vt= (java_lang_VMThread__new__L20uxk(
thread));
JCGO_VLT_LSTORE(void, &JCGO_FIELD_NZACCESS(thread, vmThread), vt);
JCGO_VLT_LSTORE(void, &JCGO_FIELD_NZACCESS(vt, vmdata), (java_lang_VMThread__setupMainThread0__Lo(
(java_lang_Object)thread)));
JCGO_VLT_STOREI((&JCGO_FIELD_NZACCESS(vt, threadStatus)), java_lang_VMThread__STATE_RUNNABLE);
java_lang_VMThread__mainVMThread= vt;
if ((throwable= JCGO_FIELD_NZACCESS(thread, stillborn)) != jnull)
{
JCGO_FIELD_NZACCESS(thread, stillborn)= (java_lang_Throwable)jnull;
if (jcgo_instanceOf0(OBJT_java_lang_RuntimeException, MAXT_java_lang_RuntimeException,
(jObject)throwable))
{
JCGO_THROW_EXC((java_lang_RuntimeException)throwable);
}
JCGO_THROW_EXC((java_lang_Error)JCGO_CAST_OBJECT0(OBJT_java_lang_Error,
MAXT_java_lang_Error, (jcgo_instanceOf0(OBJT_java_lang_Error, MAXT_java_lang_Error,
(jObject)throwable)? throwable : (java_lang_Throwable__initCause__Lt(
(java_lang_Throwable)(java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string5_VMThread))), throwable)))));
}
(java_lang_VMThread__nativeSetPriority__I(
vt, (java_lang_VMThread__getPriority__(
vt))));
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__run__( java_lang_VMThread This )
{
{
{
JCGO_TRY_BLOCK
{
{
JCGO_TRY_BLOCK
{
{
JCGO_SYNC_BLOCK(JCGO_FIELD_NZACCESS(This, thread))
{
java_lang_Throwable throwable;
JCGO_VLT_STOREI((&JCGO_FIELD_NZACCESS(This, threadStatus)),
java_lang_VMThread__STATE_RUNNABLE);
throwable= JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This, thread),
stillborn);
if (throwable != jnull)
{
JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This, thread), stillborn)=
(java_lang_Throwable)jnull;
JCGO_THROW_EXC(throwable);
}
}
JCGO_SYNC_END
}
(JCGO_CALL_NZVFUNC(JCGO_FIELD_NZACCESS(This, thread))->run__(
JCGO_FIELD_NZACCESS(This, thread)));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(1)
JCGO_TRY_CATCH(OBJT_java_lang_Throwable, MAXT_java_lang_Throwable)
{
java_lang_Throwable throwable;
throwable= (java_lang_Throwable)JCGO_TRY_THROWABLE(0);
(java_lang_VMThread__printUncaughtException__L20uxkLt(
JCGO_FIELD_NZACCESS(This, thread), throwable));
}
JCGO_TRY_RETHROW(1)
}
}
JCGO_TRY_LEAVE
{
(java_lang_VMThread__detachInner__(
This));
}
JCGO_TRY_FINALLYEND
}
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__create__L20uxkJ( java_lang_Thread thread, jlong
stacksize )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_VMThread vt;
vt= (java_lang_VMThread__new__L20uxk(
thread));
(java_lang_VMThread__start__J(
vt, stacksize));
(java_lang_VMThread__attachInner__(
vt));
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__setName__Ls( java_lang_VMThread This, java_lang_String
name )
{
{
JCGO_VLT_LSTORE(void, &JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), name), name);
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__setPriority__I( java_lang_VMThread This, jint
priority )
{
{
JCGO_VLT_STOREI((&JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), priority)), priority);
(java_lang_VMThread__nativeSetPriority__I(
This, priority));
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__join__JI( java_lang_VMThread This, jlong ms, jint
ns )
{
{
{
JCGO_SYNC_BLOCKSAFENZ(This)
{
while (JCGO_VLT_LFETCH(java_lang_VMThread, JCGO_FIELD_ACCESS(java_lang_Thread,
JCGO_FIELD_NZACCESS(This, thread), vmThread)) != jnull)
{
(java_lang_VMThread__wait__LoJI(
(java_lang_Object)This, ms, ns));
if (ms != JLONG_C(0) || ns != 0)
{
break;
}
}
}
JCGO_SYNC_END
}
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__interrupt__( java_lang_VMThread This )
{
{
java_lang_Object vmdata;
vmdata= JCGO_VLT_LFETCH(java_lang_Object, JCGO_FIELD_NZACCESS(This,
vmdata));
if (vmdata != jnull)
{
{
JCGO_SYNC_BLOCKSAFENZ(This)
{
if (JCGO_FIELD_NZACCESS(This, parkFlags) != (java_lang_VMThread__PARKFLAGS_PARKED |
java_lang_VMThread__PARKFLAGS_UNPARKPERMIT))
{
(java_lang_VMThread__interrupt0__LoI(
vmdata, (jint)1));
}
else
{
JCGO_FIELD_NZACCESS(This, parkFlags)= java_lang_VMThread__PARKFLAGS_PARKED;
}
}
JCGO_SYNC_END
}
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__nativeSetPriority__I( java_lang_VMThread This,
jint priority )
{
{
java_lang_Object vmdata;
vmdata= JCGO_VLT_LFETCH(java_lang_Object, JCGO_FIELD_NZACCESS(This,
vmdata));
if (vmdata != jnull)
{
(java_lang_VMThread__nativeSetPriority0__LoI(
vmdata, priority));
}
}
}
JCGO_NOSEP_STATIC java_lang_Thread CFASTCALL
java_lang_VMThread__currentThread__( void )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_Thread thread;
java_lang_VMThread vt;
thread= (java_lang_Thread)JCGO_CAST_OBJECT0(OBJT_java_lang_Thread,
MAXT_java_lang_Thread, (java_lang_VMThread__currentThread0__()));
if (thread == jnull && ((vt= java_lang_VMThread__mainVMThread) ==
jnull || (thread= JCGO_FIELD_NZACCESS(vt, thread)) == jnull))
{
JCGO_THROW_EXC(java_lang_InternalError__new__());
}
return thread;
}
}
JCGO_NOSEP_STATIC jboolean CFASTCALL
java_lang_VMThread__interrupted__( void )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_VMThread vt;
java_lang_Object vmdata;
jint res;
vt= JCGO_VLT_LFETCH(java_lang_VMThread, JCGO_FIELD_NZACCESS((java_lang_VMThread__currentThread__()),
vmThread));
res= 0;
if (vt != jnull && (vmdata= JCGO_VLT_LFETCH(java_lang_Object, JCGO_FIELD_NZACCESS(vt,
vmdata))) != jnull)
{
{
JCGO_SYNC_BLOCKSAFENZ(vt)
{
res= (java_lang_VMThread__interrupt0__LoI(
vmdata, (-(jint)1)));
}
JCGO_SYNC_END
}
}
return (jboolean)(res > 0);
}
}
JCGO_NOSEP_INLINE void CFASTCALL
java_lang_VMThread__sleep__JI( jlong ms, jint ns )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
if (ms != JLONG_C(0) || ns != 0)
{
java_lang_VMThread vt;
vt= JCGO_VLT_LFETCH(java_lang_VMThread, JCGO_FIELD_NZACCESS((java_lang_VMThread__currentThread__()),
vmThread));
if (vt != jnull)
{
{
JCGO_SYNC_BLOCKSAFENZ(vt)
{
(java_lang_VMThread__wait__LoJI(
(java_lang_Object)vt, ms, ns));
}
JCGO_SYNC_END
}
}
}
else
{
(java_lang_VMThread__yield__());
if ((java_lang_VMThread__interrupted__()))
{
JCGO_THROW_EXC(java_lang_InterruptedException__new__());
}
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__notify__LoZ( java_lang_Object obj, jboolean all
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
if ((java_lang_VMThread__notify0__LoI(
obj, all? (jint)1 : 0)) < 0)
{
JCGO_THROW_EXC(java_lang_IllegalMonitorStateException__new__());
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__wait__LoJI( java_lang_Object obj, jlong ms, jint
ns )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
jint res;
res= (java_lang_VMThread__wait0__LoJI(
obj, ms, ns));
if (res < 0)
{
JCGO_THROW_EXC(java_lang_IllegalMonitorStateException__new__());
}
if (res != 0)
{
JCGO_THROW_EXC(java_lang_InterruptedException__new__());
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__initSystemErr__( void )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
JCGO_VLT_LSTORE(void, &java_lang_VMThread__uncaughtHandler, java_lang_VMThread_UncaughtHandler__new__());
if (java_lang_VMThread__mainVMThread == jnull)
{
(java_lang_VMThread__jniExceptionDescribe0X__Lo(
(java_lang_Object)java_lang_Throwable__new__()));
(java_lang_VMThread__destroyJavaVM0X__LoI(
(java_lang_Object)jnull, 0));
}
}
}
JCGO_NOSEP_FRWINL void CFASTCALL
java_lang_VMThread__setSystemOut__L18p1o( java_io_PrintStream out
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
JCGO_VLT_LSTORE(void, &java_lang_VMThread__sysOut, out);
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__flushSystemOut__( void )
{
{
java_io_PrintStream out;
out= JCGO_VLT_LFETCH(java_io_PrintStream, java_lang_VMThread__sysOut);
if (out != jnull)
{
{
JCGO_TRY_BLOCK
{
(java_io_PrintStream__flush__(
out));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(1)
JCGO_TRY_CATCH(OBJT_java_lang_Error, MAXT_java_lang_Error)
{
}
JCGO_TRY_CATCH(OBJT_java_lang_RuntimeException, MAXT_java_lang_RuntimeException)
{
}
JCGO_TRY_RETHROW(1)
}
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__printUncaughtException__L20uxkLt( java_lang_Thread
thread, java_lang_Throwable throwable )
{
{
if (!jcgo_instanceOf0(OBJT_jboolean, MAXT_jboolean, (jObject)throwable))
{
java_lang_VMThread_UncaughtHandler handler;
if (thread != jnull)
{
(java_lang_VMThread__flushSystemOut__());
}
;
if ((handler= JCGO_VLT_LFETCH(java_lang_VMThread_UncaughtHandler,
java_lang_VMThread__uncaughtHandler)) == jnull || !(java_lang_VMThread_UncaughtHandler__printException__L20uxkLt(
handler, thread, throwable)))
{
if (jcgo_instanceOf0(OBJT_java_lang_RuntimeException, MAXT_java_lang_RuntimeException,
(jObject)throwable))
{
JCGO_THROW_EXC((java_lang_RuntimeException)throwable);
}
JCGO_THROW_EXC((java_lang_Error)JCGO_CAST_OBJECT0(OBJT_java_lang_Error,
MAXT_java_lang_Error, (jcgo_instanceOf0(OBJT_java_lang_Error,
MAXT_java_lang_Error, (jObject)throwable)? throwable : (java_lang_Throwable__initCause__Lt(
(java_lang_Throwable)(java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string5_VMThread))), throwable)))));
}
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__rootGroupAdd__L20uxk( java_lang_Thread thread
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
if (JCGO_VLT_LFETCH(java_lang_ThreadGroup, JCGO_FIELD_ACCESS(java_lang_Thread,
thread, group)) == jnull)
{
jObject jcgo_rcvrL1;
(jcgo_rcvrL1= (jObject)(JCGO_VLT_LSTORE(java_lang_ThreadGroup, &JCGO_FIELD_NZACCESS(thread,
group), JCGO_CLINIT_VARACC(java_lang_ThreadGroup__class, java_lang_ThreadGroup__root))),
JCGO_CALL_FINALF((java_lang_ThreadGroup)jcgo_rcvrL1) java_lang_ThreadGroup__addThread__L20uxk(
(java_lang_ThreadGroup)jcgo_rcvrL1, thread));
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__throwIllegalMonitorStateException0X__( void )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
JCGO_THROW_EXC(java_lang_IllegalMonitorStateException__new__());
}
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_lang_VMThread__jniExceptionDescribe0X__Lo( java_lang_Object throwableObj
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_VMThread_UncaughtHandler handler;
if (jcgo_instanceOf0(OBJT_jboolean, MAXT_jboolean, (jObject)throwableObj))
{
return (jint)1;
}
;
return (handler= JCGO_VLT_LFETCH(java_lang_VMThread_UncaughtHandler,
java_lang_VMThread__uncaughtHandler)) != jnull && (java_lang_VMThread_UncaughtHandler__printJniException__Lt(
handler, (java_lang_Throwable)JCGO_CAST_OBJECT0(OBJT_java_lang_Throwable,
MAXT_java_lang_Throwable, throwableObj)))? (jint)1 : 0;
}
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_lang_VMThread__run0X__Lo( java_lang_Object vmdata )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
{
JCGO_TRY_BLOCK
{
java_lang_Thread thread;
if (vmdata != jnull && (thread= (java_lang_VMThread__currentThread__())) !=
jnull)
{
java_lang_VMThread vt;
{
JCGO_SYNC_BLOCKSAFENZ(java_lang_VMThread__threadStartLock)
{
while ((vt= JCGO_VLT_LFETCH(java_lang_VMThread, JCGO_FIELD_NZACCESS(thread,
vmThread))) == jnull)
{
{
JCGO_TRY_BLOCK
{
(java_lang_VMThread__wait__LoJI(
(java_lang_Object)java_lang_VMThread__threadStartLock, JLONG_C(0),
0));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(1)
JCGO_TRY_CATCH(OBJT_java_lang_InterruptedException, MAXT_java_lang_InterruptedException)
{
}
JCGO_TRY_RETHROW(1)
}
}
}
JCGO_SYNC_END
}
if (JCGO_VLT_LFETCH(java_lang_Object, JCGO_FIELD_NZACCESS(vt,
vmdata)) != vmdata)
{
JCGO_THROW_EXC((java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string6_VMThread))));
}
(java_lang_VMThread__nativeSetPriority0__LoI(
vmdata, (java_lang_VMThread__getPriority__(
vt))));
(java_lang_VMThread__run__(
vt));
}
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(2)
JCGO_TRY_CATCH(OBJT_java_lang_Throwable, MAXT_java_lang_Throwable)
{
java_lang_Throwable throwable;
throwable= (java_lang_Throwable)JCGO_TRY_THROWABLE(0);
(java_lang_VMThread__printUncaughtException__L20uxkLt(
(java_lang_Thread)jnull, throwable));
}
JCGO_TRY_RETHROW(2)
}
return 0;
}
}
JCGO_NOSEP_STATIC java_lang_Object CFASTCALL
java_lang_VMThread__createAttachedThread0X__LoLsLoI( java_lang_Object
groupObj, java_lang_String name, java_lang_Object vmdata, jint daemon
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_Thread thread;
java_lang_VMThread vt;
jObject jcgo_rcvrL1;
if (java_lang_VMThread__mainVMThread == jnull || JCGO_CLINIT_VARACC(java_lang_ThreadGroup__class,
java_lang_ThreadGroup__root) == jnull)
{
JCGO_THROW_EXC((java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string7_VMThread))));
}
thread= (java_lang_Thread__new__L40aspLsIZ(
(java_lang_VMThread)jnull, name, java_lang_Thread__NORM_PRIORITY,
(jboolean)(daemon != 0)));
(jcgo_rcvrL1= (jObject)(JCGO_VLT_LSTORE(java_lang_ThreadGroup, &JCGO_FIELD_NZACCESS(thread,
group), groupObj != jnull? (java_lang_ThreadGroup)jcgo_checkCast0(OBJT_java_lang_ThreadGroup,
MAXT_java_lang_ThreadGroup, (jObject)groupObj) : JCGO_CLINIT_VARACC(java_lang_ThreadGroup__class,
java_lang_ThreadGroup__root))), JCGO_CALL_FINALF((java_lang_ThreadGroup)jcgo_rcvrL1)
java_lang_ThreadGroup__addThread__L20uxk(
(java_lang_ThreadGroup)jcgo_rcvrL1, thread));
vt= (java_lang_VMThread__new__L20uxk(
thread));
JCGO_VLT_LSTORE(void, &JCGO_FIELD_NZACCESS(vt, vmdata), vmdata);
JCGO_VLT_STOREI((&JCGO_FIELD_NZACCESS(vt, threadStatus)), java_lang_VMThread__STATE_RUNNABLE);
(java_lang_VMThread__attachInner__(
vt));
return (java_lang_Object)thread;
}
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_lang_VMThread__detachThread0X__Lo( java_lang_Object throwableObj
)
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
{
java_lang_VMThread JCGO_TRY_VOLATILE vt;
vt= (java_lang_VMThread)jnull;
{
JCGO_TRY_BLOCK
{
java_lang_Thread thread;
thread= (java_lang_VMThread__currentThread__());
if (thread != jnull)
{
vt= JCGO_VLT_LFETCH(java_lang_VMThread, JCGO_FIELD_NZACCESS(thread,
vmThread));
if (throwableObj != jnull && !(JCGO_METHODS_OF(throwableObj)->jcgo_typeid==
OBJT_jboolean) && vt != jnull && JCGO_VLT_FETCHI(JCGO_FIELD_NZACCESS(vt,
threadStatus)) != java_lang_VMThread__STATE_TERMINATED)
{
(java_lang_VMThread__printUncaughtException__L20uxkLt(
thread, (java_lang_Throwable)JCGO_CAST_OBJECT0(OBJT_java_lang_Throwable,
MAXT_java_lang_Throwable, throwableObj)));
}
}
}
JCGO_TRY_LEAVE
{
if (vt != jnull)
{
(java_lang_VMThread__detachInner__(
vt));
}
}
JCGO_TRY_FINALLYEND
}
return 0;
}
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_lang_VMThread__destroyJavaVM0X__LoI( java_lang_Object throwableObj,
jint isInInitializer )
{
JCGO_CLINIT_TRIG(java_lang_VMThread__class);
JCGO_TRY_NOCLOBBER(throwableObj);
{
{
JCGO_TRY_BLOCK
{
java_lang_Thread thread;
java_lang_VMThread vt;
java_lang_Thread cleanupThread;
thread= (java_lang_VMThread__currentThread__());
if (thread == jnull || (vt= JCGO_VLT_LFETCH(java_lang_VMThread,
JCGO_FIELD_NZACCESS(thread, vmThread))) == jnull || java_lang_VMThread__nonDaemonLock ==
jnull || java_lang_VMThread__mainVMThread == jnull || (java_lang_Runtime__getRuntime__()) ==
jnull || JCGO_CLINIT_VARACC(java_lang_ThreadGroup__class, java_lang_ThreadGroup__root) ==
jnull)
{
JCGO_THROW_EXC((java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string7_VMThread))));
}
if (throwableObj != jnull)
{
if ((JCGO_METHODS_OF(throwableObj)->jcgo_typeid== OBJT_jboolean))
{
throwableObj= (java_lang_Object)jnull;
}
else
{
java_lang_Throwable JCGO_TRY_VOLATILE throwable;
if (!JCGO_CLINIT_VARACC(java_lang_VMThread_ExitMain__class, java_lang_VMThread_ExitMain__initialized))
{
JCGO_THROW_EXC((java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string7_VMThread))));
}
throwable= (java_lang_Throwable)jcgo_checkCast0(OBJT_java_lang_Throwable,
MAXT_java_lang_Throwable, (jObject)throwableObj);
if (isInInitializer != 0 && !jcgo_instanceOf0(OBJT_java_lang_LinkageError,
MAXT_java_lang_LinkageError, (jObject)throwable) && !jcgo_instanceOf0(OBJT_java_lang_VirtualMachineError,
MAXT_java_lang_VirtualMachineError, (jObject)throwable))
{
{
JCGO_TRY_BLOCK
{
throwable= (java_lang_Throwable)(java_lang_ExceptionInInitializerError__new__Lt(
throwable));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(1)
JCGO_TRY_CATCH(OBJT_java_lang_Error, MAXT_java_lang_Error)
{
java_lang_Error e;
e= (java_lang_Error)JCGO_TRY_THROWABLE(0);
throwable= (java_lang_Throwable)e;
}
JCGO_TRY_RETHROW(1)
}
}
(java_lang_VMThread__printUncaughtException__L20uxkLt(
thread, throwable));
}
}
cleanupThread= (java_lang_Thread)jnull;
if (java_lang_VMThread__hasThreads && !jcgo_instanceOf0(OBJT_java_lang_Error,
MAXT_java_lang_Error, (jObject)throwableObj))
{
cleanupThread= (java_lang_Thread)(java_lang_VMThread_1__new__L40aspLsIZ(
(java_lang_VMThread)jnull, JCGO_STRREF_OF(jcgo_string8_VMThread),
java_lang_Thread__NORM_PRIORITY, (jboolean)jtrue));
(java_lang_VMThread__rootGroupAdd__L20uxk(
cleanupThread));
{
JCGO_TRY_BLOCK
{
(java_lang_Thread__start__(
cleanupThread));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(2)
JCGO_TRY_CATCH(OBJT_java_lang_OutOfMemoryError, MAXT_java_lang_OutOfMemoryError)
{
cleanupThread= (java_lang_Thread)jnull;
}
JCGO_TRY_RETHROW(2)
}
}
if (cleanupThread == jnull)
{
(java_lang_VMThread__flushSystemOut__());
(java_lang_Runtime__runShutdownHooks__(
(java_lang_Runtime__getRuntime__())));
(java_lang_VMThread__flushSystemOut__());
}
JCGO_VLT_STOREI((&JCGO_FIELD_NZACCESS(vt, threadStatus)), java_lang_VMThread__STATE_TERMINATED);
(java_lang_Thread__die__(
thread));
if (cleanupThread != jnull)
{
{
JCGO_SYNC_BLOCKSAFENZ(vt)
{
(java_lang_VMThread__notify__LoZ(
(java_lang_Object)vt, (jboolean)jtrue));
}
JCGO_SYNC_END
}
{
JCGO_TRY_BLOCK
{
(java_lang_Thread__join__(
cleanupThread));
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(3)
JCGO_TRY_CATCH(OBJT_java_lang_InterruptedException, MAXT_java_lang_InterruptedException)
{
}
JCGO_TRY_RETHROW(3)
}
}
if (throwableObj != jnull)
{
(java_lang_VMThrowable__exit__I(
(jint)254));
}
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(4)
JCGO_TRY_CATCH(OBJT_java_lang_OutOfMemoryError, MAXT_java_lang_OutOfMemoryError)
{
java_lang_OutOfMemoryError e;
e= (java_lang_OutOfMemoryError)JCGO_TRY_THROWABLE(0);
JCGO_THROW_EXC(e);
}
JCGO_TRY_CATCH(OBJT_java_lang_Error, MAXT_java_lang_Error)
{
java_lang_Error e;
e= (java_lang_Error)JCGO_TRY_THROWABLE(0);
if (jcgo_instanceOf0(OBJT_java_lang_OutOfMemoryError, MAXT_java_lang_OutOfMemoryError,
(jObject)throwableObj))
{
JCGO_THROW_EXC((java_lang_OutOfMemoryError)throwableObj);
}
JCGO_THROW_EXC(e);
}
JCGO_TRY_CATCH(OBJT_java_lang_RuntimeException, MAXT_java_lang_RuntimeException)
{
java_lang_RuntimeException e;
e= (java_lang_RuntimeException)JCGO_TRY_THROWABLE(0);
if (jcgo_instanceOf0(OBJT_java_lang_OutOfMemoryError, MAXT_java_lang_OutOfMemoryError,
(jObject)throwableObj))
{
JCGO_THROW_EXC((java_lang_OutOfMemoryError)throwableObj);
}
JCGO_THROW_EXC((java_lang_Error)JCGO_CAST_OBJECT0(OBJT_java_lang_Error,
MAXT_java_lang_Error, (java_lang_Throwable__initCause__Lt(
(java_lang_Throwable)(java_lang_InternalError__new__Ls(
JCGO_STRREF_OF(jcgo_string5_VMThread))), (java_lang_Throwable)e))));
}
JCGO_TRY_RETHROW(4)
}
return 0;
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__attachInner__( java_lang_VMThread This )
{
{
JCGO_VLT_LSTORE(void, &JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), vmThread), This);
{
JCGO_SYNC_BLOCKSAFENZ(java_lang_VMThread__nonDaemonLock)
{
jint count;
jint jcgo_rcvrI1;
java_lang_VMThread__hasThreads= (jboolean)jtrue;
if ((jcgo_rcvrI1= (count= ++java_lang_VMThread__liveThreadCnt),
jcgo_rcvrI1 > java_lang_VMThread__maxLiveThreadCnt))
{
java_lang_VMThread__maxLiveThreadCnt= count;
}
if (!JCGO_VLT_FETCHZ(JCGO_FIELD_NZACCESS(JCGO_FIELD_NZACCESS(This,
thread), daemon)) && ++java_lang_VMThread__nonDaemonCnt == 0)
{
(java_lang_VMThread__notify__LoZ(
java_lang_VMThread__nonDaemonLock, (jboolean)jfalse));
}
}
JCGO_SYNC_END
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__detachInner__( java_lang_VMThread This )
{
{
JCGO_VLT_LSTORE(void, &JCGO_FIELD_NZACCESS(This, vmdata), jnull);
if (JCGO_VLT_FETCHI(JCGO_FIELD_NZACCESS(This, threadStatus)) != java_lang_VMThread__STATE_TERMINATED)
{
jboolean died;
JCGO_VLT_STOREI((&JCGO_FIELD_NZACCESS(This, threadStatus)), java_lang_VMThread__STATE_TERMINATED);
died= jfalse;
{
JCGO_SYNC_BLOCKSAFENZ(java_lang_VMThread__nonDaemonLock)
{
java_lang_VMThread__liveThreadCnt--;
if (!JCGO_VLT_FETCHZ(JCGO_FIELD_ACCESS(java_lang_Thread, JCGO_FIELD_NZACCESS(This,
thread), daemon)) && --java_lang_VMThread__nonDaemonCnt == 0)
{
(java_lang_Thread__die__(
JCGO_FIELD_NZACCESS(This, thread)));
(java_lang_VMThread__notify__LoZ(
java_lang_VMThread__nonDaemonLock, (jboolean)jfalse));
died= (jboolean)jtrue;
}
}
JCGO_SYNC_END
}
if (!died)
{
(java_lang_Thread__die__(
JCGO_FIELD_NZACCESS(This, thread)));
}
{
JCGO_SYNC_BLOCKSAFENZ(This)
{
(java_lang_VMThread__notify__LoZ(
(java_lang_Object)This, (jboolean)jtrue));
}
JCGO_SYNC_END
}
}
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_lang_VMThread__class__0( void )
{
JCGO_CLINIT_BEGIN(java_lang_VMThread__class);
java_lang_VMThread__nonDaemonLock= java_lang_Object__new__();
{
(java_lang_VMThread__setupMainThread__());
if (java_lang_VMThread__mainVMThread == jnull)
{
(java_lang_VMThread__throwIllegalMonitorStateException0X__());
}
}
JCGO_CLINIT_DONE(java_lang_VMThread__class);
}
JCGO_NOSEP_DATA CONST struct java_lang_VMThread_methods_s java_lang_VMThread_methods=
{
JCGO_CLASSREF_OF(java_lang_VMThread__class),
JCGO_GCJDESCR_INIT(java_lang_VMThread_s, vmdata)
OBJT_java_lang_VMThread,
(JCGO_OBJSIZE_T)sizeof(struct java_lang_VMThread_s),
NULL,
JCGO_CLINIT_INIT(java_lang_VMThread__class__0)
0,
java_lang_Object__equals__Lo,
java_lang_Object__hashCode__,
java_lang_Object__toString__,
java_lang_Object__finalize__
};
JCGO_NOSEP_DATA struct java_lang_VMThread_class_s java_lang_VMThread__class
ATTRIBNONGC=
{
{
&java_lang_Class_methods,
JCGO_MON_INIT
JCGO_OBJREF_OF(*(java_lang_Object)&java_lang_VMThread_methods),
JCGO_STRREF_OF(jcgo_string1_VMThread),
JCGO_CLASSREF_OF(java_lang_Object__class),
((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
0x1d0
}
};
JCGO_NOSEP_GCDATA java_lang_Object java_lang_VMThread__nonDaemonLock
ATTRIBGCBSS= jnull;
JCGO_NOSEP_GCDATA java_lang_VMThread java_lang_VMThread__mainVMThread
ATTRIBGCBSS= jnull;
JCGO_NOSEP_GCDATA java_io_PrintStream JCGO_THRD_VOLATILE java_lang_VMThread__sysOut
ATTRIBGCBSS= jnull;
JCGO_NOSEP_GCDATA java_lang_VMThread_UncaughtHandler JCGO_THRD_VOLATILE
java_lang_VMThread__uncaughtHandler ATTRIBGCBSS= jnull;
JCGO_NOSEP_DATA jlong java_lang_VMThread__totalStartedCnt= (jlong)0;
JCGO_NOSEP_DATA jint java_lang_VMThread__nonDaemonCnt= (jint)0;
JCGO_NOSEP_DATA jint java_lang_VMThread__liveThreadCnt= (jint)0;
JCGO_NOSEP_DATA jint java_lang_VMThread__maxLiveThreadCnt= (jint)0;
JCGO_NOSEP_DATA jboolean java_lang_VMThread__hasThreads= (jboolean)0;
JCGO_NOSEP_DATA JCGO_NOTHR_CONST jcgo_arrtype2_GameMdl jcgo_array2_VMThread
JCGO_THRD_ATTRNONGC=
{
(jvtable)&jObjectArr_methods,
JCGO_MON_INIT
0,
JCGO_CLASSREF_OF(java_lang_Object__class),
{
jnull
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype23_Object jcgo_array9_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
20,
{
(jbyte)(jchar)106/*'j'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)118/*'v'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)108/*'l'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)103/*'g'*/,
(jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)86/*'V'*/, (jbyte)(jchar)77/*'M'*/,
(jbyte)(jchar)84/*'T'*/, (jbyte)(jchar)104/*'h'*/, (jbyte)(jchar)114/*'r'*/,
(jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)100/*'d'*/,
(jbyte)(jchar)36/*'$'*/, (jbyte)(jchar)49/*'1'*/
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype80_GmCnnctn jcgo_array10_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
21,
{
(jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)110/*'n'*/,
(jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)116/*'t'*/,
(jbyte)(jchar)32/*' '*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)116/*'t'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)116/*'t'*/,
(jbyte)(jchar)32/*' '*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)104/*'h'*/,
(jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)97/*'a'*/,
(jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)58/*':'*/, (jbyte)(jchar)32/*' '*/
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype4_IntAddrs jcgo_array11_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
4,
{
(jbyte)(jchar)109/*'m'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)105/*'i'*/,
(jbyte)(jchar)110/*'n'*/
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype77_GmCnnctn jcgo_array12_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
30,
{
(jbyte)(jchar)86/*'V'*/, (jbyte)(jchar)77/*'M'*/, (jbyte)(jchar)84/*'T'*/,
(jbyte)(jchar)104/*'h'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)32/*' '*/,
(jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)97/*'a'*/,
(jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)32/*' '*/,
(jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)116/*'t'*/,
(jbyte)(jchar)32/*' '*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/,
(jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)105/*'i'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)105/*'i'*/,
(jbyte)(jchar)122/*'z'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)100/*'d'*/
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype44_GameShll jcgo_array13_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
22,
{
(jbyte)(jchar)86/*'V'*/, (jbyte)(jchar)77/*'M'*/, (jbyte)(jchar)84/*'T'*/,
(jbyte)(jchar)104/*'h'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)46/*'.'*/,
(jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)97/*'a'*/,
(jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)40/*'('*/,
(jbyte)(jchar)41/*')'*/, (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)102/*'f'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)117/*'u'*/, (jbyte)(jchar)108/*'l'*/,
(jbyte)(jchar)116/*'t'*/
}
};
JCGO_NOSEP_DATA CONST jcgo_arrtype32_GameShll jcgo_array14_VMThread=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
10,
{
(jbyte)(jchar)86/*'V'*/, (jbyte)(jchar)77/*'M'*/, (jbyte)(jchar)32/*' '*/,
(jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)101/*'e'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)117/*'u'*/,
(jbyte)(jchar)112/*'p'*/
}
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array9_VMThread),
0, 18, (jint)0x65dd0cd5L
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string3_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array10_VMThread),
0, 21, (jint)0x385e0d6bL
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string4_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array11_VMThread),
0, 4, (jint)0x3305b9L
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string5_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array12_VMThread),
0, 8, (jint)0x642adfa1L
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string6_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array13_VMThread),
0, 22, (jint)0x13ebd18L
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string7_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array12_VMThread),
0, 30, (jint)0x56b52320L
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string8_VMThread
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array14_VMThread),
0, 10, (jint)0xd878563bL
};
#ifdef CHKALL_java_lang_VMThread
#include "jcgochke.h"
#endif
#endif