Rewrite MPD frontend to run in thread instead of process

This commit is contained in:
Stein Magnus Jodal 2010-08-22 13:57:58 +02:00
parent 865f7df86b
commit ce7f4339ac
3 changed files with 24 additions and 22 deletions

View File

@ -1,5 +1,5 @@
from mopidy.frontends.mpd.dispatcher import MpdDispatcher
from mopidy.frontends.mpd.process import MpdProcess
from mopidy.frontends.mpd.thread import MpdThread
class MpdFrontend(object):
"""
@ -7,7 +7,7 @@ class MpdFrontend(object):
"""
def __init__(self):
self.process = None
self.thred = None
self.dispatcher = None
def start_server(self, core_queue):
@ -17,8 +17,8 @@ class MpdFrontend(object):
:param core_queue: the core queue
:type core_queue: :class:`multiprocessing.Queue`
"""
self.process = MpdProcess(core_queue)
self.process.start()
self.thread = MpdThread(core_queue)
self.thread.start()
def create_dispatcher(self, backend):
"""

View File

@ -1,18 +0,0 @@
import asyncore
import logging
from mopidy.frontends.mpd.server import MpdServer
from mopidy.utils.process import BaseProcess
logger = logging.getLogger('mopidy.frontends.mpd.process')
class MpdProcess(BaseProcess):
def __init__(self, core_queue):
super(MpdProcess, self).__init__(name='MpdProcess')
self.core_queue = core_queue
def run_inside_try(self):
logger.debug(u'Starting MPD server process')
server = MpdServer(self.core_queue)
server.start()
asyncore.loop()

View File

@ -0,0 +1,20 @@
import asyncore
import logging
from mopidy.frontends.mpd.server import MpdServer
from mopidy.utils.process import BaseThread
logger = logging.getLogger('mopidy.frontends.mpd.thread')
class MpdThread(BaseThread):
def __init__(self, core_queue):
super(MpdThread, self).__init__()
self.name = u'MpdThread'
self.daemon = True
self.core_queue = core_queue
def run_inside_try(self):
logger.debug(u'Starting MPD server thread')
server = MpdServer(self.core_queue)
server.start()
asyncore.loop()