3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-01 01:09:22 +01:00

Move control.tried_shutdown to world.shutting_down

This commit is contained in:
James Lu 2017-08-31 13:36:46 -07:00
parent 19bd3ec0b2
commit 82a7b914b6
3 changed files with 8 additions and 7 deletions

View File

@ -26,7 +26,6 @@ except ImportError:
from . import world, utils, structures, conf, __version__ from . import world, utils, structures, conf, __version__
from .log import * from .log import *
from .coremods import control
from .utils import ProtocolError # Compatibility with PyLink 1.x from .utils import ProtocolError # Compatibility with PyLink 1.x
### Internal classes (users, servers, channels) ### Internal classes (users, servers, channels)
@ -1265,7 +1264,7 @@ class IRCNetwork(PyLinkNetworkCoreWithUtils):
def _log_connection_error(self, *args, **kwargs): def _log_connection_error(self, *args, **kwargs):
# Log connection errors to ERROR unless were shutting down (in which case, # Log connection errors to ERROR unless were shutting down (in which case,
# the given text goes to DEBUG). # the given text goes to DEBUG).
if self._aborted.is_set() or control.tried_shutdown: if self._aborted.is_set() or world.shutting_down.is_set():
log.debug(*args, **kwargs) log.debug(*args, **kwargs)
else: else:
log.error(*args, **kwargs) log.error(*args, **kwargs)

View File

@ -11,8 +11,6 @@ from pylinkirc import world, utils, conf # Do not import classes, it'll import
from pylinkirc.log import log, makeFileLogger, stopFileLoggers, getConsoleLogLevel from pylinkirc.log import log, makeFileLogger, stopFileLoggers, getConsoleLogLevel
from . import permissions from . import permissions
tried_shutdown = False
def remove_network(ircobj): def remove_network(ircobj):
"""Removes a network object from the pool.""" """Removes a network object from the pool."""
# Disable autoconnect first by setting the delay negative. # Disable autoconnect first by setting the delay negative.
@ -57,12 +55,11 @@ atexit.register(_kill_plugins)
def shutdown(irc=None): def shutdown(irc=None):
"""Shuts down the Pylink daemon.""" """Shuts down the Pylink daemon."""
global tried_shutdown if world.shutting_down.is_set(): # We froze on shutdown last time, so immediately abort.
if tried_shutdown: # We froze on shutdown last time, so immediately abort.
_print_remaining_threads() _print_remaining_threads()
raise KeyboardInterrupt("Forcing shutdown.") raise KeyboardInterrupt("Forcing shutdown.")
tried_shutdown = True world.shutting_down.set()
# HACK: run the _kill_plugins trigger with the current IRC object. XXX: We should really consider removing this # HACK: run the _kill_plugins trigger with the current IRC object. XXX: We should really consider removing this
# argument, since no plugins actually use it to do anything. # argument, since no plugins actually use it to do anything.

View File

@ -22,8 +22,13 @@ exttarget_handlers = {}
# Trigger to be set when all IRC objects are initially created. # Trigger to be set when all IRC objects are initially created.
started = threading.Event() started = threading.Event()
# Global daemon starting time.
start_ts = time.time() start_ts = time.time()
# Trigger to set on shutdown.
shutting_down = threading.Event()
# Source address. # Source address.
source = "https://github.com/GLolol/PyLink" # CHANGE THIS IF YOU'RE FORKING!! source = "https://github.com/GLolol/PyLink" # CHANGE THIS IF YOU'RE FORKING!!