diff options
author | Rich Felker <dalias@aerifal.cx> | 2019-07-28 17:44:51 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2019-07-28 17:44:51 -0400 |
commit | 1492bdf53c70f436b0fc2a7238011f9786bf4cd5 (patch) | |
tree | 3c4a0b830c8bc8c24d2ad9d25d57cf8f56bfb683 /src/linux/ppoll.c | |
parent | eb2e298cdc814493a6ced8c05cf0d0f5cccc8b63 (diff) | |
download | musl-1492bdf53c70f436b0fc2a7238011f9786bf4cd5.tar.gz musl-1492bdf53c70f436b0fc2a7238011f9786bf4cd5.tar.bz2 musl-1492bdf53c70f436b0fc2a7238011f9786bf4cd5.tar.xz musl-1492bdf53c70f436b0fc2a7238011f9786bf4cd5.zip |
futex wait operations: add time64 syscall support, decouple 32-bit time_t
thanks to the original factorization using the __timedwait function,
there are no FUTEX_WAIT calls anywhere else, giving us a single point
of change to make nearly all the timed thread primitives time64-ready.
the one exception is the FUTEX_LOCK_PI command for PI mutex timedlock.
I haven't tried to make these two points share code, since they have
different fallbacks (no non-private fallback needed for PI since PI
was added later) and FUTEX_LOCK_PI isn't a cancellation point (thus
allowing the whole code path to inline into pthread_mutex_timedlock).
as for other changes in this series, the time64 syscall is used only
if it's the only one defined for the arch, or if the requested timeout
does not fit in 32 bits. on current 32-bit archs where time_t is a
32-bit type, this makes it statically unreachable.
on 64-bit archs, there are only superficial changes to the code after
preprocessing. on current 32-bit archs, the time is passed via an
intermediate copy to remove the assumption that time_t is a 32-bit
type.
Diffstat (limited to 'src/linux/ppoll.c')
0 files changed, 0 insertions, 0 deletions