code: def _on_stream_disconnect(self, stream):
          
          # During a stream crash it is possible for disconnect signal to fire
          # twice, in which case ignore the second instance.
          routes = self._routes_by_stream.pop(stream, None)
          if routes is None:
              return
  
          LOG.debug('%r: %r is gone; propagating DEL_ROUTE for %r',
                    self, stream, routes)
          for target_id in routes:
              self.router.del_route(target_id)
              self._propagate_up(mitogen.core.DEL_ROUTE, target_id)
              self._propagate_down(mitogen.core.DEL_ROUTE, target_id)
  
              context = self.router.context_by_id(target_id, create=False)
              if context:
                  mitogen.core.fire(context, 'disconnect')
docs: Respond to disconnection of a local stream by propagating DEL_ROUTE for
          any contexts we know were attached to it.