LWLock

storage/lmgr/lwlock.c
LWLockAcquire()でロック取得。
LWLockRelease()でロック開放。
LWLockAcquire()でロックが取得できないときは、LWLock構造体のhead, tailにロック待ちのプロセスがリストでつながれ、PGSemaphoreLock()でwaitする。
ロックを持っているプロセスが、LWLockRelease()でロックを開放するとき、PGSemaphoreUnlock()で、ロック待ちのプロセスをwakeupする。