Thread.java (Thread(ThreadGroup, Runnable, String)): Pass new parameter constructor.

* java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass
	new parameter constructor.
	(Thread(ThreadGroup, Runnable, String, long)): Same.
	(Thread(String, boolean)): New constructor.
	(Thread(Thread, ThreadGroup, Runnable, String): Add parameter
	noInheritableThreadLocal, don't call
	InheritableThreadLocal.newChildThread if set.
	* java/lang/PosixProcess.java(ProcessManager()): Set
	noInheritableThreadLocal in super.
	* java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new
	parameter to Thread constructor.
	(_Jv_AttachCurrentThreadAsDaemon): Same.
	* java/lang/Thread.h: Regenerate.
	* classpath/lib/java/lang/Thread.class: Same.
	* classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same.
	* classpath/lib/java/lang/PosixProcess.class: Same.
	* classpath/lib/java/lang/Thread$State.class: Same.
	* classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.

From-SVN: r122054
This commit is contained in:
David Daney 2007-02-16 21:23:10 +00:00 committed by David Daney
parent d16c4b1a16
commit 599b39ce9d
10 changed files with 55 additions and 8 deletions

View file

@ -42,7 +42,12 @@ final class PosixProcess extends Process
ProcessManager()
{
super("ProcessManager");
// Use package private Thread constructor to place us in the
// root ThreadGroup with no InheritableThreadLocal. If the
// InheritableThreadLocals were allowed to initialize, they could
// cause a Runtime.exec() to be called causing infinite
// recursion.
super("ProcessManager", true);
// Don't keep the (main) process from exiting on our account.
this.setDaemon(true);
}