diff options
author | Tom Tromey <tromey@cygnus.com> | 1999-11-04 16:45:11 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-11-04 16:45:11 +0000 |
commit | 16f39e241a77a9ac573802b131977d1a91294e3a (patch) | |
tree | a54f7fc855dc962968ba459fc5ba42c878180df3 /libjava | |
parent | 063174eeda2581061573010014d3f56eb040acb9 (diff) | |
download | gcc-16f39e241a77a9ac573802b131977d1a91294e3a.zip gcc-16f39e241a77a9ac573802b131977d1a91294e3a.tar.gz gcc-16f39e241a77a9ac573802b131977d1a91294e3a.tar.bz2 |
quick-threads.h (_Jv_ThreadCancel): Removed.
* include/quick-threads.h (_Jv_ThreadCancel): Removed.
(_Jv_ThreadDestroy): Likewise.
* include/no-threads.h (_Jv_ThreadCancel): Removed.
(_Jv_ThreadDestroy): Likewise.
* include/posix-threads.h (struct _Jv_Thread_t): Removed
`exception' field.
(_Jv_ThreadCancel): Removed decl.
(_Jv_ThreadDestroy): Removed.
* posix-threads.cc (_Jv_ThreadCancel): Removed.
(throw_cleanup): Removed.
(really_start): Don't push or pop cleanup.
(_Jv_ThreadInitData): Don't initialize `exception' field.
* java/lang/Thread.java (stop): Officially unimplemented.
* java/lang/natThread.cc (stop): Officially unimplemented.
From-SVN: r30392
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 17 | ||||
-rw-r--r-- | libjava/include/no-threads.h | 13 | ||||
-rw-r--r-- | libjava/include/posix-threads.h | 12 | ||||
-rw-r--r-- | libjava/include/quick-threads.h | 13 | ||||
-rw-r--r-- | libjava/java/lang/Thread.java | 4 | ||||
-rw-r--r-- | libjava/java/lang/natThread.cc | 7 | ||||
-rw-r--r-- | libjava/posix-threads.cc | 23 |
7 files changed, 21 insertions, 68 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 012848e..b1107ff 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,20 @@ +1999-11-04 Tom Tromey <tromey@cygnus.com> + + * include/quick-threads.h (_Jv_ThreadCancel): Removed. + (_Jv_ThreadDestroy): Likewise. + * include/no-threads.h (_Jv_ThreadCancel): Removed. + (_Jv_ThreadDestroy): Likewise. + * include/posix-threads.h (struct _Jv_Thread_t): Removed + `exception' field. + (_Jv_ThreadCancel): Removed decl. + (_Jv_ThreadDestroy): Removed. + * posix-threads.cc (_Jv_ThreadCancel): Removed. + (throw_cleanup): Removed. + (really_start): Don't push or pop cleanup. + (_Jv_ThreadInitData): Don't initialize `exception' field. + * java/lang/Thread.java (stop): Officially unimplemented. + * java/lang/natThread.cc (stop): Officially unimplemented. + 1999-11-02 Bryce McKinlay <bryce@albatross.co.nz> * posix-threads.cc: Don't include boehm-config.h. Include gcconfig.h diff --git a/libjava/include/no-threads.h b/libjava/include/no-threads.h index 5de3386..d59d7af 100644 --- a/libjava/include/no-threads.h +++ b/libjava/include/no-threads.h @@ -125,19 +125,6 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *, jint) { } -inline void -_Jv_ThreadCancel (_Jv_Thread_t *, void *) -{ - JvFail ("_Jv_ThreadCancel"); -} - -// Like Cancel, but doesn't run cleanups. -inline void -_Jv_ThreadDestroy (_Jv_Thread_t *) -{ - JvFail ("_Jv_ThreadDestroy"); -} - void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, _Jv_ThreadStartFunc *meth); diff --git a/libjava/include/posix-threads.h b/libjava/include/posix-threads.h index 5c6cc7b..f4952835 100644 --- a/libjava/include/posix-threads.h +++ b/libjava/include/posix-threads.h @@ -76,9 +76,6 @@ typedef struct // Actual thread id. pthread_t thread; - - // Exception we want to throw when cancelled. - void *exception; } _Jv_Thread_t; typedef void _Jv_ThreadStartFunc (java::lang::Thread *); @@ -268,15 +265,6 @@ _Jv_ThreadYield (void) void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); -void _Jv_ThreadCancel (_Jv_Thread_t *data, void *error); - -// Like Cancel, but doesn't run cleanups. -inline void -_Jv_ThreadDestroy (_Jv_Thread_t *) -{ - JvFail ("_Jv_ThreadDestroy"); -} - void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStartFunc *meth); diff --git a/libjava/include/quick-threads.h b/libjava/include/quick-threads.h index 4626add..eb5b916 100644 --- a/libjava/include/quick-threads.h +++ b/libjava/include/quick-threads.h @@ -113,19 +113,6 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *, jint) { } -inline void -_Jv_ThreadCancel (_Jv_Thread_t *data, void *error) -{ - coop_terminate (*data, error); -} - -// Like Cancel, but doesn't run cleanups. -inline void -_Jv_ThreadDestroy (_Jv_Thread_t *data) -{ - coop_terminate (*data, 0); -} - void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStartFunc *meth); diff --git a/libjava/java/lang/Thread.java b/libjava/java/lang/Thread.java index f21d3a3..7d17243 100644 --- a/libjava/java/lang/Thread.java +++ b/libjava/java/lang/Thread.java @@ -181,7 +181,9 @@ public class Thread implements Runnable public final void stop () { - stop (new ThreadDeath ()); + // Argument doesn't matter, because this is no longer + // supported. + stop (null); } public final synchronized native void stop (Throwable e); diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc index c9d115c..b40e8bf 100644 --- a/libjava/java/lang/natThread.cc +++ b/libjava/java/lang/natThread.cc @@ -304,12 +304,7 @@ java::lang::Thread::start (void) void java::lang::Thread::stop (java::lang::Throwable *e) { - JvSynchronize sync (this); - checkAccess (); - if (! e) - _Jv_Throw (new NullPointerException); - natThread *nt = (natThread *) data; - _Jv_ThreadCancel (nt->thread, e); + JvFail ("java::lang::Thread::stop unimplemented"); } void diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc index ffd2f62..19c7241 100644 --- a/libjava/posix-threads.cc +++ b/libjava/posix-threads.cc @@ -284,7 +284,6 @@ _Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *) _Jv_Thread_t *info = new _Jv_Thread_t; info->flags = 0; - info->exception = NULL; // FIXME register a finalizer for INFO here. // FIXME also must mark INFO somehow. @@ -304,26 +303,6 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio) } } - -// This is called as a cleanup handler when a thread is exiting. We -// use it to throw the requested exception. It's entirely possible -// that this approach is doomed to failure, in which case we'll need -// to adopt some alternate. For instance, use a signal to implement -// _Jv_ThreadCancel. -static void -throw_cleanup (void *data) -{ - _Jv_Thread_t *td = (_Jv_Thread_t *) data; - _Jv_Throw ((java::lang::Throwable *) td->exception); -} - -void -_Jv_ThreadCancel (_Jv_Thread_t *data, void *error) -{ - data->exception = error; - pthread_cancel (data->thread); -} - // This function is called when a thread is started. We don't arrange // to call the `run' method directly, because this function must // return a value. @@ -332,11 +311,9 @@ really_start (void *x) { struct starter *info = (struct starter *) x; - pthread_cleanup_push (throw_cleanup, info->data); pthread_setspecific (_Jv_ThreadKey, info->object); pthread_setspecific (_Jv_ThreadDataKey, info->data); info->method (info->object); - pthread_cleanup_pop (0); if (! (info->data->flags & FLAG_DAEMON)) { |