def abort_io(self, iocb, err):
    'Called by a local client or a local controlled to abort a transaction.'
    if _debug:
        IOProxyServer._debug('abort_io %r %r', iocb, err)
    if (iocb.ioState == COMPLETED):
        pass
    elif (iocb.ioState == ABORTED):
        pass
    elif self.localIOCB.has_key(iocb.ioID):
        del self.localIOCB[iocb.ioID]
        request = (2, iocb.ioID, err)
        if _debug:
            _commlog.debug(('<<< %s: P %s %r' % (_strftime(), iocb.ioServerRef, request)))
        request = cPickle.dumps(request, 1)
        self.request(PDU(request, destination=(iocb.ioServerRef, PORT)))
    else:
        raise RuntimeError(('no reference to aborting iocb: %r' % (iocb.ioID,)))
    iocb.ioState = ABORTED
    iocb.ioError = err
    iocb.trigger()
Called by a local client or a local controlled to abort a transaction.
def abort_io(self, iocb, err):
    
    if _debug:
        IOProxyServer._debug('abort_io %r %r', iocb, err)
    if (iocb.ioState == COMPLETED):
        pass
    elif (iocb.ioState == ABORTED):
        pass
    elif self.localIOCB.has_key(iocb.ioID):
        del self.localIOCB[iocb.ioID]
        request = (2, iocb.ioID, err)
        if _debug:
            _commlog.debug(('<<< %s: P %s %r' % (_strftime(), iocb.ioServerRef, request)))
        request = cPickle.dumps(request, 1)
        self.request(PDU(request, destination=(iocb.ioServerRef, PORT)))
    else:
        raise RuntimeError(('no reference to aborting iocb: %r' % (iocb.ioID,)))
    iocb.ioState = ABORTED
    iocb.ioError = err
    iocb.trigger()