(self)
| 172 | pass |
| 173 | |
| 174 | async def playback(self): |
| 175 | while True: |
| 176 | self.inflight = await self.queue.get() |
| 177 | try: |
| 178 | assert self.inflight |
| 179 | h = ReplayHandler(self.inflight, self.options) |
| 180 | if ctx.options.client_replay_concurrency == -1: |
| 181 | t = asyncio_utils.create_task( |
| 182 | h.replay(), |
| 183 | name="client playback awaiting response", |
| 184 | keep_ref=False, |
| 185 | ) |
| 186 | # keep a reference so this is not garbage collected |
| 187 | self.replay_tasks.add(t) |
| 188 | t.add_done_callback(self.replay_tasks.remove) |
| 189 | else: |
| 190 | await h.replay() |
| 191 | except Exception: |
| 192 | logger.exception(f"Client replay has crashed!") |
| 193 | self.queue.task_done() |
| 194 | self.inflight = None |
| 195 | |
| 196 | def check(self, f: flow.Flow) -> str | None: |
| 197 | if f.live or f == self.inflight: |
no test coverage detected