From e5be3ea6407f56229f826aa4b77d106fb6e9c8fa Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sat, 20 Mar 2010 01:06:22 +0100 Subject: [PATCH] Remove plan for server in own process. Remove redundant blocking of server until CoreProcess is ready. --- mopidy/__main__.py | 27 ++++++--------------------- mopidy/core.py | 9 +++------ 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/mopidy/__main__.py b/mopidy/__main__.py index ecd82216..0666d99b 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -1,6 +1,6 @@ import asyncore import logging -from multiprocessing import Queue +import multiprocessing import os import sys @@ -9,31 +9,16 @@ sys.path.insert(0, from mopidy import get_class, settings, SettingsError from mopidy.core import CoreProcess -from mopidy.mpd.server import MpdServer -logger = logging.getLogger('mopidy') +logger = logging.getLogger('mopidy.main') def main(): _setup_logging(2) - - # multiprocessing branch plan - # --------------------------- - # - # TODO Init MpdServer in MainThread or in new Process? - - main_queue = Queue() - core_queue = Queue() - server_queue = Queue() - core = CoreProcess(core_queue=core_queue, - main_queue=main_queue, server_queue=server_queue) + core_queue = multiprocessing.Queue() + core = CoreProcess(core_queue) core.start() - while True: - message = main_queue.get() - if message['command'] == 'core_ready': - MpdServer(core_queue=core_queue) - asyncore.loop() - else: - logger.warning(u'Cannot handle message: %s', message) + get_class(settings.SERVER)(core_queue=core_queue) + asyncore.loop() def _setup_logging(verbosity_level): if verbosity_level == 0: diff --git a/mopidy/core.py b/mopidy/core.py index bb1674ed..374945d4 100644 --- a/mopidy/core.py +++ b/mopidy/core.py @@ -6,18 +6,15 @@ from mopidy import get_class, settings, unpickle_connection logger = logging.getLogger('mopidy.core') class CoreProcess(multiprocessing.Process): - def __init__(self, core_queue=None, main_queue=None, server_queue=None): + def __init__(self, core_queue): multiprocessing.Process.__init__(self) - self.queue = core_queue - self.main_queue = main_queue - self.server_queue = server_queue + self.core_queue = core_queue def run(self): backend = get_class(settings.BACKENDS[0])() frontend = get_class(settings.FRONTEND)(backend=backend) - self.main_queue.put({'command': 'core_ready'}) while True: - message = self.queue.get() + message = self.core_queue.get() if message['command'] == 'mpd_request': response = frontend.handle_request(message['request']) connection = unpickle_connection(message['reply_to'])