• Robert Haas's avatar
    shm_mq: Third attempt at fixing nowait behavior in shm_mq_receive. · 4efe26cb
    Robert Haas authored
    Commit a1480ec1 purported to fix the
    problems with commit b2ccb5f4, but it
    didn't completely fix them.  The problem is that the checks were
    performed in the wrong order, leading to a race condition.  If the
    sender attached, sent a message, and detached after the receiver
    called shm_mq_get_sender and before the receiver called
    shm_mq_counterparty_gone, we'd incorrectly return SHM_MQ_DETACHED
    before all messages were read.  Repair by reversing the order of
    operations, and add a long comment explaining why this new logic is
    (hopefully) correct.
    4efe26cb
shm_mq.c 34.3 KB