summaryrefslogtreecommitdiff
path: root/libc/signal/sigset-cvt-mask.h
diff options
context:
space:
mode:
authorLeonid Lisovskiy <lly.dev@gmail.com>2015-12-27 20:46:49 +0300
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-01-01 19:48:17 +0100
commitd1b1ccb72f4dee5728f0878054709721b1163f62 (patch)
tree862e6231c4472e83b911d6794f11ee6b4e84efe7 /libc/signal/sigset-cvt-mask.h
parenta65637cc30455841909b2676599589b702bd654e (diff)
Fix "pselect: Use linux pselect6 syscall when available"
Commit e3c3bf2b58 introduce use of pselect6, but has following disadvantages: * Use of userspace types in args67 structure - it breaks, for example, configs when 32-bit uClibc-ng compiled against 64-bit kernel. Syscall will always return EINVAL. We must use __kernel_* types and __SYSCALL_SIGSET_T_SIZE. * It have excess checks for NSEC_PER_SEC. Original code from select() implementation has struct timeval => struct timespec conversion, kernel select() syscall implementation do the same. But none of libc versions (glibc, eglibc, musl) I know, perform similar checks for pselect() - there is no structure fields conversions, just struct timespec through all the calls. To have such checks in uClibc-ng we need one example, at least. * It is possible to avoid extra userspace reads from kernel code if sigmask == NULL. I suggest to do it, for a few bytes cost. * Commit didn't add test case to testsuite. Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Diffstat (limited to 'libc/signal/sigset-cvt-mask.h')
0 files changed, 0 insertions, 0 deletions