[jboss-remoting-commits] JBoss Remoting SVN: r6253 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Wed Feb 23 17:25:14 EST 2011
Author: ron.sigal at jboss.com
Date: 2011-02-23 17:25:14 -0500 (Wed, 23 Feb 2011)
New Revision: 6253
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java
Log:
JBREM-1261: (1) Limited number of threads; (2) set timeout for Socket.read().
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java 2011-02-23 22:23:27 UTC (rev 6252)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java 2011-02-23 22:25:14 UTC (rev 6253)
@@ -53,7 +53,9 @@
import org.jboss.remoting.transport.socket.SocketServerInvoker;
import org.jboss.logging.Logger;
+import EDU.oswego.cs.dl.util.concurrent.Semaphore;
+
/**
*
* @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
@@ -861,6 +863,7 @@
{
private ServerSocket secondaryServerSocket;
boolean running = true;
+ Semaphore maxThreads = new Semaphore(maxPoolSize);
SecondaryServerSocketThread(ServerSocket secondaryServerSocket) throws IOException
{
@@ -896,6 +899,19 @@
void processSocket(final Socket socket) throws IOException
{
+ while (true)
+ {
+ try
+ {
+ maxThreads.acquire();
+ break;
+ }
+ catch (InterruptedException e1)
+ {
+ log.trace("unexpected interrupt");
+ }
+ }
+
new Thread()
{
public void run()
@@ -904,6 +920,7 @@
if (log.isTraceEnabled()) log.trace(this + " processing socket: " + socket);
try
{
+ socket.setSoTimeout(DEFAULT_TIMEOUT_PERIOD);
DataInputStream dis = new DataInputStream(socket.getInputStream());
int action = dis.read();
String listenerId = dis.readUTF();
@@ -954,6 +971,7 @@
finally
{
if (log.isTraceEnabled()) log.trace(this + " processed socket: " + socket);
+ maxThreads.release();
}
}
}.start();
More information about the jboss-remoting-commits
mailing list