Remove plan for server in own process. Remove redundant blocking of server until CoreProcess is ready.
This commit is contained in:
parent
1faecdf496
commit
e5be3ea640
@ -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:
|
||||
|
||||
@ -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'])
|
||||
|
||||
Loading…
Reference in New Issue
Block a user