Return the special set of promises for run_instruction.

        Run Instruction has to support multiple promises (one for
        reading data, and one for reading back the status from IR. All
        other primitives have a single promise, so fitting multiple
        into this system causes some API consistencies.

        This should be reviewed to see if a more coherent alternative
        is available.

def get_promise(self):
        """Return the special set of promises for run_instruction.

        Run Instruction has to support multiple promises (one for
        reading data, and one for reading back the status from IR. All
        other primitives have a single promise, so fitting multiple
        into this system causes some API consistencies.

        This should be reviewed to see if a more coherent alternative
        is available.

        """
        if self._promise is None:
            promise = []
            if self.read:
                promise.append(TDOPromise(self._chain, 0, self.bitcount))
            else:
                promise.append(None)
            if self.read_status:
                promise.append(TDOPromise(self._chain, 0,
                                          self.dev._desc._ir_length))
            else:
                promise.append(None)
            self._promise = promise
        return self._promise