bloritsch 2004/05/05 14:44:29 Modified: event/impl project.xml event/impl/src/java/org/apache/excalibur/event/command TPCThreadManager.java Log: make threads run in background, as deamon threads Revision Changes Path 1.10 +1 -7 avalon-excalibur/event/impl/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/avalon-excalibur/event/impl/project.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- project.xml 2 Apr 2004 05:53:14 -0000 1.9 +++ project.xml 5 May 2004 21:44:29 -0000 1.10 @@ -44,12 +44,6 @@ <id>commons-collections</id> <version>2.1</version> </dependency> - - <dependency> - <groupId>excalibur-instrument</groupId> - <artifactId>excalibur-instrument</artifactId> - <version>1.2</version> - </dependency> <dependency> <groupId>excalibur-pool</groupId> <artifactId>excalibur-pool-api</artifactId> @@ -63,7 +57,7 @@ <dependency> <groupId>concurrent</groupId> <artifactId>concurrent</artifactId> - <version>1.3.1</version> + <version>1.3.3</version> </dependency> <dependency> 1.5 +12 -1 avalon-excalibur/event/impl/src/java/org/apache/excalibur/event/command/TPCThreadManager.java Index: TPCThreadManager.java =================================================================== RCS file: /home/cvs/avalon-excalibur/event/impl/src/java/org/apache/excalibur/event/command/TPCThreadManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- TPCThreadManager.java 28 Feb 2004 11:47:26 -0000 1.4 +++ TPCThreadManager.java 5 May 2004 21:44:29 -0000 1.5 @@ -23,6 +23,7 @@ import org.apache.excalibur.util.SystemUtil; import EDU.oswego.cs.dl.util.concurrent.PooledExecutor; +import EDU.oswego.cs.dl.util.concurrent.ThreadFactory; /** * This is a ThreadManager that uses a certain number of threads per @@ -104,11 +105,21 @@ throw new IllegalStateException( "ThreadManager is already initailized" ); } - final int maxPoolSize = ( m_processors * m_threadsPerProcessor ) + 1; + final int maxPoolSize = Math.max(( m_processors * m_threadsPerProcessor ) + 1, m_processors + 1); m_threadPool = new PooledExecutor( m_processors + 1 ); m_threadPool.setMinimumPoolSize( 2 ); // at least two threads m_threadPool.setMaximumPoolSize( maxPoolSize ); m_threadPool.waitWhenBlocked(); + m_threadPool.setThreadFactory( new ThreadFactory() { + public Thread newThread(Runnable run) { + Thread newThread = new Thread(run); + + newThread.setDaemon( true ); + newThread.setPriority( Thread.MIN_PRIORITY ); + + return newThread; + } + }); if( maxPoolSize == 2 ) { // The PooledExecutor has an inherent race condition between releasing threads
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]