def _main(self, transfer_future, **kwargs):
try:<EOL><INDENT>self._transfer_coordinator.set_status_to_queued()<EOL>on_queued_callbacks = get_callbacks(transfer_future, '<STR_LIT>')<EOL>for on_queued_callback in on_queued_callbacks:<EOL><INDENT>on_queued_callback()<EOL><DEDENT>self._transfer_coordinator.set_status_to_running()<EOL>self._submit(transfer_future=transfer_future, **kwargs)<EOL><DEDENT>except BaseException as e:<EOL><INDENT>self._log_and_set_exception(e)<EOL>self._wait_for_all_submitted_futures_to_complete()<EOL>self._transfer_coordinator.announce_done()<EOL><DEDENT>
:type transfer_future: s3transfer.futures.TransferFuture
:param transfer_future: The transfer future associated with the
    transfer request that tasks are being submitted for

:param kwargs: Any additional kwargs that you may want to pass
    to the _submit() method