File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
Filter options
Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ def check(n: int) -> PrimeResult: # <6>
30
30
def worker (jobs : JobQueue , results : ResultQueue ) -> None : # <7>
31
31
while n := jobs .get (): # <8>
32
32
results .put (check (n )) # <9>
33
+ results .put (PrimeResult (0 , False , 0.0 )) # <10>
33
34
# end::PRIMES_PROC_TOP[]
34
35
35
36
# tag::PRIMES_PROC_MAIN[]
@@ -53,15 +54,19 @@ def main() -> None:
53
54
proc .start () # <5>
54
55
jobs .put (0 ) # <6>
55
56
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>
62
67
63
68
elapsed = perf_counter () - t0
64
- print (f'Total time: { elapsed :.2f} s' )
69
+ print (f'{ checked } checks in { elapsed :.2f} s' ) # <11>
65
70
66
71
if __name__ == '__main__' :
67
72
main ()
You can’t perform that action at this time.
0 commit comments