Esempio n. 1
0
        def coro():
            executor = ThreadPoolExecutor(100)
            fs = []
            for _ in range(5000):
                f = executor.submit(demo)
                f.add_done_callback(_callback)
                fs.append(f)

            yield wait(fs)
Esempio n. 2
0
    def test_future_thread_safe(self):
        def demo():
            pass

        def _callback(f):
            pass

        @coroutine2
        def coro():
            executor = ThreadPoolExecutor(100)
            fs = []
            for _ in range(5000):
                f = executor.submit(demo)
                f.add_done_callback(_callback)
                fs.append(f)

            yield wait(fs)

        f = wait([coro() for _ in range(5)])
        run_until_complete(f)
        f.result()
Esempio n. 3
0
 def test_wait(self):
     futures = [self._simple_task() for _ in range(5)]
     self.assertFalse(any([f.done() for f in futures]))
     gathered = wait(futures)
     run_until_complete(gathered)
     self.assertTrue([r == 'ok' for r in gathered.result()])
Esempio n. 4
0
 def test_add_multi_tasks(self):
     thread_pool = ThreadPoolExecutor(5)
     futures = [thread_pool.submit(self._fake_task) for _ in range(5)]
     run_until_complete(wait(futures))
     for f in futures:
         self.assertEqual(f.result(), 2)