public Acceptor shutdown() {
        try {
            serverChannel.socket().close();
        } catch (Exception e1) {
            log.log(Level.WARNING, "Error closing server socket", e1);
            Thread.yield(); // throw some salt over the shoulder
            try {
                serverChannel.socket().close();
            } catch (Exception e2) {
                log.log(Level.WARNING, "Error closing server socket", e2);
                Thread.yield(); // throw some salt over the shoulder
                try {
                    serverChannel.socket().close();
                } catch (Exception e3) {
                    log.log(Level.WARNING, "Error closing server socket", e3);
                    throw new Error("Error closing server socket 3 times", e3);
                }
            }
        } finally {
            shutdownGate.countDown();
        }
        return this;
    }
Initiate controlled shutdown of the acceptor thread

@return this object, to enable chaining with {@link #join join}
jrt/src/com/yahoo/jrt/Acceptor.java