Fujii Masao wrote:
> On Tue, Jun 9, 2015 at 5:21 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> > Fujii Masao wrote:
> > Can't we create
> > some common function that would be called both here and on ServerLoop?
>
> Agreed. So, what about the attached patch?
No attachment ...
> > We also have sigusr1_handler that starts an archiver -- why does that
> > one use different conditions?
>
> Because that code path can be reached only during recovery.
> So XLogArchivingActive() which indicates whether archiver is
> allowed to start during normal processing doesn't need to be
> checked there.
Makes sense.
> OTOH, in the other places where archiver is started up,
> we can reach there during not only recovery but also normal processing.
> So the conditions that we need to check are different.
I think it would be simpler to centralize knowledge in a single
function, and have that function take an argument indicating whether
we're in recovery or normal processing, instead of spreading it to every
place that can possibly start the archiver.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services