code: def remove_node(self, node):
          
          pending = self.node2pending.pop(node)
          if not pending:
              return
  
          # The node crashed, reassing pending items
          crashitem = self.collection[pending.pop(0)]
          self.pending.extend(pending)
          for node in self.node2pending:
              self.check_schedule(node)
          return crashitem
docs: Remove a node from the scheduler
  
          This should be called either when the node crashed or at
          shutdown time.  In the former case any pending items assigned
          to the node will be re-scheduled.  Called by the
          ``DSession.worker_workerfinished`` and
          ``DSession.worker_errordown`` hooks.
  
          Return the item which was being executing while the node
          crashed or None if the node has no more pending items.