| 81 | |
| 82 | |
| 83 | def test_threaded_within_thread(): |
| 84 | L = [] |
| 85 | |
| 86 | def f(i): |
| 87 | result = get({"x": (lambda: i,)}, "x", num_workers=2) |
| 88 | L.append(result) |
| 89 | |
| 90 | before = threading.active_count() |
| 91 | |
| 92 | for _ in range(20): |
| 93 | t = threading.Thread(target=f, args=(1,)) |
| 94 | t.daemon = True |
| 95 | t.start() |
| 96 | t.join() |
| 97 | assert L == [1] |
| 98 | del L[:] |
| 99 | |
| 100 | start = time() # wait for most threads to join |
| 101 | while threading.active_count() > before + 10: |
| 102 | sleep(0.01) |
| 103 | assert time() < start + 5 |
| 104 | |
| 105 | |
| 106 | def test_dont_spawn_too_many_threads(): |