Skip to content

Commit

Permalink
[docs] Some notes on synchronisation about m_Status
Browse files Browse the repository at this point in the history
  • Loading branch information
maxsharabayko committed Apr 16, 2021
1 parent 2de70ed commit 5239378
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions docs/Synchronisation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@


### srt_setsockopt(..)

1. s_UDTUnited.locateSocket: m_GlobControlLock (lock, unlock)
2. CUDT::setOpt:
- Read m_bBroken, m_bClosing - no lock
- ScopedLock (m_ConnectionLock)
- ScopedLock (m_SendLock)
- ScopedLock (m_RecvLock)
- Reading m_bConnected, m_bConnecting, m_bOpened
- Change socket option value


### srt_connect(..)

1. s_UDTUnited.locateSocket: m_GlobControlLock (lock, unlock)
2. CUDTUnited::connectIn(..)
- ScopedLock (m_ControlLock)
- Read, write m_Status
- CUDT::startConnect(..)
- ScopedLock (m_ConnectionLock)
- m_RIDVectorLock: lock, unlock
- m_bConnecting: write
- if !bSynRecving return (non blocking mode)
- while (!m_bClosing)
### srt_getsockstate

1. ScopedLock (m_GlobControlLock)
- CUDTSocket::getStatus(): no lock. Accessing CUDT::m_bConnecting, m_bConnected, m_bBroken, m_Status

0 comments on commit 5239378

Please sign in to comment.