The original comment of why we are safe without protection of critical
section is confusing.
Index: xlog.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/xlog.c,v
retrieving revision 1.187
diff -c -r1.187 xlog.c
*** xlog.c 17 Apr 2005 03:04:29 -0000 1.187
--- xlog.c 21 Apr 2005 10:12:01 -0000
***************
*** 4924,4931 ****
* buffers and commit-log buffers are flushed to disk.
*
* This I/O could fail for various reasons. If so, we will fail to
! * complete the checkpoint, but there is no reason to force a system
! * panic. Accordingly, exit critical section while doing it.
*/
END_CRIT_SECTION();
--- 4924,4934 ----
* buffers and commit-log buffers are flushed to disk.
*
* This I/O could fail for various reasons. If so, we will fail to
! * complete the checkpoint, there is no problem if this occurs in
! * ordinary situtations but it could be a problem if we are shutdown
! * database. However, we increase the CritSectionCount in
ShutdownXLOG()
! * already, so it is ok. Accordingly, exit critical section while
! * doing it.
*/
END_CRIT_SECTION();