def handle_get(): """Handle getitem from process""" key = get_pipe[1].recv() try: item = orig_get_set_del[0](State.get_instance(), key) except Exception as err: # pylint: disable=broad-except # Raise the exception inside the process get_pipe[1].send((None, err)) else: get_pipe[1].send((item, None))
def handle_set(): """Handle setitem from process """ key, value = set_pipe[1].recv() try: orig_get_set_del[1](State.get_instance(), key, value) except Exception as err: # pylint: disable=broad-except # Raise the exception inside the process set_pipe[1].send(err) # raise err else: set_pipe[1].send(None)
def handle_del(): """Handle delitem from process """ key = del_pipe[1].recv() try: State.__getitem__ = orig_get_set_del[0] State.__setitem__ = orig_get_set_del[1] State.__delitem__ = orig_get_set_del[2] orig_get_set_del[2](State.get_instance(), key) except Exception as err: # pylint: disable=broad-except # Raise the exception inside the process del_pipe[1].send(err) # raise err else: del_pipe[1].send(None) finally: State.__getitem__ = save_getitem State.__setitem__ = save_setitem State.__delitem__ = save_delitem