Return the actual success result from __futex.
futex(2) can return non-zero successes. Bug: 15195455 Change-Id: I7818bc922a5a2df31228ff72c169320b5e69a544
This commit is contained in:
parent
ef023873e2
commit
1ee46520ca
1 changed files with 4 additions and 4 deletions
|
@ -42,12 +42,12 @@ struct timespec;
|
|||
static inline __always_inline int __futex(volatile void* ftx, int op, int value, const struct timespec* timeout) {
|
||||
// Our generated syscall assembler sets errno, but our callers (pthread functions) don't want to.
|
||||
int saved_errno = errno;
|
||||
if (__predict_false(syscall(__NR_futex, ftx, op, value, timeout) == -1)) {
|
||||
int result = -errno;
|
||||
int result = syscall(__NR_futex, ftx, op, value, timeout);
|
||||
if (__predict_false(result == -1)) {
|
||||
result = -errno;
|
||||
errno = saved_errno;
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline int __futex_wake(volatile void* ftx, int count) {
|
||||
|
|
Loading…
Reference in a new issue