From 65fcfbfae9ef1a68d324aea932f983f7edd00cdf Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sat, 20 Mar 2010 00:34:27 +0100 Subject: [PATCH] Add util functions for pickling and unpickling multiprocessing.Connection --- mopidy/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mopidy/__init__.py b/mopidy/__init__.py index 89605726..5770716f 100644 --- a/mopidy/__init__.py +++ b/mopidy/__init__.py @@ -1,4 +1,6 @@ import logging +from multiprocessing.reduction import reduce_connection +import pickle from mopidy import settings as raw_settings @@ -18,6 +20,16 @@ def get_class(name): class_object = getattr(module, class_name) return class_object +def pickle_connection(connection): + return pickle.dumps(reduce_connection(connection)) + +def unpickle_connection(pickled_connection): + # From http://stackoverflow.com/questions/1446004 + unpickled = pickle.loads(pickled_connection) + func = unpickled[0] + args = unpickled[1] + return func(*args) + class SettingsError(Exception): pass