Forward received condition variable signals on cancel.

Thomas Munro <tmunro@postgresql.org>

Commit: b91dd9de5ea0839d0d248ebbe8cb926c3df52c7c
Author: Thomas Munro <tmunro@postgresql.org>
Date: 2019-07-13T02:50:18Z
Releases: 13.0
Forward received condition variable signals on cancel.

After a process decides not to wait for a condition variable, it can
still consume a signal before it reaches ConditionVariableCancelSleep().
In that case, pass the signal on to another waiter if possible, so that
a signal doesn't go missing when there is another process ready to
receive it.

Author: Thomas Munro
Reviewed-by: Shawn Debnath
Discussion: https://postgr.es/m/CA%2BhUKGLQ_RW%2BXs8znDn36e-%2Bmq2--zrPemBqTQ8eKT-VO1OF4Q%40mail.gmail.com

Files

PathChange+/−
src/backend/storage/lmgr/condition_variable.c modified +11 −0

Discussion