def sendToMaster(self, status, exc_data, io, data, dontRecurse=False):
        try:
            pickledData = pickle.dumps((status, exc_data, io, data), -1)
        except pickle.PicklingError:
            if dontRecurse:
                raise   # Fail horribly, been here already
            exc_info = sys.exc_info()
            self.sendToMaster(ResultCollector.ERROR,
                              (exc_info[1], Traceback.make(exc_info[2])),
                              io, None, True)
            return
        self.toMaster.write(pickledData)
        self.toMaster.flush()
Send data to master, but check that we can pickle first
dataset/ETHPy150Open ooici/pyon/pyon/util/insulate.py/InsulateSlave.sendToMaster