version 1.199, 2019/10/03 10:34:30 |
version 1.200, 2019/10/04 01:57:53 |
Line 1674 _rtld_shared_enter(void) |
|
Line 1674 _rtld_shared_enter(void) |
|
if (cur == (self | RTLD_EXCLUSIVE_MASK)) { |
if (cur == (self | RTLD_EXCLUSIVE_MASK)) { |
if (_rtld_mutex_may_recurse) |
if (_rtld_mutex_may_recurse) |
return; |
return; |
_rtld_error("%s: dead lock detected", __FUNCTION__); |
_rtld_error("%s: dead lock detected", __func__); |
_rtld_die(); |
_rtld_die(); |
} |
} |
waiter = atomic_swap_uint(&_rtld_waiter_shared, self); |
waiter = atomic_swap_uint(&_rtld_waiter_shared, self); |
Line 1738 _rtld_exclusive_enter(sigset_t *mask) |
|
Line 1738 _rtld_exclusive_enter(sigset_t *mask) |
|
membar_sync(); |
membar_sync(); |
cur = _rtld_mutex; |
cur = _rtld_mutex; |
if (cur == locked_value) { |
if (cur == locked_value) { |
_rtld_error("%s: dead lock detected", __FUNCTION__); |
_rtld_error("%s: dead lock detected", __func__); |
_rtld_die(); |
_rtld_die(); |
} |
} |
if (cur) |
if (cur) |