Commit 6dfd8a77 by Bryce McKinlay Committed by Bryce McKinlay

ThreadGroup.java: Merged with classpath.

2000-06-20  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/ThreadGroup.java: Merged with classpath.
	* prims.cc (_Jv_RunMain): Don't use ain_group'.
	* gnu/gcj/runtime/FirstThread.java: Remove ThreadGroup constructor
	argument.
	* java/lang/Thread.java (Thread): Bootstrap initial thread from
	ThreadGroup.root if Thread.currentThread is null. Honour the
	ThreadGroup's max priority setting.

From-SVN: r34615
parent 83fb52d8
2000-06-20 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/ThreadGroup.java: Merged with classpath.
* prims.cc (_Jv_RunMain): Don't use `main_group'.
* gnu/gcj/runtime/FirstThread.java: Remove ThreadGroup constructor
argument.
* java/lang/Thread.java (Thread): Bootstrap initial thread from
ThreadGroup.root if Thread.currentThread is null. Honour the
ThreadGroup's max priority setting.
2000-06-18 Tom Tromey <tromey@cygnus.com> 2000-06-18 Tom Tromey <tromey@cygnus.com>
* java/lang/natClass.cc (forName): Removed dead code. Initialize * java/lang/natClass.cc (forName): Removed dead code. Initialize
......
...@@ -21,17 +21,17 @@ final class FirstThread extends Thread ...@@ -21,17 +21,17 @@ final class FirstThread extends Thread
{ {
public native void run (); public native void run ();
public FirstThread (ThreadGroup g, Class k, Object o) public FirstThread (Class k, Object o)
{ {
super (g, null, "main"); super (null, null, "main");
klass = k; klass = k;
klass_name = null; klass_name = null;
args = o; args = o;
} }
public FirstThread (ThreadGroup g, String class_name, Object o) public FirstThread (String class_name, Object o)
{ {
super (g, null, "main"); super (null, null, "main");
klass = null; klass = null;
klass_name = class_name; klass_name = class_name;
args = o; args = o;
......
...@@ -198,19 +198,21 @@ public class Thread implements Runnable ...@@ -198,19 +198,21 @@ public class Thread implements Runnable
public Thread (ThreadGroup g, Runnable r, String n) public Thread (ThreadGroup g, Runnable r, String n)
{ {
// Note that CURRENT can be null when we are creating the very
// first thread. That's why we check it below.
Thread current = currentThread (); Thread current = currentThread ();
if (g != null) if (g == null)
{ {
// If CURRENT is null, then we are creating the first thread. // If CURRENT is null, then we are bootstrapping the first thread.
// In this case we don't do the security check. // Use ThreadGroup.root, the main threadgroup.
if (current != null) if (current == null)
g.checkAccess(); group = ThreadGroup.root;
else
group = current.getThreadGroup();
} }
else else
g = current.getThreadGroup(); group = g;
group.checkAccess();
// The Class Libraries book says ``threadName cannot be null''. I // The Class Libraries book says ``threadName cannot be null''. I
// take this to mean NullPointerException. // take this to mean NullPointerException.
...@@ -218,8 +220,7 @@ public class Thread implements Runnable ...@@ -218,8 +220,7 @@ public class Thread implements Runnable
throw new NullPointerException (); throw new NullPointerException ();
name = n; name = n;
group = g; group.add(this);
g.add(this);
runnable = r; runnable = r;
data = null; data = null;
...@@ -230,7 +231,9 @@ public class Thread implements Runnable ...@@ -230,7 +231,9 @@ public class Thread implements Runnable
if (current != null) if (current != null)
{ {
daemon_flag = current.isDaemon(); daemon_flag = current.isDaemon();
priority = current.getPriority(); int gmax = group.getMaxPriority();
int pri = current.getPriority();
priority = (gmax < pri ? gmax : pri);
} }
else else
{ {
......
...@@ -637,9 +637,6 @@ JvConvertArgv (int argc, const char **argv) ...@@ -637,9 +637,6 @@ JvConvertArgv (int argc, const char **argv)
// Command line arguments. // Command line arguments.
static jobject arg_vec; static jobject arg_vec;
// The primary threadgroup.
static java::lang::ThreadGroup *main_group;
// The primary thread. // The primary thread.
static java::lang::Thread *main_thread; static java::lang::Thread *main_thread;
...@@ -882,9 +879,7 @@ JvRunMain (jclass klass, int argc, const char **argv) ...@@ -882,9 +879,7 @@ JvRunMain (jclass klass, int argc, const char **argv)
#endif #endif
arg_vec = JvConvertArgv (argc - 1, argv + 1); arg_vec = JvConvertArgv (argc - 1, argv + 1);
main_group = new java::lang::ThreadGroup (23); main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec);
main_thread = new gnu::gcj::runtime::FirstThread (main_group,
klass, arg_vec);
main_thread->start(); main_thread->start();
_Jv_ThreadWait (); _Jv_ThreadWait ();
...@@ -906,9 +901,7 @@ _Jv_RunMain (const char *class_name, int argc, const char **argv) ...@@ -906,9 +901,7 @@ _Jv_RunMain (const char *class_name, int argc, const char **argv)
#endif #endif
arg_vec = JvConvertArgv (argc - 1, argv + 1); arg_vec = JvConvertArgv (argc - 1, argv + 1);
main_group = new java::lang::ThreadGroup (23); main_thread = new gnu::gcj::runtime::FirstThread (JvNewStringLatin1 (class_name),
main_thread = new gnu::gcj::runtime::FirstThread (main_group,
JvNewStringLatin1 (class_name),
arg_vec); arg_vec);
main_thread->start(); main_thread->start();
_Jv_ThreadWait (); _Jv_ThreadWait ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment