• Witold Krecicki's avatar
    Fix a possible deadlock in TCP accepting · 000fdd8f
    Witold Krecicki authored
    Each network thread holds an array of locks, indexed by a hash
    of fd. When we accept a connection we hold a lock in accepting thread.
    We then generate the thread number and lock bucket for the new
    connection socket - if we hit the same thread and lock bucket as
    accepting socket we get a deadlock. Avoid this by checking if we're
    in the same thread/lock bucket and not locking in this case.
    (cherry picked from commit 75815c15)
socket.c 140 KB