mergin/client_pull.py
def download_project_cancel(job):
    """
    To be called (from main thread) to cancel a job that has downloads in progress.
    Returns once all background tasks have exited (may block for a bit of time).
    """
    job.mp.log.info("user cancelled downloading...")
    # set job as cancelled
    job.is_cancelled = True
    job.executor.shutdown(wait=True)
    job.mp.log.info("--- download cancelled")

    To be called (from main thread) to cancel a job that has downloads in progress.
    Returns once all background tasks have exited (may block for a bit of time).
    
To be called (from main thread) to cancel a job that has downloads in progress.
Returns once all background tasks have exited (may block for a bit of time).
To be called ( from main thread ) to cancel a job that has downloads in progress . Returns once all background tasks have exited ( may block for a bit of time ) .
def download_project_cancel(job):
    job.mp.log.info("user cancelled downloading...")
    job.is_cancelled = True
    job.executor.shutdown(wait=True)
    job.mp.log.info("--- download cancelled")
def download_project_cancel ( job ) : job . mp . log . info ( "user cancelled downloading..." ) job . is_cancelled = True job . executor . shutdown ( wait = True ) job . mp . log . info ( "--- download cancelled" )
To be called (from main thread) to cancel a job that has downloads in progress.
To be called ( from main thread ) to cancel a job that has downloads in progress .
"""
    To be called (from main thread) to cancel a job that has downloads in progress.
    Returns once all background tasks have exited (may block for a bit of time).
    """ # set job as cancelled
job