mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Up until now, we've held this lock when performing a checkpoint or restartpoint, but commit 076a055acf3c55314de267c62b03191586d79cf6 back in 2004 and commit 7e48b77b1cebb9a43f9fdd6b17128a0ba36132f9 from 2009, taken together, have removed all need for this. In the present code, there's only ever one process entitled to attempt a checkpoint: either the checkpointer, during normal operation, or the postmaster, during single-user operation. So, we don't need the lock. One possible concern in making this change is that it means that a substantial amount of code where HOLD_INTERRUPTS() was previously in effect due to the preceding LWLockAcquire() will now be running without that. This could mean that ProcessInterrupts() gets called in places from which it didn't before. However, this seems unlikely to do very much, because the checkpointer doesn't have any signal mapped to die(), so it's not clear how, for example, ProcDiePending = true could happen in the first place. Similarly with ClientConnectionLost and recovery conflicts. Also, if there are any such problems, we might want to fix them rather than reverting this, since running lots of code with interrupt handling suspended is generally bad. Patch by me, per an inquiry by Amul Sul. Review by Tom Lane and Michael Paquier. Discussion: http://postgr.es/m/CAAJ_b97XnBBfYeSREDJorFsyoD1sHgqnNuCi=02mNQBUMnA=FA@mail.gmail.com
<!-- doc/src/sgml/README.links --> Linking within DocBook documents can be confusing, so here is a summary: Intra-document Linking ---------------------- <xref> use to get chapter/section number from the title of the target link, or xreflabel if defined at the target, or refentrytitle if target is a refentry; has no close tag http://www.oasis-open.org/docbook/documentation/reference/html/xref.html linkend= controls the target of the link/xref, required endterm= for <xref>, allows the text of the link/xref to be taken from a different link target title <link> use to supply text for the link, only uses linkend, requires </link> http://www.oasis-open.org/docbook/documentation/reference/html/link.html External Linking ---------------- <ulink> like <link>, but uses a URL (not a document target); requires </ulink>; if no text is specified, the URL appears as the link text http://www.oasis-open.org/docbook/documentation/reference/html/ulink.html url= used by <ulink> to specify the URL, required Guidelines ---------- - For an internal link, if you want to supply text, use <link>, else <xref>. - Specific nouns like GUC variables, SQL commands, and contrib modules usually have xreflabels. - For an external link, use <ulink>, with or without link text. - xreflabels added to tags prevent the chapter/section for id's from being referenced; only the xreflabel is accessible. Therefore, use xreflabels only when linking is common, and chapter/section information is unneeded.