*** lwlock.c Tue Mar 17 12:27:49 2009 --- lwlock.c.orig Wed Mar 11 12:48:27 2009 *************** *** 87,93 **** static int lock_addin_request = 0; static bool lock_addin_request_allowed = true; - int LWLockWakeupAlgorithm; #ifdef LWLOCK_STATS static int counts_for_pid = 0; --- 87,92 ---- *************** *** 564,570 **** PGPROC *head; PGPROC *proc; int i; - int runq; PRINT_LWDEBUG("LWLockRelease", lockid, lock); --- 563,568 ---- *************** *** 612,631 **** * as many waiters as want shared access. */ proc = head; ! if (LWLockWakeupAlgorithm || !proc->lwExclusive) ! { ! if (LWLockWakeupAlgorithm <= 1) ! { while (proc->lwWaitLink != NULL && ! (proc->lwExclusive == proc->lwWaitLink->lwExclusive)) proc = proc->lwWaitLink; - } - else - { - runq= LWLockWakeupAlgorithm; - while (proc->lwWaitLink != NULL && --runq) - proc = proc->lwWaitLink; - } } /* proc is now the last PGPROC to be released */ lock->head = proc->lwWaitLink; --- 610,620 ---- * as many waiters as want shared access. */ proc = head; ! if (!proc->lwExclusive) ! { while (proc->lwWaitLink != NULL && ! !proc->lwWaitLink->lwExclusive) proc = proc->lwWaitLink; } /* proc is now the last PGPROC to be released */ lock->head = proc->lwWaitLink;