From 96829835266e3d3040e669ba8bd7a3295411b222 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 18 Mar 2005 19:08:18 +0000 Subject: [PATCH] We can't rely on the connection manager not being shutdown to determine whether or not we're already shutdown as it may have shutdown unexpectedly. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3415 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/presents/server/PresentsServer.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/java/com/threerings/presents/server/PresentsServer.java b/src/java/com/threerings/presents/server/PresentsServer.java index 690d687e9..a65b98582 100644 --- a/src/java/com/threerings/presents/server/PresentsServer.java +++ b/src/java/com/threerings/presents/server/PresentsServer.java @@ -259,17 +259,21 @@ public class PresentsServer */ public void shutdown () { + ObserverList downers = _downers; + if (downers == null) { + Log.warning("Refusing repeat shutdown request."); + return; + } + _downers = null; + // shut down the connection manager (this will cease all network // activity but not actually close the connections) if (conmgr.isRunning()) { conmgr.shutdown(); - } else { - Log.warning("Refusing repeat shutdown request."); - return; } // shut down all shutdown participants - _downers.apply(new ObserverList.ObserverOp() { + downers.apply(new ObserverList.ObserverOp() { public boolean apply (Object observer) { ((Shutdowner)observer).shutdown(); return true;