Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, pgsql-hackers@postgresql.org, Fujii Masao <masao.fujii@gmail.com>, Magnus Hagander <magnus@hagander.net>
Date: 2010-09-12T18:12:20Z
Lists: pgsql-hackers
Jeff Davis <pgsql@j-davis.com> writes: > However, that also means that the whole concept of OwnLatch/DisownLatch > is entirely redundant, and only there for asserts because it doesn't do > anything else. That seems a little strange to me, as well, so (at > minimum) it should be documented that the functions really have no > effect on execution and are required only to support debugging. Uh, this is nonsense. You have to have something like these functions to support transferring ownership of a latch from one process to another, which is required at least for the walreceiver usage. It's correct that the latch code itself isn't trying very hard to avoid a race condition in acquiring ownership, but that doesn't make the whole thing useless, it just means that we're assuming that will be avoided by logic elsewhere. If there is a bug elsewhere that allows two different processes to try to take ownership of the same latch, the current coding will expose that bug soon enough. regards, tom lane