pgsql: Support condition variables.

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: Support condition variables.
Дата
Msg-id E1c9GkE-0001hX-Ff@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Support condition variables.

Condition variables provide a flexible way to sleep until a
cooperating process causes an arbitrary condition to become true.  In
simple cases, this can be accomplished with a WaitLatch/ResetLatch
loop; the cooperating process can call SetLatch after performing work
that might cause the condition to be satisfied, and the waiting
process can recheck the condition each time.  However, if the process
performing the work doesn't have an easy way to identify which
processes might be waiting, this doesn't work, because it can't
identify which latches to set.  Condition variables solve that problem
by internally maintaining a list of waiters; a process that may have
caused some waiter's condition to be satisfied must "signal" or
"broadcast" on the condition variable.

Robert Haas and Thomas Munro

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/e8ac886c24776295dd9b025386a821061da8e4d1

Modified Files
--------------
src/backend/access/transam/xact.c             |   4 +
src/backend/bootstrap/bootstrap.c             |   2 +
src/backend/postmaster/bgwriter.c             |   2 +
src/backend/postmaster/checkpointer.c         |   2 +
src/backend/postmaster/walwriter.c            |   2 +
src/backend/replication/walsender.c           |   2 +
src/backend/storage/lmgr/Makefile             |   2 +-
src/backend/storage/lmgr/condition_variable.c | 225 ++++++++++++++++++++++++++
src/backend/storage/lmgr/proc.c               |   7 +
src/include/storage/condition_variable.h      |  59 +++++++
src/include/storage/proc.h                    |   3 +
src/include/storage/proclist.h                |  56 ++++++-
12 files changed, 364 insertions(+), 2 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: add a section in Part II concerning RETURNING.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Improve handling of "UPDATE ... SET (column_list) = row_construc