mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2026-02-22 10:30:10 +03:00
Compare commits
4 Commits
copilot/ad
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 61b920f957 | |||
| 290f125abc | |||
| 93bf90ba95 | |||
| 5b356616a7 |
@ -1849,6 +1849,8 @@ void UnixUnlockEx(LOCK *lock, bool inner)
|
||||
}
|
||||
|
||||
// Lock
|
||||
// Recursive locking is implemented manually instead of using PTHREAD_MUTEX_RECURSIVE.
|
||||
// See: https://github.com/SoftEtherVPN/SoftEtherVPN/pull/2219
|
||||
bool UnixLock(LOCK *lock)
|
||||
{
|
||||
pthread_mutex_t *mutex;
|
||||
|
||||
@ -17,6 +17,10 @@ race_top:BindConnectThreadForIPv4
|
||||
race_top:BindConnectThreadForIPv6
|
||||
race_top:BindConnectEx5
|
||||
|
||||
# Thread Sanitizer reports data races on PoolHalting in THREAD, shared between ThreadPoolProc and WaitThread.
|
||||
# But if WaitThread reads false, synchronization is ensured by Wait from the PoolWaitList. If it reads true,
|
||||
# WaitThread simply returns.
|
||||
race_top:ThreadPoolProc
|
||||
|
||||
## Manual PTHREAD_MUTEX_RECURSIVE
|
||||
# The Lock/Unlock mechanism on Unix is a manual, hand-coded implementation of PTHREAD_MUTEX_RECURSIVE.
|
||||
|
||||
Reference in New Issue
Block a user