def reap_threads(func):
    if not _thread:
        return func

    @functools.wraps(func)
    def decorator(*args):
        key = threading_setup()
        try:
            return func(*args)
        finally:
            threading_cleanup(*key)
    return decorator
Uploads a WAL file to S3 or Windows Azure Blob Service
dataset/ETHPy150Open OpenCobolIDE/OpenCobolIDE/open_cobol_ide/extlibs/future/backports/test/support.py/reap_threads--crossover with--dataset/ETHPy150Open wal-e/wal-e/wal_e/operator/backup.py/Backup.wal_archive