Skip to content

Commit 44a1ee4

Browse files
committed
Remove uses of unbounded queues
1 parent 8c5766a commit 44a1ee4

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/main/java/org/java_websocket/WebSocketImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import java.util.Collections;
3636
import java.util.List;
3737
import java.util.concurrent.BlockingQueue;
38-
import java.util.concurrent.LinkedBlockingQueue;
38+
import java.util.concurrent.ArrayBlockingQueue;
3939
import javax.net.ssl.SSLSession;
4040
import org.java_websocket.drafts.Draft;
4141
import org.java_websocket.drafts.Draft_6455;
@@ -203,8 +203,8 @@ public WebSocketImpl(WebSocketListener listener, Draft draft) {
203203
if (listener == null || (draft == null && role == Role.SERVER)) {
204204
throw new IllegalArgumentException("parameters must not be null");
205205
}
206-
this.outQueue = new LinkedBlockingQueue<>();
207-
inQueue = new LinkedBlockingQueue<>();
206+
this.outQueue = new ArrayBlockingQueue<>(4096);
207+
inQueue = new ArrayBlockingQueue<>(4096);
208208
this.wsl = listener;
209209
this.role = Role.CLIENT;
210210
if (draft != null) {
@@ -737,7 +737,11 @@ private void write(ByteBuffer buf) {
737737
log.trace("write({}): {}", buf.remaining(),
738738
buf.remaining() > 1000 ? "too big to display" : new String(buf.array()));
739739

740-
outQueue.add(buf);
740+
try {
741+
outQueue.put(buf);
742+
} catch (InterruptedException e) {
743+
throw new RuntimeException(e);
744+
}
741745
wsl.onWriteDemand(this);
742746
}
743747

src/main/java/org/java_websocket/server/WebSocketServer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ public WebSocketServer(InetSocketAddress address, int decodercount, List<Draft>
245245
this.connections = connectionscontainer;
246246
setTcpNoDelay(false);
247247
setReuseAddr(false);
248-
iqueue = new LinkedList<>();
248+
iqueue = new ArrayDeque<>();
249249

250250
decoders = new ArrayList<>(decodercount);
251-
buffers = new LinkedBlockingQueue<>();
251+
buffers = new LinkedBlockingQueue<>(4096);
252252
for (int i = 0; i < decodercount; i++) {
253253
WebSocketWorker ex = new WebSocketWorker();
254254
decoders.add(ex);
@@ -1111,7 +1111,7 @@ public class WebSocketWorker extends Thread {
11111111
private BlockingQueue<WebSocketImpl> iqueue;
11121112

11131113
public WebSocketWorker() {
1114-
iqueue = new LinkedBlockingQueue<>();
1114+
iqueue = new LinkedBlockingQueue<>(4096);
11151115
setName("WebSocketWorker-" + getId());
11161116
setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
11171117
@Override

0 commit comments

Comments
 (0)