postgresql/src
Heikki Linnakangas 2746e5f21d Introduce latches. A latch is a boolean variable, with the capability to
wait until it is set. Latches can be used to reliably wait until a signal
arrives, which is hard otherwise because signals don't interrupt select()
on some platforms, and even when they do, there's race conditions.

On Unix, latches use the so called self-pipe trick under the covers to
implement the sleep until the latch is set, without race conditions. On
Windows, Windows events are used.

Use the new latch abstraction to sleep in walsender, so that as soon as
a transaction finishes, walsender is woken up to immediately send the WAL
to the standby. This reduces the latency between master and standby, which
is good.

Preliminary work by Fujii Masao. The latch implementation is by me, with
helpful comments from many people.
2010-09-11 15:48:04 +00:00
..
backend Introduce latches. A latch is a boolean variable, with the capability to 2010-09-11 15:48:04 +00:00
bin Avoid passing signed chars to <ctype.h> functions ... same old 2010-08-25 00:53:37 +00:00
include Introduce latches. A latch is a boolean variable, with the capability to 2010-09-11 15:48:04 +00:00
interfaces Cursor names in the backend are not case-sensitve. This change makes sure that 2010-09-10 10:13:20 +00:00
makefiles Allow for LDFLAGS_SL already having a value in Makefile.aix. 2010-07-06 03:41:02 +00:00
pl Catch null pointer returns from PyCObject_AsVoidPtr and PyCObject_FromVoidPtr 2010-08-25 19:37:56 +00:00
port Modify pg_upgrade to set/restore all environment variables related to 2010-09-07 14:10:30 +00:00
template Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
test Install a data-type-based solution for protecting pg_get_expr(). 2010-09-03 01:34:55 +00:00
timezone Update time zone data files to tzdata release 2010l: DST law changes in 2010-08-26 19:58:36 +00:00
tools Introduce latches. A latch is a boolean variable, with the capability to 2010-09-11 15:48:04 +00:00
tutorial Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Rethink the way walreceiver is linked into the backend. Instead than shoving 2010-01-20 09:16:24 +00:00
Makefile.global.in When in automatic dependency mode, never delete any intermediate 2010-08-24 18:06:12 +00:00
Makefile.shlib Still more third thoughts: when linking shared libraries, LDFLAGS probably 2010-07-06 03:55:33 +00:00
bcc32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00
nls-global.mk Avoid error from mkdir if no languages are to be installed 2010-05-13 14:35:28 +00:00
win32.mak Update supported standalone VC++ version to 7.1+ only, and fix 2007-08-03 10:47:11 +00:00