@@ -30,6 +30,7 @@ def check(n: int) -> PrimeResult: # <6>
3030def worker (jobs : JobQueue , results : ResultQueue ) -> None : # <7>
3131 while n := jobs .get (): # <8>
3232 results .put (check (n )) # <9>
33+ results .put (PrimeResult (0 , False , 0.0 )) # <10>
3334# end::PRIMES_PROC_TOP[]
3435
3536# tag::PRIMES_PROC_MAIN[]
@@ -53,15 +54,19 @@ def main() -> None:
5354 proc .start () # <5>
5455 jobs .put (0 ) # <6>
5556
56- while True :
57- n , prime , elapsed = results .get () # <7>
58- label = 'P' if prime else ' '
59- print (f'{ n :16} { label } { elapsed :9.6f} s' ) # <8>
60- if jobs .empty (): # <9>
61- break
57+ workers_done = 0
58+ checked = 0
59+ while workers_done < workers : # <7>
60+ n , prime , elapsed = results .get () # <8>
61+ if n == 0 :
62+ workers_done += 1 # <9>
63+ else :
64+ checked += 1
65+ label = 'P' if prime else ' '
66+ print (f'{ n :16} { label } { elapsed :9.6f} s' ) # <10>
6267
6368 elapsed = perf_counter () - t0
64- print (f'Total time: { elapsed :.2f} s' )
69+ print (f'{ checked } checks in { elapsed :.2f} s' )# <11>
6570
6671if __name__ == '__main__' :
6772 main ()
0 commit comments