mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2026-02-22 18:40:08 +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
|
// Lock
|
||||||
|
// Recursive locking is implemented manually instead of using PTHREAD_MUTEX_RECURSIVE.
|
||||||
|
// See: https://github.com/SoftEtherVPN/SoftEtherVPN/pull/2219
|
||||||
bool UnixLock(LOCK *lock)
|
bool UnixLock(LOCK *lock)
|
||||||
{
|
{
|
||||||
pthread_mutex_t *mutex;
|
pthread_mutex_t *mutex;
|
||||||
|
|||||||
@ -17,6 +17,10 @@ race_top:BindConnectThreadForIPv4
|
|||||||
race_top:BindConnectThreadForIPv6
|
race_top:BindConnectThreadForIPv6
|
||||||
race_top:BindConnectEx5
|
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
|
## Manual PTHREAD_MUTEX_RECURSIVE
|
||||||
# The Lock/Unlock mechanism on Unix is a manual, hand-coded implementation of 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