1############################################################################### 
    2# Modification of concurrent.futures.Future 
    3# 
    4# author: Thomas Moreau and Olivier Grisel 
    5# 
    6# adapted from concurrent/futures/_base.py (17/02/2017) 
    7#  * Do not use yield from 
    8#  * Use old super syntax 
    9# 
    10# Copyright 2009 Brian Quinlan. All Rights Reserved. 
    11# Licensed to PSF under a Contributor Agreement. 
    12 
    13from concurrent.futures import Future as _BaseFuture 
    14from concurrent.futures._base import LOGGER 
    15 
    16 
    17# To make loky._base.Future instances awaitable  by concurrent.futures.wait, 
    18# derive our custom Future class from _BaseFuture. _invoke_callback is the only 
    19# modification made to this class in loky. 
    20# TODO investigate why using `concurrent.futures.Future` directly does not 
    21# always work in our test suite. 
    22class Future(_BaseFuture): 
    23    def _invoke_callbacks(self): 
    24        for callback in self._done_callbacks: 
    25            try: 
    26                callback(self) 
    27            except BaseException: 
    28                LOGGER.exception(f"exception calling callback for {self!r}")