From 2ebcedd42cd990b3945707d669e65f6321b0d416 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 26 Sep 2014 11:10:10 +0200 Subject: Check if queue is empty before wait(). Possible deadlock when proxy event arrives just before thread switches to waiting. --- src/main/java/com/c2kernel/entity/proxy/ProxyServer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/c2kernel') diff --git a/src/main/java/com/c2kernel/entity/proxy/ProxyServer.java b/src/main/java/com/c2kernel/entity/proxy/ProxyServer.java index c576cda..6778794 100644 --- a/src/main/java/com/c2kernel/entity/proxy/ProxyServer.java +++ b/src/main/java/com/c2kernel/entity/proxy/ProxyServer.java @@ -52,9 +52,11 @@ public class ProxyServer implements Runnable { client.sendMessage(message); } } - } else + } else try { - synchronized(this) { wait(); } + synchronized(this) { + if (messageQueue.isEmpty()) wait(); + } } catch (InterruptedException e) { } } -- cgit v1.2.3