(self, request_type, call_args)
| 319 | self._semaphore.release() |
| 320 | |
| 321 | def _submit_transfer(self, request_type, call_args): |
| 322 | register_feature_id('S3_TRANSFER') |
| 323 | on_done_after_calls = [self._release_semaphore] |
| 324 | coordinator = CRTTransferCoordinator( |
| 325 | transfer_id=self._id_counter, |
| 326 | exception_translator=self._crt_exception_translator, |
| 327 | ) |
| 328 | components = { |
| 329 | 'meta': CRTTransferMeta(self._id_counter, call_args), |
| 330 | 'coordinator': coordinator, |
| 331 | } |
| 332 | future = CRTTransferFuture(**components) |
| 333 | afterdone = AfterDoneHandler(coordinator) |
| 334 | on_done_after_calls.append(afterdone) |
| 335 | |
| 336 | try: |
| 337 | self._semaphore.acquire() |
| 338 | on_queued = self._s3_args_creator.get_crt_callback( |
| 339 | future, 'queued' |
| 340 | ) |
| 341 | on_queued() |
| 342 | crt_callargs = self._s3_args_creator.get_make_request_args( |
| 343 | request_type, |
| 344 | call_args, |
| 345 | coordinator, |
| 346 | future, |
| 347 | on_done_after_calls, |
| 348 | ) |
| 349 | crt_s3_request = self._crt_s3_client.make_request(**crt_callargs) |
| 350 | except Exception as e: |
| 351 | coordinator.set_exception(e, True) |
| 352 | on_done = self._s3_args_creator.get_crt_callback( |
| 353 | future, 'done', after_subscribers=on_done_after_calls |
| 354 | ) |
| 355 | on_done(error=e) |
| 356 | else: |
| 357 | coordinator.set_s3_request(crt_s3_request) |
| 358 | self._future_coordinators.append(coordinator) |
| 359 | |
| 360 | self._id_counter += 1 |
| 361 | return future |
| 362 | |
| 363 | |
| 364 | class CRTTransferMeta(BaseTransferMeta): |
no test coverage detected