diff options
Diffstat (limited to 'java/src/IceInternal/TcpAcceptor.java')
-rw-r--r-- | java/src/IceInternal/TcpAcceptor.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java index 8d1b8eb7b47..654c3fde933 100644 --- a/java/src/IceInternal/TcpAcceptor.java +++ b/java/src/IceInternal/TcpAcceptor.java @@ -26,10 +26,14 @@ class TcpAcceptor implements Acceptor _logger.trace(_traceLevels.networkCat, s); } - java.nio.channels.ServerSocketChannel fd = _fd; + java.nio.channels.ServerSocketChannel fd; + synchronized(this) + { + fd = _fd; + _fd = null; + } if(fd != null) { - _fd = null; try { fd.close(); @@ -130,7 +134,7 @@ class TcpAcceptor implements Acceptor } } - protected void + protected synchronized void finalize() throws Throwable { |