From 901e0ba745d0e8182b36e592e8c268e416ca3b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=B0=E5=B9=B3=E7=BA=BF?= <22250530@qq.com> Date: Wed, 23 Sep 2015 18:11:29 +0800 Subject: [PATCH] --- .../wentch/redkale/net/socks/SocksRunner.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java b/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java index edab37979..1132c5a03 100644 --- a/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java +++ b/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java @@ -153,17 +153,20 @@ public class SocksRunner implements Runnable { new StreamCompletionHandler(remoteChannel, channel).completed(0, null); } - public synchronized void closeRunner(final Throwable e) { + public void closeRunner(final Throwable e) { if (closed) return; - closed = true; - try { - channel.close(); - } catch (Throwable t) { - } - context.offerBuffer(buffer); - buffer = null; - if (e != null && finest) { - logger.log(Level.FINEST, "close socks channel by error", e); + synchronized (this) { + if (closed) return; + closed = true; + try { + channel.close(); + } catch (Throwable t) { + } + context.offerBuffer(buffer); + buffer = null; + if (e != null && finest) { + logger.log(Level.FINEST, "close socks channel by error", e); + } } }