3 M(Y@sdZddlmZddlZddlZddlZddZddZ dgZ e dkre d ddl Z x>ed D]2Ze j\ZZervPer`ed dkr`e d eq`We d dS)zFunctions for parallel computation on multiple cores. Introduced in Python-RSA 3.1. .. note:: Requires Python 2.6 or newer. )print_functionNcCs0x*tjj|}tjj|r|j|dSqWdS)N)rsaZrandnumZread_random_odd_intprimeZis_primesend)nbitspipeintegerr 3/private/tmp/pip-build-nl73fm5q/rsa/rsa/parallel.py _find_prime#s    r c sxtjdd\}z:fddt|D}x|D] }|jq0W|j}Wd|jjXx|D] }|jqdW|S)aUReturns a prime number that can be stored in 'nbits' bits. Works in multiple threads at the same time. >>> p = getprime(128, 3) >>> rsa.prime.is_prime(p-1) False >>> rsa.prime.is_prime(p) True >>> rsa.prime.is_prime(p+1) False >>> from rsa import common >>> common.bit_size(p) == 128 True F)duplexcsg|]}tjtfdqS))targetargs)mpProcessr ).0_)r pipe_sendr r Dszgetprime..N)rPiperangestartrecvclose terminate)rZpoolsizeZ pipe_recvZprocspresultr )rrr getprime-s        r__main__z'Running doctests 1000x or until failured z%i timesz Doctests done)__doc__ __future__rmultiprocessingrZ rsa.primerZ rsa.randnumr r__all____name__printdoctestrcounttestmodZfailurestestsr r r r s"  )