From: Mark Wooding Date: Sun, 28 May 2017 18:03:08 +0000 (+0100) Subject: rho.cc: Move the signal-handler setup outside the retry loop. X-Git-Url: https://git.distorted.org.uk/~mdw/rhodes/commitdiff_plain/00d6f25ed61928f090404b32db70ac9a839c3965 rho.cc: Move the signal-handler setup outside the retry loop. Obviously we only really want to do this once. --- diff --git a/rho.cc b/rho.cc index d41a887..651211a 100644 --- a/rho.cc +++ b/rho.cc @@ -198,20 +198,6 @@ int main(int argc, char *argv[]) tab[i].m = power(a, rep(tab[i].du))*power(b, rep(tab[i].dv)); } - // Now we start the random walk... - seed(); - niter = 8ull << (dpbits ? dpbits : (NumBits(l) + 1)/2); -again: - NTL::ZZ_p u{NTL::random_ZZ_p()}, v{NTL::random_ZZ_p()}; - NTL::GF2E t = power(a, rep(u))*power(b, rep(v)); - - hist h[NHIST]; - unsigned o = 0; - unsigned long long k = 0; - - if (!dpbits) - for (i = 0; i < NHIST; i++) h[i].k = 0; - stdin_fdflags = fcntl(0, F_GETFL); if (stdin_fdflags < 0) barf("fcntl stdin", errno); sa.sa_handler = cleanup; @@ -230,6 +216,20 @@ again: if (fcntl(0, F_SETFL, stdin_fdflags | O_NONBLOCK)) barf("fcntl stdin", errno); + // Now we start the random walk... + seed(); + niter = 8ull << (dpbits ? dpbits : (NumBits(l) + 1)/2); +again: + NTL::ZZ_p u{NTL::random_ZZ_p()}, v{NTL::random_ZZ_p()}; + NTL::GF2E t = power(a, rep(u))*power(b, rep(v)); + + hist h[NHIST]; + unsigned o = 0; + unsigned long long k = 0; + + if (!dpbits) + for (i = 0; i < NHIST; i++) h[i].k = 0; + for (;;) { if (k >= niter) goto again; if (!(k%CHECK_NITER)) {