You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jg...@apache.org on 2007/09/07 01:06:27 UTC
svn commit: r573407 - in
/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc:
AsyncHttpClient.java codec/HttpIoHandler.java
Author: jgenender
Date: Thu Sep 6 16:06:27 2007
New Revision: 573407
URL: http://svn.apache.org/viewvc?rev=573407&view=rev
Log:
Use concurrent queue
Modified:
geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/AsyncHttpClient.java
geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java
Modified: geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/AsyncHttpClient.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/AsyncHttpClient.java?rev=573407&r1=573406&r2=573407&view=diff
==============================================================================
--- geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/AsyncHttpClient.java (original)
+++ geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/AsyncHttpClient.java Thu Sep 6 16:06:27 2007
@@ -37,6 +37,7 @@
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
+import java.util.concurrent.ConcurrentLinkedQueue;
public class AsyncHttpClient {
@@ -51,7 +52,7 @@
private IoSession session;
private AsyncHttpClientCallback callback;
private int requestTimeout = DEFAULT_REQUEST_TIMEOUT;
- private List<HttpRequestMessage> sendQueue = Collections.synchronizedList(new LinkedList<HttpRequestMessage>());
+ private ConcurrentLinkedQueue<HttpRequestMessage> sendQueue = new ConcurrentLinkedQueue<HttpRequestMessage>();
private ConnectionListener connectionListener = new ConnectionListener();
public AsyncHttpClient(URL url, AsyncHttpClientCallback callback) {
@@ -125,9 +126,11 @@
private synchronized void processSendQueue() {
if (session != null && session.isConnected()) {
- while (sendQueue.size() > 0) {
+ while (true) {
//Process messages in FIFO
- HttpRequestMessage message = sendQueue.remove(0);
+ HttpRequestMessage message = sendQueue.poll();
+ if (message == null)
+ break;
session.write(message);
}
}
Modified: geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java?rev=573407&r1=573406&r2=573407&view=diff
==============================================================================
--- geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java (original)
+++ geronimo/sandbox/AsyncHttpClient/src/main/java/org/apache/ahc/codec/HttpIoHandler.java Thu Sep 6 16:06:27 2007
@@ -27,10 +27,7 @@
import java.util.LinkedList;
import java.util.Collections;
import java.util.List;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.*;
public class HttpIoHandler extends IoHandlerAdapter {
@@ -38,7 +35,7 @@
public final static String CONNECTION_CLOSE = "close";
private AsyncHttpClientCallback callback;
- private List<HttpRequestMessage> sentQueue = Collections.synchronizedList(new LinkedList<HttpRequestMessage>());
+ private ConcurrentLinkedQueue<HttpRequestMessage> sentQueue = new ConcurrentLinkedQueue<HttpRequestMessage>();
private ScheduledThreadPoolExecutor scheduler = null;
private int timeoutDelay;
private AsyncHttpClient.ConnectionListener connectionListener = null;
@@ -64,7 +61,7 @@
//For each send, we should have a response
HttpResponseMessage response = (HttpResponseMessage) object;
//Remove the sent message
- HttpRequestMessage request = sentQueue.remove(0);
+ HttpRequestMessage request = sentQueue.poll();
ScheduledFuture handle = request.getTimeoutHandle();
if (handle != null) {