def METHOD_NAME():
    go = threading.Event()
    item = CachedCostItemWait(go)
    num_threads = 3
    orig_si = sys.getswitchinterval()
    sys.setswitchinterval(1e-6)
    try:
        tpr = concurrent.futures.ThreadPoolExecutor(max_workers=num_threads, thread_name_prefix="test")
        futures = [tpr.submit(lambda: item.cost) for _ in range(num_threads)]
        _, not_done = concurrent.futures.wait(futures)
        # "Threads not stopped"
        assert len(not_done) == 0
    finally:
        sys.setswitchinterval(orig_si)
    assert item.cost == 2