• Tom Lane's avatar
    Block interrupts during HandleParallelMessages(). · b6a97b91
    Tom Lane authored
    As noted by Alvaro, there are CHECK_FOR_INTERRUPTS() calls in the shm_mq.c
    functions called by HandleParallelMessages().  I believe they're all
    unreachable since we always pass nowait = true, but it doesn't seem like
    a great idea to assume that no such call will ever be reachable from
    HandleParallelMessages().  If that did happen, there would be a risk of a
    recursive call to HandleParallelMessages(), which it does not appear to be
    designed for --- for example, there's nothing that would prevent
    out-of-order processing of received messages.  And certainly such cases
    cannot easily be tested.  So let's prevent it by holding off interrupts for
    the duration of the function.  Back-patch to 9.5 which contains identical
    code.
    
    Discussion: <14869.1470083848@sss.pgh.pa.us>
    b6a97b91
parallel.c 33.9 KB