pg_start_backup() can use a share lock to lock ControlFileLock
authorItagaki Takahiro
Wed, 10 Mar 2010 02:04:48 +0000 (02:04 +0000)
committerItagaki Takahiro
Wed, 10 Mar 2010 02:04:48 +0000 (02:04 +0000)
instead of an exclusive lock.

The change is almost for code cleanup. Since there seems to be no
performance benefits from it, backports should not be needed.

Fujii Masao

src/backend/access/transam/xlog.c

index d753a31cb3559ee7abcf4c691c160f1ae553fbfe..55d1ea05490b8b78740ca4eee58303b910be8024 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.379 2010/02/26 02:00:35 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.380 2010/03/10 02:04:48 itagaki Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -7897,7 +7897,7 @@ pg_start_backup(PG_FUNCTION_ARGS)
         * REDO pointer.  The oldest point in WAL that would be needed to
         * restore starting from the checkpoint is precisely the REDO pointer.
         */
-       LWLockAcquire(ControlFileLock, LW_EXCLUSIVE);
+       LWLockAcquire(ControlFileLock, LW_SHARED);
        checkpointloc = ControlFile->checkPoint;
        startpoint = ControlFile->checkPointCopy.redo;
        LWLockRelease(ControlFileLock);