• Robert Haas's avatar
    Support condition variables. · e8ac886c
    Robert Haas authored
    Condition variables provide a flexible way to sleep until a
    cooperating process causes an arbitrary condition to become true.  In
    simple cases, this can be accomplished with a WaitLatch/ResetLatch
    loop; the cooperating process can call SetLatch after performing work
    that might cause the condition to be satisfied, and the waiting
    process can recheck the condition each time.  However, if the process
    performing the work doesn't have an easy way to identify which
    processes might be waiting, this doesn't work, because it can't
    identify which latches to set.  Condition variables solve that problem
    by internally maintaining a list of waiters; a process that may have
    caused some waiter's condition to be satisfied must "signal" or
    "broadcast" on the condition variable.
    
    Robert Haas and Thomas Munro
    e8ac886c
xact.c 156 KB