summaryrefslogtreecommitdiffstats
path: root/libjava/testsuite/libjava.jvmti/natgetallthreads.cc
diff options
context:
space:
mode:
authorkgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-16 15:06:28 +0000
committerkgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-16 15:06:28 +0000
commit34b0e09cd2ed4f463f7168b8ca0fb8f15443d455 (patch)
tree8a3866653315bfe7be70d28bf9d7d4f62e0bdc88 /libjava/testsuite/libjava.jvmti/natgetallthreads.cc
parent213448e9810276af654b401117bc42d2d43d447b (diff)
downloadppe42-gcc-34b0e09cd2ed4f463f7168b8ca0fb8f15443d455.tar.gz
ppe42-gcc-34b0e09cd2ed4f463f7168b8ca0fb8f15443d455.zip
2007-01-16 Kyle Galloway <kgallowa@redhat.com>
* jvmti.cc (_Jv_JVMTI_GetAllThreads): New function. * testsuite/libjava.jvmti/getallthreads.java: New test. * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto. * testsuite/libjava.jvmti/getallthreads.out: Ditto. * testsuite/libjava.jvmti/getallthreads.h: Ditto. * testsuite/libjava.jvmti/getallthreads.jar: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120827 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/testsuite/libjava.jvmti/natgetallthreads.cc')
-rw-r--r--libjava/testsuite/libjava.jvmti/natgetallthreads.cc55
1 files changed, 55 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jvmti/natgetallthreads.cc b/libjava/testsuite/libjava.jvmti/natgetallthreads.cc
new file mode 100644
index 00000000000..9c4d69cde74
--- /dev/null
+++ b/libjava/testsuite/libjava.jvmti/natgetallthreads.cc
@@ -0,0 +1,55 @@
+#include <gcj/cni.h>
+
+#include <jvm.h>
+#include <jvmti.h>
+#include <stdio.h>
+
+#include "jvmti-int.h"
+#include "getallthreads.h"
+
+void
+getallthreads::natPlaceholder ()
+{
+ ex_frames--;
+
+ if (ex_frames > 0)
+ {
+ if ((getallthreads::thread_num % 2) == 0)
+ placeholder ();
+ else
+ natPlaceholder ();
+ }
+ else
+ natRunner ();
+}
+
+void
+getallthreads::natRunner ()
+{
+ done = true;
+ while (done)
+ yield ();
+}
+
+void
+getallthreads::do_getallthreads_tests ()
+{
+ jvmtiEnv *env;
+ JavaVM *vm = _Jv_GetJavaVM ();
+ vm->GetEnv (reinterpret_cast<void **> (&env), JVMTI_VERSION_1_0);
+
+ jint num_threads;
+ jthread *thread_arr;
+
+ jvmtiError jerr = env->GetAllThreads (&num_threads, &thread_arr);
+ if (jerr != JVMTI_ERROR_NONE)
+ {
+ printf ("Test Failed, JVMTI Error!\n");
+ return;
+ }
+ env->Deallocate (reinterpret_cast<unsigned char *> (thread_arr));
+
+ for (int i = 0; i < num_threads; i++)
+ printf ("Found thread %d\n", i+1 );
+}
+
OpenPOWER on IntegriCloud