< prev index next >
test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp
Print this page
rev 52432 : 8213501: Deploy ExceptionJniWrapper for a few tests
Summary:
Reviewed-by:
*** 44,76 ****
jlong *pa;
jlong hash = 0;
time_t start_time, current_time;
if (objFieldId == NULL) {
! jclass klass = env->GetObjectClass(o);
! objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;");
}
! arr = (jlongArray) env->GetObjectField(o, objFieldId);
! env->SetObjectField(o, objFieldId, NULL);
! size = env->GetArrayLength(arr);
start_time = time(NULL);
enterTime /= 1000;
current_time = 0;
while (current_time - start_time < enterTime) {
! pa = (jlong*) env->GetPrimitiveArrayCritical(arr, NULL);
if (pa != NULL) {
for (i = 0; i < size; ++i)
hash ^= pa[i];
} else {
hash = 0;
}
mssleep((long) sleepTime);
! env->ReleasePrimitiveArrayCritical(arr, pa, 0);
mssleep((long) sleepTime);
current_time = time(NULL);
}
! env->SetObjectField(o, objFieldId, arr);
return hash;
}
}
--- 44,76 ----
jlong *pa;
jlong hash = 0;
time_t start_time, current_time;
if (objFieldId == NULL) {
! jclass klass = env->GetObjectClass(o, TRACE_JNI_CALL);
! objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;", TRACE_JNI_CALL);
}
! arr = (jlongArray) env->GetObjectField(o, objFieldId, TRACE_JNI_CALL);
! env->SetObjectField(o, objFieldId, NULL, TRACE_JNI_CALL);
! size = env->GetArrayLength(arr, TRACE_JNI_CALL);
start_time = time(NULL);
enterTime /= 1000;
current_time = 0;
while (current_time - start_time < enterTime) {
! pa = (jlong*) env->GetPrimitiveArrayCritical(arr, NULL, TRACE_JNI_CALL);
if (pa != NULL) {
for (i = 0; i < size; ++i)
hash ^= pa[i];
} else {
hash = 0;
}
mssleep((long) sleepTime);
! env->ReleasePrimitiveArrayCritical(arr, pa, 0, TRACE_JNI_CALL);
mssleep((long) sleepTime);
current_time = time(NULL);
}
! env->SetObjectField(o, objFieldId, arr, TRACE_JNI_CALL);
return hash;
}
}
< prev index next >