aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-10-07 00:03:15 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-10-07 00:03:15 +0000
commit52a45818a13bc32156ada02554eef76e1124b618 (patch)
treea965aaaaa0586f9025905429a084d96e3410fdd4 /src
parentf629583f944490b184c5c69f652c5bc067e85705 (diff)
downloadpostgresql-52a45818a13bc32156ada02554eef76e1124b618.tar.gz
postgresql-52a45818a13bc32156ada02554eef76e1124b618.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c8
1 files 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.