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