(self)
| 193 | self.task_queue.put((self.put_idx, image)) |
| 194 | |
| 195 | def get(self): |
| 196 | self.get_idx += 1 # the index needed for this request |
| 197 | if len(self.result_rank) and self.result_rank[0] == self.get_idx: |
| 198 | res = self.result_data[0] |
| 199 | del self.result_data[0], self.result_rank[0] |
| 200 | return res |
| 201 | |
| 202 | while True: |
| 203 | # make sure the results are returned in the correct order |
| 204 | idx, res = self.result_queue.get() |
| 205 | if idx == self.get_idx: |
| 206 | return res |
| 207 | insert = bisect.bisect(self.result_rank, idx) |
| 208 | self.result_rank.insert(insert, idx) |
| 209 | self.result_data.insert(insert, res) |
| 210 | |
| 211 | def __len__(self): |
| 212 | return self.put_idx - self.get_idx |
no outgoing calls