Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)
Дата
Msg-id 4C8DC055.7040900@enterprisedb.com
обсуждение исходный текст
Ответ на Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)  (Jeff Davis <pgsql@j-davis.com>)
Ответы Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)  (Jeff Davis <pgsql@j-davis.com>)
Список pgsql-hackers
On 12/09/10 20:13, Jeff Davis wrote:
> On Sun, 2010-09-12 at 12:29 -0400, Tom Lane wrote:
>>> ... why throw an ERROR there if it can't happen (or
>>> indicates an inconsistent state when it does happen)?
>>
>> Are you suggesting that an Assert would be sufficient?
>
> I'm not too picky about whether it's Assert, ERROR, or PANIC (Asserts
> aren't available in production systems, which I assume is why elog was
> used);

Right, OwnLatch is a not performance-critical, so it's better to elog() 
IMHO.

> but we should be consistent and document that:
>   (a) it shouldn't happen
>   (b) that it's just a sanity check and we're ignoring the race

Would this be sufficient?

--- a/src/backend/port/unix_latch.c
+++ b/src/backend/port/unix_latch.c
@@ -156,6 +156,7 @@ OwnLatch(volatile Latch *latch)     if (selfpipe_readfd == -1)         initSelfPipe();

+    /* sanity check */     if (latch->owner_pid != 0)         elog(ERROR, "latch already owned");     latch->owner_pid
=MyProcPid;
 

Or you want to suggest something better?

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Walsender doesn't process options passed in the startup packet
Следующее
От: Michael Haggerty
Дата:
Сообщение: Re: cvs2git reports a "sprout" from a nonexistent commit?