diff options
| author | Leonid Lisovskiy <lly.dev@gmail.com> | 2015-12-27 20:46:49 +0300 | 
|---|---|---|
| committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-01-01 19:48:17 +0100 | 
| commit | d1b1ccb72f4dee5728f0878054709721b1163f62 (patch) | |
| tree | 862e6231c4472e83b911d6794f11ee6b4e84efe7 /libc/stdlib/malloc/heap.h | |
| parent | a65637cc30455841909b2676599589b702bd654e (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/stdlib/malloc/heap.h')
0 files changed, 0 insertions, 0 deletions
