From 3efc00ac5c60152bee307a1f3770c591905f0011 Mon Sep 17 00:00:00 2001 From: Salikh Zakirov Date: Tue, 20 Mar 2007 21:59:28 +0300 Subject: [PATCH] jthread_join(): is not used anywhere, removed --- vm/include/open/jthread.h | 2 - vm/tests/unit/thread/test_java_basic.c | 144 -------------------- vm/thread/src/thread_java_basic.c | 50 ------- .../javasrc/java/lang/VMThreadManager.java | 10 -- .../native/java_lang_VMThreadManager.cpp | 12 -- 5 files changed, 0 insertions(+), 218 deletions(-) diff --git a/vm/include/open/jthread.h b/vm/include/open/jthread.h index 7aec585..7bd0a09 100644 --- a/vm/include/open/jthread.h +++ b/vm/include/open/jthread.h @@ -85,8 +85,6 @@ IDATA jthread_create(JNIEnv * jni_env, jthread thread, jthread_threadattr_t *att IDATA jthread_create_with_function(JNIEnv * jni_env, jthread thread, jthread_threadattr_t *attrs, jvmtiStartFunction proc, const void* arg); IDATA jthread_attach(JNIEnv * jni_env, jthread thread, jboolean daemon); IDATA jthread_detach(jthread thread); -IDATA jthread_join(jthread thread); -IDATA jthread_timed_join(jthread thread, jlong millis, jint nanos); IDATA jthread_yield(); IDATA jthread_stop(jthread thread); IDATA jthread_exception_stop(jthread thread, jobject throwable); diff --git a/vm/tests/unit/thread/test_java_basic.c b/vm/tests/unit/thread/test_java_basic.c index 8071afc..169a817 100644 --- a/vm/tests/unit/thread/test_java_basic.c +++ b/vm/tests/unit/thread/test_java_basic.c @@ -23,12 +23,6 @@ #include "thread_private.h" /* - * Time for jthread_timed_join() to wait - * set in test_jthread_timed_join() and used in run_for_test_jthread_timed_join() - */ -int timed_join_wait_time; - -/* * Test jthread_attach() */ int HYTHREAD_PROC run_for_test_jthread_attach(void *args){ @@ -147,142 +141,6 @@ int test_hythread_create_with_function(void) { } /* - * Test jthread_join() - */ -void JNICALL run_for_test_jthread_join(jvmtiEnv * jvmti_env, JNIEnv * jni_env, void *args){ - - tested_thread_sturct_t * tts = (tested_thread_sturct_t *) args; - tested_thread_sturct_t * prev_tts = tts; - IDATA status; - - prev_tested_thread(&prev_tts); - if (prev_tts == NULL){ - // its the first tested thread - tts->phase = TT_PHASE_RUNNING; - tested_thread_started(tts); - tested_thread_wait_for_stop_request(tts); - tts->phase = TT_PHASE_DEAD; - tested_thread_ended(tts); - } else { - // wait until previous thread ends - tts->phase = TT_PHASE_WAITING_ON_JOIN; - tested_thread_started(tts); - status = jthread_join(prev_tts->java_thread); - tts->phase = (status == TM_ERROR_NONE ? TT_PHASE_DEAD : TT_PHASE_ERROR); - tested_thread_ended(tts); - } -} - -int test_jthread_join(void) { - - tested_thread_sturct_t * tts; - - tf_assert(MAX_TESTED_THREAD_NUMBER > 1); - - // Initialize tts structures and run all tested threads - tested_threads_run(run_for_test_jthread_join); - - reset_tested_thread_iterator(&tts); - next_tested_thread(&tts); - check_tested_thread_phase(tts, TT_PHASE_RUNNING); - while(next_tested_thread(&tts)){ - check_tested_thread_phase(tts, TT_PHASE_WAITING_ON_JOIN); - } - - // make the first thread terminated and test that all threads are terminated - reset_tested_thread_iterator(&tts); - next_tested_thread(&tts); - tested_thread_send_stop_request(tts); - tested_thread_wait_ended(tts); - while(next_tested_thread(&tts)){ - tested_thread_wait_ended(tts); - } - - // Terminate all threads (not needed here) and clear tts structures - tested_threads_destroy(); - - return TEST_PASSED; -} - -/* - * Test jthread_timed_join() - */ -void JNICALL run_for_test_jthread_timed_join(jvmtiEnv * jvmti_env, JNIEnv * jni_env, void *args){ - - tested_thread_sturct_t * tts = (tested_thread_sturct_t *) args; - tested_thread_sturct_t * prev_tts = tts; - IDATA status; - - prev_tested_thread(&prev_tts); - tts->phase = TT_PHASE_RUNNING; - tested_thread_started(tts); - if (prev_tts == NULL){ - tested_thread_wait_for_stop_request(tts); - tts->phase = TT_PHASE_DEAD; - } else { - // wait until timeout or previous thread ends - status = jthread_timed_join(prev_tts->java_thread, timed_join_wait_time, 0); - printf("-------- status = %08x (%i) %i\n", status, status, timed_join_wait_time); - tts->phase = TT_PHASE_DEAD; - if (timed_join_wait_time > CLICK_TIME_MSEC * 10){ - // must be thread end - //tts->phase = (status == TM_ERROR_NONE ? TT_PHASE_DEAD : TT_PHASE_ERROR); - } else { - // must be timeout - //tts->phase = (status == TM_ERROR_TIMEOUT ? TT_PHASE_DEAD : TT_PHASE_ERROR); - } - } - tested_thread_ended(tts); -} - -int test_jthread_timed_join(void) { - - tested_thread_sturct_t * tts; - - tf_assert(MAX_TESTED_THREAD_NUMBER > 1); - - /* - * Test for jthread_timed_join() exit due to timeout - */ - timed_join_wait_time = 10 * CLICK_TIME_MSEC; - // Initialize tts structures and run all tested threads - tested_threads_run(run_for_test_jthread_timed_join); - - // skip the first thread - reset_tested_thread_iterator(&tts); - next_tested_thread(&tts); - jthread_sleep(20 * CLICK_TIME_MSEC * MAX_TESTED_THREAD_NUMBER, 0); - while(next_tested_thread(&tts)){ - check_tested_thread_phase(tts, TT_PHASE_DEAD); - } - - // Terminate all threads and clear tts structures - tested_threads_destroy(); - - /* - * Test for jthread_timed_join() before timeout - */ - timed_join_wait_time = 1000 * CLICK_TIME_MSEC * MAX_TESTED_THREAD_NUMBER; - // Initialize tts structures and run all tested threads - tested_threads_run(run_for_test_jthread_timed_join); - - // make the first thread terminated and test that all threads are terminated - reset_tested_thread_iterator(&tts); - next_tested_thread(&tts); - tested_thread_send_stop_request(tts); - tested_thread_wait_ended(tts); - jthread_sleep(20 * CLICK_TIME_MSEC * MAX_TESTED_THREAD_NUMBER, 0); - while(next_tested_thread(&tts)){ - check_tested_thread_phase(tts, TT_PHASE_DEAD); - } - - // Terminate all threads and clear tts structures - tested_threads_destroy(); - - return TEST_PASSED; -} - -/* * Test jthread_exception_stop() */ void JNICALL run_for_test_jthread_exception_stop(jvmtiEnv * jvmti_env, JNIEnv * jni_env, void *args){ @@ -473,8 +331,6 @@ TEST_LIST_START TEST(test_hythread_create) TEST(test_hythread_create_with_function) TEST(test_jthread_get_JNI_env) - TEST(test_jthread_join) - TEST(test_jthread_timed_join) TEST(test_jthread_exception_stop) //TEST(test_jthread_stop) TEST(test_jthread_sleep) diff --git a/vm/thread/src/thread_java_basic.c b/vm/thread/src/thread_java_basic.c index 4bd8e8e..e5e7bdd 100644 --- a/vm/thread/src/thread_java_basic.c +++ b/vm/thread/src/thread_java_basic.c @@ -352,56 +352,6 @@ IDATA associate_native_and_java_thread(JNIEnv * jni_env, jthread java_thread, hy } /** - * Waits till the thread is finished. - * - * @param[in] java_thread a thread to wait for - * @return TM_THREAD_TIMEOUT or TM_THREAD_INTERRUPTED or 0 in case thread - * was successfully joined. - * @sa java.lang.Thread.join() - */ -IDATA jthread_join(jthread java_thread) { - IDATA status; - hythread_t tm_native_thread; - - if (java_thread == NULL) { - return TM_ERROR_NULL_POINTER; - } - tm_native_thread = jthread_get_native_thread(java_thread); - status = hythread_join_interruptable(tm_native_thread, 0, 0); - TRACE(("TM: jthread %d joined %d", hythread_self()->thread_id, tm_native_thread->thread_id)); - - return status; -} - -/** - * Waits till the thread is finished with specific timeout. - * - * @param[in] java_thread a thread to wait for - * @param[in] millis timeout in milliseconds to wait - * @param[in] nanos timeout in nanoseconds to wait - * @return TM_THREAD_TIMEOUT or TM_THREAD_INTERRUPTED or 0 in case thread - * was successfully joined. - * @sa java.lang.Thread.join() - */ -IDATA jthread_timed_join(jthread java_thread, jlong millis, jint nanos) { - - hythread_t tm_native_thread; - IDATA status; - - if (java_thread == NULL) { - return TM_ERROR_NULL_POINTER; - } - tm_native_thread = jthread_get_native_thread(java_thread); - if (!tm_native_thread) { - return TM_ERROR_NONE; - } - status = hythread_join_interruptable(tm_native_thread, millis, nanos); - TRACE(("TM: jthread %d joined %d", hythread_self()->thread_id, tm_native_thread->thread_id)); - - return status; -} - -/** * Lets an another thread to pass. * @sa java.lang.Thread.yield() */ diff --git a/vm/vmcore/src/kernel_classes/javasrc/java/lang/VMThreadManager.java b/vm/vmcore/src/kernel_classes/javasrc/java/lang/VMThreadManager.java index f501898..f46423b 100644 --- a/vm/vmcore/src/kernel_classes/javasrc/java/lang/VMThreadManager.java +++ b/vm/vmcore/src/kernel_classes/javasrc/java/lang/VMThreadManager.java @@ -132,16 +132,6 @@ final class VMThreadManager { /** * This method satisfies the requirements of the specification for the - * {@link Thread#join(long, int) Thread.join(long timeout, int nanos)} - * method. But it doesn't throw an IllegalArgumentException - * exception. The millis and nanos arguments - * must be valid. - * @api2vm - */ - static native int join(Thread thread, long millis, int nanos); - - /** - * This method satisfies the requirements of the specification for the * {@link Object#notify() Object.notify()} method. * @api2vm */ diff --git a/vm/vmcore/src/kernel_classes/native/java_lang_VMThreadManager.cpp b/vm/vmcore/src/kernel_classes/native/java_lang_VMThreadManager.cpp index b366f5c..009b77d 100644 --- a/vm/vmcore/src/kernel_classes/native/java_lang_VMThreadManager.cpp +++ b/vm/vmcore/src/kernel_classes/native/java_lang_VMThreadManager.cpp @@ -233,18 +233,6 @@ JNIEXPORT jboolean JNICALL Java_java_lang_VMThreadManager_isAlive printf ("isnot\n"); return false; } - -/* - * Class: java_lang_VMThreadManager - * Method: join - * Signature: (Ljava/lang/Thread;JI)I - */ -JNIEXPORT jint JNICALL Java_java_lang_VMThreadManager_join - (JNIEnv * UNREF jenv, jclass clazz, jobject thread, jlong millis, jint nanos) -{ - return jthread_timed_join(thread, millis, nanos); -} - /* * Class: java_lang_VMThreadManager * Method: getState -- 1.4.1.g4455