|
22 | 22 | fromasync.threadimportterminate_threads |
23 | 23 | fromasync.utilimportcpu_count |
24 | 24 |
|
25 | | -importthreading |
26 | 25 | importtime |
27 | 26 | importsys |
28 | 27 |
|
@@ -381,38 +380,10 @@ def _assert_async_dependent_tasks(self, pool): |
381 | 380 |
|
382 | 381 | @terminate_threads |
383 | 382 | deftest_base(self): |
384 | | -max_wait_attempts=3 |
385 | | -sleep_time=0.1 |
386 | | -formcinrange(max_wait_attempts): |
387 | | -# wait for threads to die |
388 | | -iflen(threading.enumerate())!=1: |
389 | | -time.sleep(sleep_time) |
390 | | -# END for each attempt |
391 | | -assertlen(threading.enumerate())==1,"Waited %f s for threads to die, its still alive"% (max_wait_attempts,sleep_time) |
392 | | - |
393 | 383 | p=ThreadPool() |
394 | 384 |
|
395 | | -# default pools have no workers |
396 | | -assertp.size()==0 |
397 | | - |
398 | | -# increase and decrease the size |
399 | | -num_threads=len(threading.enumerate()) |
400 | | -foriinrange(self.max_threads): |
401 | | -p.set_size(i) |
402 | | -ifpy2: |
403 | | -assertp.size()==i |
404 | | -assertlen(threading.enumerate())==num_threads+i |
405 | | - |
406 | | -foriinrange(self.max_threads,-1,-1): |
407 | | -p.set_size(i) |
408 | | -ifpy2: |
409 | | -assertp.size()==i |
410 | | - |
| 385 | +# default pools have no workers - and threading was removed entirely ... |
411 | 386 | assertp.size()==0 |
412 | | -# threads should be killed already, but we let them a tiny amount of time |
413 | | -# just to be sure |
414 | | -time.sleep(0.05) |
415 | | -assertlen(threading.enumerate())==num_threads |
416 | 387 |
|
417 | 388 | # SINGLE TASK SERIAL SYNC MODE |
418 | 389 | ############################## |
@@ -454,45 +425,3 @@ def test_base(self): |
454 | 425 | # DEPENDENT TASKS SYNC MODE |
455 | 426 | ########################### |
456 | 427 | self._assert_async_dependent_tasks(p) |
457 | | - |
458 | | - |
459 | | -# SINGLE TASK THREADED ASYNC MODE ( 1 thread ) |
460 | | -############################################## |
461 | | -# step one gear up - just one thread for now. |
462 | | -p.set_size(1) |
463 | | -ifpy2: |
464 | | -assertp.size()==1 |
465 | | -assertlen(threading.enumerate())==num_threads+1 |
466 | | -# deleting the pool stops its threads - just to be sure ;) |
467 | | -# Its not synchronized, hence we wait a moment |
468 | | -del(p) |
469 | | -time.sleep(0.05) |
470 | | -ifpy2: |
471 | | -assertlen(threading.enumerate())==num_threads |
472 | | - |
473 | | -p=ThreadPool(1) |
474 | | -ifpy2: |
475 | | -assertlen(threading.enumerate())==num_threads+1 |
476 | | - |
477 | | -# here we go |
478 | | -self._assert_single_task(p,True) |
479 | | - |
480 | | - |
481 | | - |
482 | | -# SINGLE TASK ASYNC MODE ( 2 threads ) |
483 | | -###################################### |
484 | | -# two threads to compete for a single task |
485 | | -p.set_size(2) |
486 | | -self._assert_single_task(p,True) |
487 | | - |
488 | | -# real stress test- should be native on every dual-core cpu with 2 hardware |
489 | | -# threads per core |
490 | | -p.set_size(4) |
491 | | -self._assert_single_task(p,True) |
492 | | - |
493 | | - |
494 | | -# DEPENDENT TASK ASYNC MODE |
495 | | -########################### |
496 | | -self._assert_async_dependent_tasks(p) |
497 | | - |
498 | | -sys.stderr.write("Done with everything\n") |