< prev index next >

test/hotspot/jtreg/serviceability/jvmti/vthread/GetThreadStateMountedTest/libGetThreadStateMountedTest.cpp

Print this page

174     verify_thread_state("vthread", jni, vthread,
175                         exp_vt_state | JVMTI_THREAD_STATE_SUSPENDED | JVMTI_THREAD_STATE_INTERRUPTED,
176                         expected_weak);
177   }
178 
179   // resume vthread
180   LOG("resume vthread\n");
181   resume_thread(jvmti, jni, vthread);
182 
183   // don't verify thread state after InterruptThread and ResumeThread
184 }
185 
186 extern "C" JNIEXPORT int JNICALL
187 Java_GetThreadStateMountedTest_getErrorCount(JNIEnv* jni, jclass clazz) {
188   return error_count;
189 }
190 
191 
192 static std::atomic<bool> time_to_exit(false);
193 










194 extern "C" JNIEXPORT void JNICALL
195 Java_GetThreadStateMountedTest_waitInNative(JNIEnv* jni, jclass clazz) {
196   // Notify main thread that we are ready
197   jfieldID fid = jni->GetStaticFieldID(clazz, "waitInNativeReady", "Z");
198   if (fid == nullptr) {
199     jni->FatalError("cannot get waitInNativeReady field");
200     return;
201   }
202   jni->SetStaticBooleanField(clazz, fid, JNI_TRUE);
203 
204   while (!time_to_exit) {
205     sleep_ms(100);
206   }
207 }
208 
209 extern "C" JNIEXPORT void JNICALL
210 Java_GetThreadStateMountedTest_endWait(JNIEnv* jni, jclass clazz) {
211   time_to_exit = true;
212 }

174     verify_thread_state("vthread", jni, vthread,
175                         exp_vt_state | JVMTI_THREAD_STATE_SUSPENDED | JVMTI_THREAD_STATE_INTERRUPTED,
176                         expected_weak);
177   }
178 
179   // resume vthread
180   LOG("resume vthread\n");
181   resume_thread(jvmti, jni, vthread);
182 
183   // don't verify thread state after InterruptThread and ResumeThread
184 }
185 
186 extern "C" JNIEXPORT int JNICALL
187 Java_GetThreadStateMountedTest_getErrorCount(JNIEnv* jni, jclass clazz) {
188   return error_count;
189 }
190 
191 
192 static std::atomic<bool> time_to_exit(false);
193 
194 extern "C" JNIEXPORT void JNICALL
195 Java_GetThreadStateMountedTest_runFromNative(JNIEnv* jni, jclass clazz, jobject runnable) {
196   jmethodID mid = jni->GetStaticMethodID(clazz, "runUpcall", "(Ljava/lang/Runnable;)V");
197   if (mid == nullptr) {
198     jni->FatalError("failed to get runUpcall method");
199     return;
200   }
201   jni->CallStaticVoidMethod(clazz, mid, runnable);
202 }
203 
204 extern "C" JNIEXPORT void JNICALL
205 Java_GetThreadStateMountedTest_waitInNative(JNIEnv* jni, jclass clazz) {
206   // Notify main thread that we are ready
207   jfieldID fid = jni->GetStaticFieldID(clazz, "waitInNativeReady", "Z");
208   if (fid == nullptr) {
209     jni->FatalError("cannot get waitInNativeReady field");
210     return;
211   }
212   jni->SetStaticBooleanField(clazz, fid, JNI_TRUE);
213 
214   while (!time_to_exit) {
215     sleep_ms(100);
216   }
217 }
218 
219 extern "C" JNIEXPORT void JNICALL
220 Java_GetThreadStateMountedTest_endWait(JNIEnv* jni, jclass clazz) {
221   time_to_exit = true;
222 }
< prev index next >