version 1.164, 2021/10/23 01:28:33 |
version 1.165, 2022/04/09 23:52:23 |
|
|
struct lwp; |
struct lwp; |
struct uidinfo; |
struct uidinfo; |
#else |
#else |
|
#include <sys/atomic.h> |
#include <sys/uidinfo.h> |
#include <sys/uidinfo.h> |
#endif |
#endif |
|
|
Line 520 solock(struct socket *so) |
|
Line 521 solock(struct socket *so) |
|
{ |
{ |
kmutex_t *lock; |
kmutex_t *lock; |
|
|
lock = so->so_lock; |
lock = atomic_load_consume(&so->so_lock); |
mutex_enter(lock); |
mutex_enter(lock); |
if (__predict_false(lock != so->so_lock)) |
if (__predict_false(lock != atomic_load_relaxed(&so->so_lock))) |
solockretry(so, lock); |
solockretry(so, lock); |
} |
} |
|
|
static __inline void |
static __inline void |
sounlock(struct socket *so) |
sounlock(struct socket *so) |
{ |
{ |