summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-03-19 23:18:34 -0400
committerRich Felker <dalias@aerifal.cx>2011-03-19 23:18:34 -0400
commitbe82e122bf37fdcd1766d1ed220f0300b30ab6a3 (patch)
tree73c5cf53dcedb63a0e90d5741f7dc805bf5374ac
parentbae862ab18186aba5cd80f1443492f7730dff5f3 (diff)
downloadmusl-be82e122bf37fdcd1766d1ed220f0300b30ab6a3.tar.gz
if returning errno value directly from a syscall, we need to negate it.
-rw-r--r--src/thread/__timedwait.c2
-rw-r--r--src/thread/pthread_kill.c2
-rw-r--r--src/time/clock_nanosleep.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/thread/__timedwait.c b/src/thread/__timedwait.c
index b38ea990..28b777bc 100644
--- a/src/thread/__timedwait.c
+++ b/src/thread/__timedwait.c
@@ -17,7 +17,7 @@ int __timedwait(volatile int *addr, int val, clockid_t clk, const struct timespe
if (to.tv_sec < 0) return ETIMEDOUT;
}
if (priv) priv = 128; priv=0;
- r = __syscall(__NR_futex, (long)addr, FUTEX_WAIT | priv, val, at ? (long)&to : 0);
+ r = -__syscall(__NR_futex, (long)addr, FUTEX_WAIT | priv, val, at ? (long)&to : 0);
if (r == ETIMEDOUT) return r;
return 0;
}
diff --git a/src/thread/pthread_kill.c b/src/thread/pthread_kill.c
index 6448d978..17aa5c4b 100644
--- a/src/thread/pthread_kill.c
+++ b/src/thread/pthread_kill.c
@@ -2,5 +2,5 @@
int pthread_kill(pthread_t t, int sig)
{
- return __syscall(__NR_tgkill, t->pid, t->tid, sig);
+ return -__syscall(__NR_tgkill, t->pid, t->tid, sig);
}
diff --git a/src/time/clock_nanosleep.c b/src/time/clock_nanosleep.c
index c777c179..721e7941 100644
--- a/src/time/clock_nanosleep.c
+++ b/src/time/clock_nanosleep.c
@@ -6,7 +6,7 @@ int clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct
{
int ret;
CANCELPT_BEGIN;
- ret = __syscall(__NR_clock_nanosleep, clk, flags, req, rem);
+ ret = -__syscall(__NR_clock_nanosleep, clk, flags, req, rem);
CANCELPT_END;
return ret;
}