< prev index next >
test/hotspot/jtreg/gc/g1/libTestPeriodicCollectionJNI.c
Print this page
rev 53920 : imported patch 8218880-g1-crashes-periodic-gc-gclocker
rev 53921 : [mq]: 8218880-shade-review
@@ -25,21 +25,37 @@
* Native support for TestPeriodicCollectionJNI test.
*/
#include "jni.h"
+#ifdef WINDOWS
+#include <windows.h>
+#else
+#include <unistd.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
static volatile int release_critical = 0;
JNIEXPORT jboolean JNICALL
Java_gc_g1_TestPeriodicCollectionJNI_blockInNative(JNIEnv* env, jobject obj, jintArray dummy) {
void* native_array = (*env)->GetPrimitiveArrayCritical(env, dummy, 0);
if (native_array == NULL) {
return JNI_FALSE;
}
- while (!release_critical) /* empty */;
+ while (!release_critical) {
+#ifdef WINDOWS
+ Sleep(1);
+#else
+ usleep(1000);
+#endif
+ }
(*env)->ReleasePrimitiveArrayCritical(env, dummy, native_array, 0);
return JNI_TRUE;
}
@@ -47,5 +63,9 @@
JNIEXPORT void JNICALL Java_gc_g1_TestPeriodicCollectionJNI_unblock(JNIEnv *env, jobject obj)
{
release_critical = 1;
}
+#ifdef __cplusplus
+}
+#endif
+
< prev index next >