def _pop_unbuffered()

in smallpond/execution/workqueue.py [0:0]


    def _pop_unbuffered(self, count: int) -> List[WorkItem]:
        items = []
        dentries = self._get_entries()

        if self.sort:
            dentries = sorted(dentries, key=lambda entry: entry.name)
        elif self.random:
            random.shuffle(dentries)

        for entry in dentries:
            uuid_hex = uuid.uuid4().hex
            filename = f"{entry.name}-DEQ{uuid_hex}"
            dequeued_path = os.path.join(self.dequeue_dir, filename)

            try:
                os.rename(entry.path, dequeued_path)
            except OSError as err:
                logger.debug(f"cannot rename {entry.path} to {dequeued_path}: {err}")
                if items:
                    break
                else:
                    continue

            items.append(load(dequeued_path, self.buffer_size))
            if len(items) >= count:
                break

        return items