aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.jvmti/natgetallthreads.cc
diff options
context:
space:
mode:
authorKyle Galloway <kgallowa@redhat.com>2007-01-16 15:06:28 +0000
committerKyle Galloway <kgallowa@gcc.gnu.org>2007-01-16 15:06:28 +0000
commit05794ce850979f99c29d11c470ab8fd33dffd065 (patch)
tree8a3866653315bfe7be70d28bf9d7d4f62e0bdc88 /libjava/testsuite/libjava.jvmti/natgetallthreads.cc
parent878aa8171752ad29ae47099e31fbe3df1dcf3133 (diff)
downloadgcc-05794ce850979f99c29d11c470ab8fd33dffd065.zip
gcc-05794ce850979f99c29d11c470ab8fd33dffd065.tar.gz
gcc-05794ce850979f99c29d11c470ab8fd33dffd065.tar.bz2
jvmti.cc (_Jv_JVMTI_GetAllThreads): New function.
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. From-SVN: r120827
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 0000000..9c4d69c
--- /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 );
+}
+