aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1999-11-04 16:45:11 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-11-04 16:45:11 +0000
commit16f39e241a77a9ac573802b131977d1a91294e3a (patch)
treea54f7fc855dc962968ba459fc5ba42c878180df3 /libjava
parent063174eeda2581061573010014d3f56eb040acb9 (diff)
downloadgcc-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/ChangeLog17
-rw-r--r--libjava/include/no-threads.h13
-rw-r--r--libjava/include/posix-threads.h12
-rw-r--r--libjava/include/quick-threads.h13
-rw-r--r--libjava/java/lang/Thread.java4
-rw-r--r--libjava/java/lang/natThread.cc7
-rw-r--r--libjava/posix-threads.cc23
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))
{