From 52a45818a13bc32156ada02554eef76e1124b618 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Thu, 7 Oct 2004 00:03:15 +0000 Subject: [PATCH] XOR process PID into a backend's initial random seed, to ensure that different backends get a reasonably wide set of initial seeds even if gettimeofday returns tv_usec values with only a few bits of precision. Per recent discussion. --- src/backend/postmaster/postmaster.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 34d71483ef5..3fa5409c3fa 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.426 2004/10/06 09:35:21 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.427 2004/10/07 00:03:15 tgl Exp $ * * NOTES * @@ -2575,8 +2575,6 @@ static int BackendRun(Port *port) { int status; - struct timeval now; - struct timezone tz; char remote_host[NI_MAXHOST]; char remote_port[NI_MAXSERV]; char remote_ps_data[NI_MAXHOST]; @@ -2754,9 +2752,7 @@ BackendRun(Port *port) * start a new random sequence in the random() library function. */ random_seed = 0; - gettimeofday(&now, &tz); - srandom((unsigned int) now.tv_usec); - + srandom((unsigned int) (MyProcPid ^ port->session_start.tv_usec)); /* ---------------- * Now, build the argv vector that will be given to PostgresMain. -- GitLab