code: def chain_callback(self, iocb):
          
          if _debug: IOChainMixIn._debug("chain_callback %r", iocb)
  
          # if we're not chained, there's no notification to do
          if not self.ioChain:
              return
  
          # refer to the chained iocb
          iocb = self.ioChain
  
          try:
              if _debug: IOChainMixIn._debug("    - decoding")
  
              # let the derived class transform the data
              self.decode()
  
              if _debug: IOChainMixIn._debug("    - decode complete")
          except:
              # extract the error and abort
              err = sys.exc_info()[1]
              if _debug: IOChainMixIn._exception("    - decoding exception: %r", err)
  
              iocb.ioState = ABORTED
              iocb.ioError = err
  
          # break the references
          self.ioChain = None
          iocb.ioController = None
  
          # notify the client
          iocb.trigger()
docs: Callback when this iocb completes.