• Tom Lane's avatar
    Remove return values of ConditionVariableSignal/Broadcast. · ccf312a4
    Tom Lane authored
    In the wake of commit aced5a92, the semantics of these results are
    a bit squishy: we can tell whether we signaled some other process(es),
    but we do not know which ones were real waiters versus mere sentinels
    for ConditionVariableBroadcast operations.  It does not help much that
    ConditionVariableBroadcast will attempt to pass on the signal to the
    next real waiter, because (a) there might not be one, and (b) that will
    only happen awhile later, anyway.  So these results could overstate how
    much effect the calls really had.
    
    However, no existing caller of either function pays any attention to its
    result value, so it seems reasonable to just define that as a required
    property of a correct algorithm.  To encourage correctness and save some
    tiny number of cycles, change both functions to return void.
    
    Patch by me, per an observation by Thomas Munro.  No back-patch, since
    if any third parties happen to be using these functions, they might not
    appreciate an API break in a minor release.
    
    Discussion: https://postgr.es/m/CAEepm=0NWKehYw7NDoUSf8juuKOPRnCyY3vuaSvhrEWsOTAa3w@mail.gmail.com
    ccf312a4
condition_variable.h 2.3 KB