Skip to content

Commit

Permalink
Remove a driver from the list of dead drivers after it has been resta…
Browse files Browse the repository at this point in the history
…rted. Closes GH-1165.
  • Loading branch information
progval committed Feb 9, 2016
1 parent a8be360 commit 6d4ea07
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/drivers/__init__.py
Expand Up @@ -38,7 +38,7 @@
from ..utils import minisix

_drivers = {}
_deadDrivers = []
_deadDrivers = set()
_newDrivers = []

class IrcDriver(object):
Expand Down Expand Up @@ -94,7 +94,7 @@ def add(name, driver):

def remove(name):
"""Removes the driver with the given name from the loop."""
_deadDrivers.append(name)
_deadDrivers.add(name)

def run():
"""Runs the whole driver loop."""
Expand All @@ -104,7 +104,7 @@ def run():
driver.run()
except:
log.exception('Uncaught exception in in drivers.run:')
_deadDrivers.append(name)
_deadDrivers.add(name)
for name in _deadDrivers:
try:
driver = _drivers[name]
Expand All @@ -119,6 +119,7 @@ def run():
while _newDrivers:
(name, driver) = _newDrivers.pop()
log.debug('Adding new driver %s.', name)
_deadDrivers.discard(name)
if name in _drivers:
log.warning('Driver %s already added, killing it.', name)
_drivers[name].die()
Expand Down

0 comments on commit 6d4ea07

Please sign in to comment.