def close(self): log('A', id(self._request), '%s %s' % (self._request.reply_code, self._bytes)) if not self._channel.closed: self._channel.push(LoggingProducer(self._request, self._bytes), 0) self._channel.push(CallbackProducer(self._channel.done), 0) self._channel.push( CallbackProducer(lambda t= ('E', id(self._request)): apply(log, t)), 0) if self._shutdown: self._channel.push(ShutdownProducer(), 0) Wakeup() else: if self._close: self._channel.push(None, 0) Wakeup() else: # channel closed too soon self._request.log(self._bytes) log('E', id(self._request)) if self._shutdown: Wakeup(lambda: asyncore.close_all()) else: Wakeup() self._channel = None #need to break cycles? self._request = None
def close(self): log('A', id(self._request), '%s %s' % (self._request.reply_code, self._bytes)) if not self._channel.closed: self._channel.push(LoggingProducer(self._request, self._bytes), 0) self._channel.push(CallbackProducer(self._channel.done), 0) self._channel.push(CallbackProducer( lambda t=('E', id(self._request)): log(*t)), 0) if self._shutdown: self._channel.push(ShutdownProducer(), 0) Wakeup() else: if self._close: self._channel.push(None, 0) Wakeup() else: # channel closed too soon self._request.log(self._bytes) log('E', id(self._request)) if self._shutdown: Wakeup(lambda: asyncore.close_all()) else: Wakeup() self._channel = None # need to break cycles? self._request = None