| 1254 | self.not_empty.notify() |
| 1255 | |
| 1256 | def get(self, timeout=None): |
| 1257 | with self.not_empty: |
| 1258 | while len(self.queue) == 0: |
| 1259 | self.not_empty.wait(timeout=timeout) |
| 1260 | if timeout is not None and len(self.queue) == 0: |
| 1261 | return None |
| 1262 | item = heapq.heappop(self.queue) |
| 1263 | i = self.task_counter |
| 1264 | self.currently_running[i] = copy.deepcopy(item) |
| 1265 | self.task_counter += 1 |
| 1266 | self.server.queue_updated() |
| 1267 | return (item, i) |
| 1268 | |
| 1269 | class ExecutionStatus(NamedTuple): |
| 1270 | status_str: Literal['success', 'error'] |