The following commit has been merged in the master branch:
commit 0607e8a4a19183798c656bf29aaa3f8aa75ac078
Author: Jeffrey Altman <[email protected]>
Date:   Wed Apr 14 23:21:37 2010 -0400

    Rx: restore thread safety to rx_NewCall
    
    Thread safety in rx_NewCall requires that only one thread be
    actively allocating or recycling a call at a time.  Since we are
    no longer holding the conn_call_lock across the entire transaction
    we need to have another synchronization mechanism.  Add a new
    rx_connection flag, RX_CONN_MAKECALL_ACTIVE, which when set indicates
    that a thread is actively obtaining a call.  If any other threads
    see this flag set, they will wait until being signalled that the
    thread has completed its activity.
    
    In addition, because the call->lock may be dropped when processing
    rxi_ResetCall(), we must hold a reference to the call once we
    begin using it.  Otherwise, the call may be garbage collected
    behind our back.
    
    Change-Id: Ie97757f812d7043203ffcaf399400789cda39da1
    Reviewed-on: http://gerrit.openafs.org/1755
    Reviewed-by: Derrick Brashear <[email protected]>
    Tested-by: Derrick Brashear <[email protected]>

 src/rx/rx.c |   41 +++++++++++++++++++++++++++--------------
 src/rx/rx.h |    3 ++-
 2 files changed, 29 insertions(+), 15 deletions(-)

-- 
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs

Reply via email to