You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2008/03/22 15:35:40 UTC
svn commit: r640002 - in
/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr:
AprIoProcessor.java AprSocketAcceptor.java
Author: trustin
Date: Sat Mar 22 07:35:39 2008
New Revision: 640002
URL: http://svn.apache.org/viewvc?rev=640002&view=rev
Log:
Applied the same fix to AprIoProcessor and AprSocketAcceptor
Modified:
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=640002&r1=640001&r2=640002&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java Sat Mar 22 07:35:39 2008
@@ -51,7 +51,7 @@
new HashMap<Long, AprSession>(POLLSET_SIZE);
private final Object wakeupLock = new Object();
- private long wakeupSocket;
+ private final long wakeupSocket;
private volatile boolean toBeWakenUp;
private final long bufferPool; // memory pool
Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=640002&r1=640001&r2=640002&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java Sat Mar 22 07:35:39 2008
@@ -26,7 +26,7 @@
private static final int POLLSET_SIZE = 1024;
private final Object wakeupLock = new Object();
- private long wakeupSocket;
+ private volatile long wakeupSocket;
private volatile boolean toBeWakenUp;
private int backlog = 50;
@@ -37,7 +37,7 @@
private final long[] polledSockets = new long[POLLSET_SIZE << 1];
private final List<Long> polledHandles =
new CircularQueue<Long>(POLLSET_SIZE);
-
+
public AprSocketAcceptor() {
super(new DefaultSocketSessionConfig(), AprIoProcessor.class);
((DefaultSocketSessionConfig) getSessionConfig()).init(this);
@@ -84,7 +84,7 @@
try {
Socket.optSet(handle, Socket.APR_SO_NONBLOCK, 1);
Socket.timeoutSet(handle, 0);
-
+
// Configure the server socket,
Socket.optSet(handle, Socket.APR_SO_REUSEADDR, isReuseAddress()? 1 : 0);
Socket.optSet(handle, Socket.APR_SO_RCVBUF, getSessionConfig().getReceiveBufferSize());
@@ -100,7 +100,7 @@
} else {
sa = Address.info(Address.APR_ANYADDR, Socket.APR_INET, 0, 0, pool);
}
-
+
int result = Socket.bind(handle, sa);
if (result != Status.APR_SUCCESS) {
throwException(result);
@@ -109,7 +109,7 @@
if (result != Status.APR_SUCCESS) {
throwException(result);
}
-
+
result = Poll.add(pollset, handle, Poll.APR_POLLIN);
if (result != Status.APR_SUCCESS) {
throwException(result);
@@ -128,16 +128,16 @@
wakeupSocket = Socket.create(
Socket.APR_INET, Socket.SOCK_DGRAM, Socket.APR_PROTO_UDP, AprLibrary
.getInstance().getRootPool());
-
+
// initialize a memory pool for APR functions
pool = Pool.create(AprLibrary.getInstance().getRootPool());
-
+
pollset = Poll.create(
POLLSET_SIZE,
pool,
Poll.APR_POLLSET_THREADSAFE,
Long.MAX_VALUE);
-
+
if (pollset <= 0) {
pollset = Poll.create(
62,
@@ -180,7 +180,7 @@
if (rv != -120001) {
throwException(rv);
}
-
+
rv = Poll.maintain(pollset, polledSockets, true);
if (rv > 0) {
for (int i = 0; i < rv; i ++) {
@@ -189,7 +189,7 @@
} else if (rv < 0) {
throwException(rv);
}
-
+
return false;
} else {
rv <<= 1;
@@ -207,7 +207,7 @@
}
continue;
}
-
+
if ((flag & Poll.APR_POLLIN) != 0) {
polledHandles.add(socket);
}
@@ -235,7 +235,7 @@
if (toBeWakenUp) {
return;
}
-
+
// Add a dummy socket to the pollset.
synchronized (wakeupLock) {
toBeWakenUp = true;
@@ -295,7 +295,7 @@
public SocketSessionConfig getSessionConfig() {
return (SocketSessionConfig) super.getSessionConfig();
}
-
+
private void throwException(int code) throws IOException {
throw new IOException(
org.apache.tomcat.jni.Error.strerror(-code) +