1 /* class: java/lang/Thread */
9 #include "threads/thread.h"
10 #include "java_lang_ThreadGroup.h"
11 #include "java_lang_Object.h" /* needed for java_lang_Thread.h */
12 #include "java_lang_Throwable.h" /* needed for java_lang_Thread.h */
13 #include "java_lang_Thread.h"
17 * Class: java/lang/Thread
18 * Method: countStackFrames
21 JNIEXPORT s4 JNICALL Java_java_lang_Thread_countStackFrames ( JNIEnv *env , struct java_lang_Thread* this)
23 log_text ("java_lang_Thread_countStackFrames called");
24 return 0; /* not yet implemented */
28 * Class: java/lang/Thread
29 * Method: currentThread
30 * Signature: ()Ljava/lang/Thread;
32 JNIEXPORT struct java_lang_Thread* JNICALL Java_java_lang_Thread_currentThread ( JNIEnv *env ,jclass clazz )
34 struct java_lang_Thread* t;
37 log_text ("java_lang_Thread_currentThread called");
42 t = (struct java_lang_Thread*) currentThread;
45 log_text("java_lang_Thread_currentThread: t->group=NULL");
46 /* ThreadGroup of currentThread is not initialized */
48 t->group = (java_lang_ThreadGroup *)
49 native_new_and_init(loader_load(utf_new_char("java/lang/ThreadGroup")));
52 log_text("unable to create ThreadGroup");
55 return (struct java_lang_Thread*) currentThread;
62 * Class: java/lang/Thread
63 * Method: nativeInterrupt
66 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeInterrupt ( JNIEnv *env , struct java_lang_Thread* this)
68 log_text("Java_java_lang_Thread_interrupt0 called");
69 /* not yet implemented */
73 * Class: java/lang/Thread
77 JNIEXPORT s4 JNICALL Java_java_lang_Thread_isAlive ( JNIEnv *env , struct java_lang_Thread* this)
80 log_text ("java_lang_Thread_isAlive called");
83 return aliveThread((thread*)this);
92 * Class: java_lang_Thread
93 * Method: isInterrupted
96 JNIEXPORT s4 JNICALL Java_java_lang_Thread_isInterrupted (JNIEnv *env , struct java_lang_Thread* this )
98 log_text("Java_java_lang_Thread_isInterrupted called");
99 return 0; /* not yet implemented */
103 * Class: java/lang/Thread
104 * Method: registerNatives
107 JNIEXPORT void JNICALL Java_java_lang_Thread_registerNatives ( JNIEnv *env ,jclass clazz )
113 * Class: java/lang/Thread
117 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeResume ( JNIEnv *env , struct java_lang_Thread* this)
120 log_text ("java_lang_Thread_resume0 called");
123 resumeThread((thread*)this);
128 * Class: java/lang/Thread
129 * Method: setPriority0
132 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeSetPriority ( JNIEnv *env , struct java_lang_Thread* this, s4 par1)
135 log_text ("java_lang_Thread_setPriority0 called");
138 setPriorityThread((thread*)this, par1);
144 * Class: java_lang_Thread
148 JNIEXPORT void JNICALL Java_java_lang_Thread_sleep (JNIEnv *env , jclass clazz, s8 millis, s4 par2)
151 log_text ("java_lang_Thread_sleep called");
159 * Class: java/lang/Thread
163 JNIEXPORT void JNICALL Java_java_lang_Thread_start ( JNIEnv *env , struct java_lang_Thread* this)
166 log_text ("java_lang_Thread_start called");
167 /*printf("THREAD PRIORITY: %d\n",this->priority);*/
170 startThread((thread*)this);
175 * Class: java/lang/Thread
177 * Signature: (Ljava/lang/Object;)V
179 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeStop ( JNIEnv *env , struct java_lang_Thread* this, struct java_lang_Throwable* par1)
182 log_text ("java_lang_Thread_stop0 called");
186 if (currentThread == (thread*)this)
191 exceptionptr = proto_java_lang_ThreadDeath;
197 CONTEXT((thread*)this).flags |= THREAD_FLAGS_KILLED;
198 resumeThread((thread*)this);
204 * Class: java/lang/Thread
208 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeSuspend ( JNIEnv *env , struct java_lang_Thread* this)
211 log_text ("java_lang_Thread_suspend0 called");
214 suspendThread((thread*)this);
220 * Class: java/lang/Thread
224 JNIEXPORT void JNICALL Java_java_lang_Thread_yield ( JNIEnv *env ,jclass clazz)
227 log_text ("java_lang_Thread_yield called");
234 * Class: java_lang_Thread
235 * Method: interrupted
238 JNIEXPORT s4 JNICALL Java_java_lang_Thread_interrupted (JNIEnv *env ,jclass clazz) {
239 log_text("Java_java_lang_Thread_interrupted");
243 * Class: java_lang_Thread
247 JNIEXPORT void JNICALL Java_java_lang_Thread_nativeInit (JNIEnv *env , struct java_lang_Thread* this , s8 par1) {
248 log_text("Thread_nativeInit");
249 if (exceptionptr) log_text("There has been an exception, strange...");
254 * Class: java_lang_Thread
256 * Signature: (Ljava/lang/Object;)Z
258 JNIEXPORT s4 JNICALL Java_java_lang_Thread_holdsLock (JNIEnv *env , jclass clazz, struct java_lang_Object* par1)
265 * These are local overrides for various environment variables in Emacs.
266 * Please do not remove this and leave it at the end of the file, where
267 * Emacs will automagically detect them.
268 * ---------------------------------------------------------------------
271 * indent-tabs-mode: t