Re: Condition variable live lock

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Condition variable live lock
Дата
Msg-id 28942.1515275038@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Condition variable live lock  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Condition variable live lock
Список pgsql-hackers
I wrote:
> I still think that we ought to change the Asserts on cv_sleep_target in
> ConditionVariablePrepareToSleep and ConditionVariableSleep to be full
> test-and-elog tests.  Those are checking a global correctness property
> ("global" meaning "interactions between completely unrelated modules can
> break this"), and they'd be extremely cheap compared to the rest of what
> those functions are doing, so I think insisting that they be Asserts is
> penny wise and pound foolish.

Actually ... perhaps a better design would be to have
ConditionVariable[PrepareTo]Sleep auto-cancel any prepared sleep for
a different condition variable, analogously to what we just did in
ConditionVariableBroadcast, on the same theory that whenever control
returns to the other CV wait loop it can re-establish the relevant
state easily enough.  I have to think that if the use of CVs grows
much, the existing restriction is going to become untenable anyway,
so why not just get rid of it?

            regards, tom lane


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

Предыдущее
От: Nikita Glukhov
Дата:
Сообщение: Re: [HACKERS] SQL/JSON in PostgreSQL
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: PATCH: pgbench - option to build using ppoll() for largerconnection counts