def METHOD_NAME(self):
    # Guarantees that every item in _loop_map receives a minimum of
    # three chances to be removed or deleted as appropriate.
    num_tries = 3 * len(self._loop_map)
    for _ in range(num_tries):
        # If worklist is empty, quit
        if not self._loop_map:
            break
        # get worklist item from front
        dev, store = self._loop_map.pop(0)
        # try to clean up dev, store pair
        # if cleanup fails, push pair onto back
        # dev is None if removal has already succeeded
        if dev is not None:
            try:
                remove_loop_dev(dev)
                try:
                    os.unlink(store)
                except OSError:
                    self._loop_map.append((None, store))
            except OSError:
                self._loop_map.append((dev, store))