Why BgWriterDelay is fixed? - Mailing list pgsql-general

From 高健
Subject Why BgWriterDelay is fixed?
Date
Msg-id CAL454F0ak34twvD75S0ZsB_1=6kJME5g1vY3WGzbyL9iE+s8kg@mail.gmail.com
Whole thread Raw
Responses Re: Why BgWriterDelay is fixed?  (Jeff Janes <jeff.janes@gmail.com>)
Re: Why BgWriterDelay is fixed?  (Peter Geoghegan <peter@2ndquadrant.com>)
List pgsql-general
In src/backend/postmaster/bgwriter.c , I can find the following source code(PostgreSQL9.2):


/*
 * GUC parameters
 */
int BgWriterDelay = 200;

...
rc = WaitLatch(&MyProc->procLatch,
  WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH,
  BgWriterDelay /* ms */ );
...
if (rc == WL_TIMEOUT && can_hibernate && prev_hibernate)
{
/* Ask for notification at next buffer allocation */
StrategyNotifyBgWriter(&MyProc->procLatch);
/* Sleep ... */
rc = WaitLatch(&MyProc->procLatch,
  WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH,
  BgWriterDelay * HIBERNATE_FACTOR);
/* Reset the notification request in case we timed out */
StrategyNotifyBgWriter(NULL);
}

But I also found  the following in postgresql.conf:
#bgwriter_delay = 200ms                 # 10-10000ms between rounds
It is now comment .
But according to the fixed code of  BgWriterDelay = 200, even when I update bgwriter_delay in postgresql.conf to a different value(eg 300ms), 
how can it ovewrite the fixed  200ms in bgwriter.c ?

I also want to know,  if it is not a bug, then what is the reason?

pgsql-general by date:

Previous
From: Tianyin Xu
Date:
Subject: Re: How to print application_name in log_line_prefix (using %a)?
Next
From: Seref Arikan
Date:
Subject: Access to postgresql query optimizer output