Commit Graph

538 Commits

Author SHA1 Message Date
Jameson Nash
612a8262b8 2025.01.15, Version 1.50.0 (Stable)
Changes since version 1.49.2:
 
 * ci: run macOS and iOS tests also on macOS 14 (Saúl Ibarra Corretgé)
 
 * unix,win: map ENOEXEC errno (Saúl Ibarra Corretgé)
 
 * test: skip multicast join test on ENOEXEC (Saúl Ibarra Corretgé)
 
 * ci: make sure the macOS firewall is disabled (Saúl Ibarra Corretgé)
 
 * darwin,test: squelch EBUSY error on multicast join (Saúl Ibarra Corretgé)
 
 * build: update minimum cmake to 3.10 (Ben Noordhuis)
 
 * kqueue: use EVFILT_USER for async if available (Jameson Nash)
 
 * unix,win: fix off-by-one in uv_wtf8_to_utf16() (Ben Noordhuis)
 
 * doc: add scala-native-loop to LINKS.md (Julian A Avar C)
 
 * unix: fix build breakage on haiku, openbsd, etc (Jeffrey H. Johnson)
 
 * kqueue: lower overhead in uv__io_check_fd (Andy Pan)
 
 * doc: move cjihrig back to active maintainers (cjihrig)
 
 * build(deps): bump actions/checkout from 3 to 4 (dependabot[bot])
 
 * unix,pipe: fix handling null buffer in uv_pipe_get{sock,peer}name (Saúl
   Ibarra Corretgé)
 
 * unix,win: harmonize buffer checking (Saúl Ibarra Corretgé)
 
 * unix,win: add support for detached threads (Juan José Arboleda)
 
 * src: add uv_thread_set/getname() methods (Santiago Gimeno)
 
 * build: fix qemu builds (Ben Noordhuis)
 
 * win: drop support for windows 8 (Ben Noordhuis)
 
 * linux: fix uv_cpu_info() arm cpu model detection (Ben Noordhuis)
 
 * linux: always use io_uring for epoll batching (Ben Noordhuis)
 
 * doc: clarify repeating timer behavior more (Ben Noordhuis)
 
 * unix,win: handle nbufs=0 in uv_udp_try_send (Ben Noordhuis)
 
 * win: use GetQueuedCompletionStatusEx directly (Saúl Ibarra Corretgé)
 
 * win: enable uv_thread_{get,set}name on MinGW (Saúl Ibarra Corretgé)
 
 * win: drop support for the legacy MinGW (Saúl Ibarra Corretgé)
 
 * win,fs: get (most) fstat when no permission (Jameson Nash)
 
 * win: plug uv_fs_event_start memory leak (amcgoogan)
 
 * test: address FreeBSD kernel bug causing NULL path in fsevents (Juan José
   Arboleda)
 
 * unix: refactor udp sendmsg code (Ben Noordhuis)
 
 * unix,win: add uv_udp_try_send2 (Ben Noordhuis)
 
 * test: fix flaky flaky udp_mmsg test (Juan José Arboleda)
 
 * build: enable fdsan in Android (Juan José Arboleda)
 
 * test: fix udp-multicast-join for FreeBSD (Juan José Arboleda)
 
 * win: fix leak processing fs event (Saúl Ibarra Corretgé)
 
 * src: set a default thread name for workers (Rafael Gonzaga)
 
 * misc: implement uv_getrusage_thread (Juan José Arboleda)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAmeH+OkACgkQ8ow8jaM8
 A75yQBAAiYL5OQM5nxSoEzOn9gBi3ssuvJX6549gytYRLQKyhHCeS43i+YFVeWbw
 OjQa59M2BuYz11YoHW5Vu/1ohU06CCugvwJ9QKSvEfsDcmtBIAJp4RO5XaGTtnlB
 k7PqJj/BrX+MyH8JzeioxILHuitlemwBy8fqrguxIqlO8XnT6H2lFtqwJsD/OvTj
 O5a2kjdyK0773LraOsv18XJBWWQ8dfebxZgVvYY2Vi461CpZKgq85uKYrBpQLkqK
 oVY9VrDRNkDQZGJgJiC3FqtNudw0W15y3vuEVoYTkaKbQzoAqx7HP3GyQaGc0186
 afGediLfb1SkVscbwVQMDB7UvJjJaGd9DNQoa7PorjtAn/l+tsrZpCGFGqwRmGIC
 w8s7/pmlyKTtsMgKV3WUmTvB6XDgWt70OK4viCpbf2COdoRWjTvdMkAq1FEv/E7B
 QWlzyqItuJ1Z556mnKy0ifCG5V/eW8HlaMhJARAsQDVeKzquTMvrvJNm8iKVKpFh
 8Y1OR+0nGc3l7Id9x8drKNWfGif11LraJXHUJmrfj9OLLHaE613krvXwahyogxap
 yTmtWDOcVS9z37xAh/JAd7eX7Aj157OhXy4ax55q2+9akp+jfTyvDRTgQHtAcq0J
 k21+HSnUwFVzyR8Ux8Vz2O+w7WXNOeatOK5UPZ+wKxtZ1Q7ylog=
 =pGW8
 -----END PGP SIGNATURE-----

Merge tag 'v1.50.0' into merge_1.50.0
2025-02-26 19:13:27 +00:00
Juan José
be8eec8c5a
misc: implement uv_getrusage_thread (#4666)
Refs: https://github.com/libuv/libuv/issues/3119

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
Co-authored-by: James M Snell <jasnell@gmail.com>
2025-01-14 14:50:26 +01:00
Ben Noordhuis
e8969bff6c unix,win: add uv_udp_try_send2
Add a version of uv_udp_try_send that can send multiple datagrams.

Uses sendmmsg(2) on platforms that support it (Linux, FreeBSD, macOS),
falls back to a regular sendmsg(2) loop elsewhere.

This work was sponsored by ISC, the Internet Systems Consortium.
2024-12-13 21:52:59 +01:00
Santiago Gimeno
61c966cf0b
src: add uv_thread_set/getname() methods (#4599)
`uv_thread_setname()` sets the name of the current thread. Different
platforms define different limits on the max number of characters
a thread name can be: Linux, IBMi (16), macOS (64), Windows (32767),
and NetBSD (32), etc. `uv_thread_setname()` will truncate it in case
`name` is larger than the limit of the platform.

`uv_thread_getname()` gets the name of the thread specified by `tid`.
The thread name is copied into the buffer pointed to by `name`. The
`size` parameter specifies the size of the buffer pointed to by `name`.
The buffer should be large enough to hold the name of the thread plus
the trailing NUL, or it will be truncated to fit.
2024-11-27 12:52:18 +01:00
Juan José
556a0f1f0f
unix,win: add support for detached threads (#4621)
This commit introduces the `uv_thread_detach` for thread detaching,
allowing threads to be detached state on both UNIX and Windows platforms.

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2024-11-26 08:44:38 -05:00
Saúl Ibarra Corretgé
64f4502b9b unix,win: map ENOEXEC errno 2024-10-22 10:26:32 +02:00
dsnelgrove
8ad246557a
win,process: allow users to configure child error mode (#4569)
Add UV_PROCESS_WINDOWS_USE_PARENT_ERROR_MODE to allow the user to
propagate user-controlled process-wide SetErrorMode to child processes
(for cmake). Default behavior is unchanged.
2024-10-17 15:39:44 -04:00
Santiago Gimeno
e78e29c231
linux: disable SQPOLL io_uring by default (#4492)
The SQPOLL io_uring instance wasn't providing consistent behaviour to
users depending on kernel versions, load shape, ... creating issues
difficult to track and fix. Don't use this ring by default but allow
enabling it by calling `uv_loop_configure()` with
`UV_LOOP_ENABLE_IO_URING_SQPOLL`.
2024-08-06 22:10:13 +02:00
Ben Noordhuis
2780b87d56
unix,win: export wtf8 functions properly (#4437)
Mark them UV_EXTERN so they are visible on Windows.

Fixes: https://github.com/libuv/libuv/issues/4436
2024-07-12 10:22:26 +02:00
Andy Pan
ba24986f8d
unix: support SO_REUSEPORT with load balancing for UDP (#4419)
Signed-off-by: Andy Pan <i@andypan.me>
2024-06-20 17:17:17 +02:00
Andy Pan
d2d92b74a8
unix: support SO_REUSEPORT with load balancing for TCP 2024-05-21 13:36:49 +02:00
Jameson Nash
29a708a434 2024.02.07, Version 1.48.0 (Stable)
Changes since version 1.47.0:
 
 * misc: remove deprecated stalebot file (Jameson Nash)
 
 * build: disable windows asan buildbot (Ben Noordhuis)
 
 * test: don't run tcp_writealot under msan (Ben Noordhuis)
 
 * build,win: remove extraneous -lshell32 (Ben Noordhuis)
 
 * unix: ignore ifaddrs with NULL ifa_addr (Stephen Gallagher)
 
 * unix,win: utility for setting priority for thread (Hao Hu)
 
 * pipe: add back error handling to connect / bind (Jameson Nash)
 
 * test: check if ipv6 link-local traffic is routable (Ben Noordhuis)
 
 * win: remove check for UV_PIPE_NO_TRUNCATE (Jameson Nash)
 
 * linux: disable io_uring on hppa below kernel 6.1.51 (matoro)
 
 * unix,win: fix read past end of pipe name buffer (Ben Noordhuis)
 
 * unix: unbreak macOS < 10.14 (Sergey Fedorov)
 
 * aix: disable ipv6 link local (Abdirahim Musse)
 
 * doc: move cjihrig to emeriti (cjihrig)
 
 * unix: correct pwritev conditional (Bo Anderson)
 
 * test_fs.c: Fix issue on 32-bit systems using btrfs (Stephen Gallagher)
 
 * misc: ignore libuv-release-tool files (Jameson Nash)
 
 * win: honor NoDefaultCurrentDirectoryInExePath env var (Ardi Nugraha)
 
 * idna: fix compilation warning (Saúl Ibarra Corretgé)
 
 * linux: remove HAVE_IFADDRS_H macro (Ben Noordhuis)
 
 * test: skip tcp-write-in-a-row on IBM i (Abdirahim Musse)
 
 * build,win: work around missing uuid.dll on MinGW (Anton Bachin)
 
 * win: stop using deprecated names (Matheus Izvekov)
 
 * unix,win: fix busy loop with zero timeout timers (Matheus Izvekov)
 
 * aix,ibmi: use uv_interface_addresses instead of getifaddrs (Abdirahim Musse)
 
 * linux: fix bind/connect for abstract sockets (Santiago Gimeno)
 
 * win: replace c99 comments with c89 comments (Trevor Flynn)
 
 * build: add .cache clangd folder to .gitignore (Juan José Arboleda)
 
 * unix: support full TCP keep-alive on Solaris (Andy Pan)
 
 * freebsd: fix F_KINFO file path handling (David Carlier)
 
 * linux: retry fs op if unsupported by io_uring (Santiago Gimeno)
 
 * freebsd: fix build on non-intel archs (David Carlier)
 
 * unix: optimize uv__tcp_keepalive cpp directives (Andy Pan)
 
 * linux: disable io_uring on ppc64 and ppc64le (Brad King)
 
 * doc: add very basic Security Policy document (Santiago Gimeno)
 
 * build: re-enable msvc-asan job on CI (Jameson Nash)
 
 * win/spawn: optionally run executable paths with no file extension (Brad King)
 
 * win: fix ESRCH implementation (Jameson Nash)
 
 * unix,win: reset the timer queue on stop (Santiago Gimeno)
 
 * fix: always zero-terminate idna output (Ben Noordhuis)
 
 * fix: reject zero-length idna inputs (Ben Noordhuis)
 
 * test: empty strings are not valid IDNA (Santiago Gimeno)
 
 * Merge pull request from GHSA-f74f-cvh7-c6q6 (Ben Noordhuis)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAmXD5fwACgkQ8ow8jaM8
 A76H+g/9F2O6hXWfm5LACvIRhcDovK1NLprTp5Ae5qA9klSDzClxi6n7/B9NtDhv
 X2EwEXhQpc/Y600dbfcmKr6P5Gt2FDhjO3iy9gCrkUN+ZHV7kRCb8dmp+eyGcOag
 uKqkkpZN6aiT0Jp4H4x66VnSotvLeilHzs16+A3/r5wUNmqzhj0cG/UVaDyZfYEH
 NCqv5MFw2N9qO5lnsu2g1sDEujnjWhXUcY9D1vVUDf63CU09n+lz1LKRB5LKEGRy
 bPF/IjuxJAJQA+gsgj1dP2nuUH8IGhNOpkQ2WG8wEuPp6hahGvND4YovP/sDY7pV
 9oo+73v1boAlYVS9IhAINVnKiPJx7tHJQvMcmgezSBCrd6v+PoWfL4A9oAWOp1qX
 ju+PC2Xk7E9Kt5gC9hjDzdMt6nw7Ab5pJ3ZcVF/2Sq27w0T4nxAOOpAt7JnJ53ug
 o26RWlO9NvBe30Uh2fwqye1UuL17Qjo7Y+ztrMQGmeV+RW693xqZ/bnVOhQupfqI
 fJNl1BBgInT9IU+A8ZtHeDuRf04hEit0rzS/yGrcHa1bHEHorG5W52nazYIsQURM
 hwWBDQ2dH2iTogHGdQ/CKdMGwuo+RwCavBXCHu03jf10hy+ImHF5ifJA7WLeH0oF
 QlCmeJl/26sOHlEa7wQnjhzh7YNg6JDuq6K22a9iR5vnduK1ByU=
 =67rH
 -----END PGP SIGNATURE-----

Merge tag 'v1.48.0' into merge_1.48.0
2024-02-09 19:52:08 +00:00
Brad King
3f7191e5c2
win/spawn: optionally run executable paths with no file extension (#4292)
Add a process options flag to enable the optional behavior. Most users
are likely recommended to set this flag by default, but it was deemed
potentially breaking to set it by default in libuv.

Co-authored-by: Kyle Edwards <kyle.edwards@kitware.com>
2024-02-05 11:04:05 -05:00
Jameson Nash
34fff5a15b 2023.11.06, Version 1.47.0 (Stable)
Changes since version 1.46.0:
 
 * test: fix license blurb (Ben Noordhuis)
 
 * linux: fix harmless warn_unused_result warning (Shuduo Sang)
 
 * darwin: fix build warnings (小明)
 
 * linux: don't use io_uring on pre-5.10.186 kernels (Ben Noordhuis)
 
 * fs: fix WTF-8 decoding issue (Jameson Nash)
 
 * test: enable disabled tcp_connect6_error_fault (Ben Noordhuis)
 
 * test: enable disabled fs_link (Ben Noordhuis)
 
 * test: enable disabled spawn_same_stdout_stderr (Ben Noordhuis)
 
 * linux: handle UNAME26 personality (Ben Noordhuis)
 
 * build: move cmake_minimum_required version to 3.9 (Keith Winstein)
 
 * unix: set ipv6 scope id for link-local addresses (Ben Noordhuis)
 
 * unix: match kqueue and epoll code (Trevor Norris)
 
 * win,spawn: allow `%PATH%` to be unset (Kyle Edwards)
 
 * doc: switch to Furo, a more modern Sphinx theme (Saúl Ibarra Corretgé)
 
 * darwin: make TCP_KEEPINTVL and TCP_KEEPCNT available (小明)
 
 * win,fs: avoid winapi macro redefinition (Brad King)
 
 * linux: add missing riscv syscall numbers (michalbiesek)
 
 * doc: fix broken "Shared library" Wikipedia link (Alois Klink)
 
 * unix: get mainline kernel version in Ubuntu (Santiago Gimeno)
 
 * unix: get mainline kernel version in Debian (Ben Noordhuis)
 
 * build: fix qemu install in CI-unix workflow (Santiago Gimeno)
 
 * unix: disable io_uring close on selected kernels (Santiago Gimeno)
 
 * test: skip tests when ipv6 is not available (Santiago Gimeno)
 
 * ibmi: implement ifaddrs, getifaddrs, freeifaddrs (Abdirahim Musse)
 
 * unix: reset signal counters after fork (SmorkalovG)
 
 * win,process: avoid assert after spawning Store app (Jameson Nash)
 
 * unix: remove pread/preadv conditionals (Ben Noordhuis)
 
 * unix: remove pwrite/pwritev conditionals (Ben Noordhuis)
 
 * darwin: remove workaround for data corruption bug (Ben Noordhuis)
 
 * src: default to stream=stderr in handle printer (Ben Noordhuis)
 
 * test: switch to new-style ASSERT_EQ macros (Pleuvens)
 
 * zos: correctly get cpu model in uv_cpu_info() (jolai)
 
 * test: fix get_passwd2 on IBM i (Abdirahim Musse)
 
 * unix: don't malloc on sync uv_fs_read (Ben Noordhuis)
 
 * freebsd: get fs event path with fcntl(F_KINFO) (David Carlier)
 
 * test: switch from ASSERT_* to ASSERT_PTR_* (Pleuvens)
 
 * darwin: workaround apple pthread_cond_wait bug (Julien Roncaglia)
 
 * doc: uv_close should be called after exit callback (Pleuvens)
 
 * test: 192.0.2.0/24 is the actual -TEST-NET-1 (prubel)
 
 * unix: add back preadv/pwritev fallback (Ben Noordhuis)
 
 * unix: rename variable for consistency (Ben Noordhuis)
 
 * unix: merge read/write code into single functions (Ben Noordhuis)
 
 * doc: filename arg to uv_fs_event_cb can be NULL (Ben Noordhuis)
 
 * build,win: we need to link against shell32.lib (Per Allansson)
 
 * unix: no preadv/pwritev workaround if not needed (Jeffrey H. Johnson)
 
 * build: add CI for Windows ARM64 (build only) (Per Allansson)
 
 * linux: disable io_uring on 32 bits arm systems (Ben Noordhuis)
 
 * build: run sanitizers on macos ci (Ben Noordhuis)
 
 * misc: export WTF8 conversion utilities (Jameson Nash)
 
 * build: fix libuv.a file name for cmake (Jameson Nash)
 
 * build: add windows ubsan and clang ci (Matheus Izvekov)
 
 * win: improve accuracy of ProductName between arch (Christian Heimlich)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEz7ucqaW+r9cOKzxaeaZ8VaNnnIsFAmVJLa4ACgkQeaZ8VaNn
 nIvdMw//XQzU1OasKcghWZZAFmrgy8D+40Q5drSgCFryAA+WA9wXruKOeqQ3vw7+
 9Xwai97fMbxGSFhR2IwjbwD8o8DZotDTMBgSUvuyAlzdw0xB2D+eAnvxaMmYg2km
 R5eNb2KgmzhC7HFuPbpjWbL1mEnBU8rTSzV6yeMs2LXfLquJoopmgAjB2MXS6/Fr
 +WkwJx7/B/3wEhhbX5sopd6PT8UcWdbSvB/S+PU12kI0KgJeJlq0jXd5LyDaQYI6
 j4XYcpgEp8B/gyiXSgso+eg1CiZQUYVMXZ5+6YA5le/s5ieJwJ2cEvo/HJa5guZ/
 PBb+ulucUaupBzQFaPYwnrEzE3YHNVppBcfryxqn48Ih0Z9pNs/6EdxqggYvAyWk
 VA9Yi0qDFSFgD0hZSkvi/m/UEH17FLTac1DSob4EKfwAJ04spmEtiBWaL+7wQ/ca
 Kc819NXBaFUb+BEkN711B1CvaT6aef9wZcis42MPHjHJ19BNgb4uAa3GbmrvB2dt
 EodLGlbOAkKLFC29qAGeKZKhnSWfZS/HvuyqMOgONuJTj0Jm/RdwqIsvILejtj32
 7m9saTkRWav4L1yvksUYT24WIk1e324gBgm9411IggdDILgbLYrwWNZb56FgMDQb
 cqmg0Ap6zMZ9UOf4hfqTiKZPjqqfxgSp20zCjVTy+vsCSXJnFaQ=
 =7yzD
 -----END PGP SIGNATURE-----

Merge tag 'v1.47.0' into merge_1.47.0
2023-11-21 18:41:12 +00:00
Jameson Nash
633629e8e7 2023.06.30, Version 1.46.0 (Stable)
Changes since version 1.45.0:
 
 * Add SHA to ChangeLog (Santiago Gimeno)
 
 * misc: update readthedocs config (Jameson Nash)
 
 * test: remove erroneous RETURN_SKIP (Ben Noordhuis)
 
 * android: disable io_uring support (Ben Noordhuis)
 
 * linux: add some more iouring backed fs ops (Santiago Gimeno)
 
 * build: add autoconf option for disable-maintainer-mode (Jameson Nash)
 
 * fs: use WTF-8 on Windows (Stefan Karpinski)
 
 * unix,win: replace QUEUE with struct uv__queue (Ben Noordhuis)
 
 * linux: fs_read to use io_uring if iovcnt > IOV_MAX (Santiago Gimeno)
 
 * ios: fix uv_getrusage() ru_maxrss calculation (Ben Noordhuis)
 
 * include: update outdated code comment (Ben Noordhuis)
 
 * linux: support abstract unix sockets (Ben Noordhuis)
 
 * unix,win: add UV_PIPE_NO_TRUNCATE flag (Ben Noordhuis)
 
 * unix: add loongarch support (liuxiang88)
 
 * doc: add DPS8M to LINKS.md (Jeffrey H. Johnson)
 
 * include: add EUNATCH errno mapping (Abdirahim Musse)
 
 * src: don't run timers if loop is stopped/unref'd (Trevor Norris)
 
 * win: fix -Wpointer-to-int-cast warning (Ben Noordhuis)
 
 * test,win: fix -Wunused-variable warning (Ben Noordhuis)
 
 * test,win: fix -Wformat warning (Ben Noordhuis)
 
 * linux: work around io_uring IORING_OP_CLOSE bug (Ben Noordhuis)
 
 * win: remove unused functions (Ben Noordhuis)
 
 * bench: add bench to check uv_loop_alive (Trevor Norris)
 
 * test: add uv_cancel test for threadpool (Trevor Norris)
 
 * unix: skip prohibited syscalls on tvOS and watchOS (小明)
 
 * unix,fs: make no_pwritev access thread-safe (Santiago Gimeno)
 
 * unix: fix build for lower versions of Android (小明)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAmSfH5cACgkQ8ow8jaM8
 A77NnBAAkAE2anAM7xLaTaz9bdFLMH8eegpDRKcwcui6Z4gf84whgLBSWrJ34JVe
 wDKMmwB1fDQfV+GeZY7AI8Z9V7v+1T1FRwT/Gb63dG+Z+sHBTBl/olGIj8jxRDV4
 p42M0MBUW03NVeGdxsXHNy8mgbM0oDU7Ko+QU8X41hCT+2wQ2NOp+BBImMeNRAKQ
 wb1766zocxuR0nmasIf2sg8WC87H5YSzpqJ/0yftBy9dBbcd3EU2IJfHGWWuijuA
 cT8ohREb+TAIL/m0iKfEc2Ft4iWDaziabC/d62VwrVzKEokvCZwf7Uqjm/J+U7iT
 ovGxq/dL+5/+7R2upm9Y8+6yiTDSuvpfJS/REEdMfKocaB2KhIG2CHuc2ejKyxo1
 7rxEziJ481f1CS6wMH5qsvnUvcb+WtHoLXgzBabBTg8ul/zwTxgNdXCZCzjS1+tv
 PjL/zLJGeDMIibZ5oEoKc8Ce080YpH5rxFZRJn3Aheqp+ZXkoFNygdYSs3oD+rGU
 V32FnRXQmWCcZjsgS7LWk/ufCJm/lw9z4cyN/YkINEmgdMzrTVk7e/SIW4AdnkJ7
 CyBwOH5m96dLfwTXExfUm1x+2pmzq1CX10iVbe+180n53i1rf++DU5eA8Dr0LCRF
 jcB+0UrMAq/eYB/+JfQVUflvPlduFsFlLffnOCMv4HPbjKdkOoU=
 =LjtZ
 -----END PGP SIGNATURE-----

Merge tag 'v1.46.0' into merge_1.46.0
2023-11-14 14:29:02 +00:00
Hao Hu
e135dfe183
unix,win: utility for setting priority for thread (#4075)
Add uv_thread_setpriority for setting priority for threads created by
uv_thread_create. Add uv_thread_getpriority for getting thread priority.

For Linux by default, if the scheduling policy is SCHED_OTHER and the
priority is 0, we need to set the nice value.

Fixes: https://github.com/libuv/libuv/issues/4051
2023-11-14 11:30:46 +01:00
Jameson Nash
f388908593
misc: export WTF8 conversion utilities (#4021)
As promised in #2970, this attempts to migrate code to a common set of
utilities in a common place in the code and use them everywhere. This
also exports the functionality, since the Windows API with
WideCharToMultiByte is fairly verbose relative to what libuv and
libuv's clients typically need, so it is useful not to require clients
to reimplement this conversion logic unnecessarily (and because Windows
is not 64-bit ready here, but this implementation is.)
2023-10-28 21:04:57 -04:00
Abdirahim Musse
6a9e4293d8
include: add EUNATCH errno mapping (#4047)
add EUNATCH errno mapping
2023-06-16 09:27:39 -04:00
Ben Noordhuis
2f1614b128
unix,win: add UV_PIPE_NO_TRUNCATE flag (#4040)
Libuv's default behavior is to truncate long Unix socket paths. The flag
tells it to return an error instead.

Fixes: https://github.com/libuv/libuv/issues/4036
2023-06-06 17:08:36 +02:00
Ben Noordhuis
b9b6db052b
linux: support abstract unix sockets (#4030)
Add two new APIs for binding and connecting to abstract UNIX sockets.

Fixes: https://github.com/libuv/libuv/issues/4028
2023-06-04 22:43:14 +02:00
Ben Noordhuis
e8ec610f28
include: update outdated code comment (#4037)
I believe it's fair to say at this point that these functions are not
going to be removed in v0.12. They are still deprecated though.
2023-06-04 22:41:58 +02:00
Ben Noordhuis
1b01b786c0
unix,win: replace QUEUE with struct uv__queue (#4022)
Recent versions of gcc have started emitting warnings about the liberal
type casting inside the QUEUE macros. Although the warnings are false
positives, let's use them as the impetus to switch to a type-safer and
arguably cleaner approach.

Fixes: https://github.com/libuv/libuv/issues/4019
2023-05-25 00:04:30 +02:00
Jameson Nash
4e774df4cc 2023.05.19, Version 1.45.0 (Stable)
Changes since version 1.44.2:
 
 * win: remove stdint-msvc2008.h (Ben Noordhuis)
 
 * android: remove pthread-fixes.c (Ben Noordhuis)
 
 * build: enable MSVC_RUNTIME_LIBRARY setting (自发对称破缺)
 
 * unix: switch to c11 atomics (Ben Noordhuis)
 
 * unix: don't accept() connections in a loop (Ben Noordhuis)
 
 * win: fix off-by-1 buffer overrun in uv_exepath() (Ben Noordhuis)
 
 * build: switch ci from macos-10.15 to macos-11 (Ben Noordhuis)
 
 * win: fix thread race in uv_cwd() and uv_chdir() (Ben Noordhuis)
 
 * unix,win: remove UV_HANDLE_SHUTTING flag (Santiago Gimeno)
 
 * win: support Windows 11 in uv_os_uname() (Luan Devecchi)
 
 * unix: fix uv_getrusage() ru_maxrss reporting (Ben Noordhuis)
 
 * doc: add note about offset -1 in uv_fs_read/write (Steven Schveighoffer)
 
 * test: fix musl libc.a dlerror() test expectation (Ben Noordhuis)
 
 * kqueue: DRY file descriptor deletion logic (Ben Noordhuis)
 
 * linux: teach uv_get_constrained_memory() cgroupsv2 (Ben Noordhuis)
 
 * build: upgrade qemu-user-static package (Ben Noordhuis)
 
 * linux: move epoll.c back into linux-core.c (Ben Noordhuis)
 
 * unix: remove pre-macos 10.8 compatibility hack (Ben Noordhuis)
 
 * unix,win: fix memory leak in uv_fs_scandir() (Ben Noordhuis)
 
 * build: restore qemu download logic (Ben Noordhuis)
 
 * win: fix uv__pipe_accept memory leak (number201724)
 
 * doc: update LINKS.md (Daniel)
 
 * unix: simplify atomic op in uv_tty_reset_mode() (Ben Noordhuis)
 
 * build: add LIBUV_BUILD_SHARED cmake option (Christian Clason)
 
 * linux: remove unused or obsolete syscall wrappers (Ben Noordhuis)
 
 * linux: merge files back into single file (Ben Noordhuis)
 
 * stream: process more than one write req per loop tick (ywave620)
 
 * unix,win: give thread pool threads an 8 MB stack (Ben Noordhuis)
 
 * build: add MemorySanitizer (MSAN) support (Ben Noordhuis)
 
 * doc: add uv_poll_cb status==UV_EBADF note (jensbjorgensen)
 
 * build: support AddressSanitizer on MSVC (Jameson Nash)
 
 * win,pipe: improve method of obtaining pid for ipc (number201724)
 
 * thread: add support for affinity (daomingq)
 
 * include: map ENODATA error code (Ben Noordhuis)
 
 * build: remove bashism from autogen.sh (Santiago Gimeno)
 
 * win,tcp,udp: remove "active streams" optimization (Saúl Ibarra Corretgé)
 
 * win: drop code checking for Windows XP / Server 2k3 (Saúl Ibarra Corretgé)
 
 * unix,win: fix 'sprintf' is deprecated warning (twosee)
 
 * doc: mention close_cb can be NULL (Qix)
 
 * win: optimize udp receive performance (ywave620)
 
 * win: fix an incompatible types warning (twosee)
 
 * doc: document 0 return value for free/total memory (Ben Noordhuis)
 
 * darwin: use hw.cpufrequency again for frequency info (Jameson Nash)
 
 * win,test: change format of TEST_PIPENAME's (Santiago Gimeno)
 
 * win,pipe: fixes in uv_pipe_connect() (Santiago Gimeno)
 
 * misc: fix return value of memory functions (theanarkh)
 
 * src: add new metrics APIs (Trevor Norris)
 
 * thread: add uv_thread_getcpu() (daomingq)
 
 * build: don't use ifaddrs.h on solaris 10 (Edward Humes)
 
 * unix,win: add uv_get_available_memory() (Tim Besard)
 
 * test: fix -Wunused-but-set-variable warnings (Ben Noordhuis)
 
 * doc: bump min supported linux and freebsd versions (Ben Noordhuis)
 
 * Add Socket Runtime to the LINKS.md (Sergey Rubanov)
 
 * unix: drop kfreebsd support (Ben Noordhuis)
 
 * win: fix fstat for pipes and character files (Stefan Stojanovic)
 
 * win: fix -Wunused-variable warning (Ben Noordhuis)
 
 * win: fix -Wunused-function warning (Ben Noordhuis)
 
 * build: drop qemu-alpha from ci matrix (Ben Noordhuis)
 
 * win: move child_stdio_buffer out of uv_process_t (Santiago Gimeno)
 
 * test: fix some unreachable code warnings (Santiago Gimeno)
 
 * linux: simplify uv_uptime() (Ben Noordhuis)
 
 * test: unflake fs_event_watch_dir test (Ben Noordhuis)
 
 * darwin: remove unused fsevents symbol lookups (Ben Noordhuis)
 
 * build: add define guard around UV_EXTERN (Zvicii)
 
 * build: add UndefinedBehaviorSanitizer support (Ben Noordhuis)
 
 * build: enable platform_output test on qemu (Ben Noordhuis)
 
 * linux: handle cpu hotplugging in uv_cpu_info() (Ben Noordhuis)
 
 * build: remove unnecessary policy setting (dundargoc)
 
 * docs: add vcpkg instruction step (Jack·Boos·Yu)
 
 * win,fs: fix readlink errno for a non-symlink file (Darshan Sen)
 
 * misc: extend getpw to take uid as an argument (Jameson Nash)
 
 * unix,win: use static_assert when available (Ben Noordhuis)
 
 * docs: delete code Makefile (Jameson Nash)
 
 * docs: add CI for docs PRs (Jameson Nash)
 
 * docs: update Sphinx version on RTD (Jameson Nash)
 
 * doc: clean up license file (Ben Noordhuis)
 
 * test: fix some warnings when compiling tests (panran)
 
 * build,win: add mingw-w64 CI configuration (Jameson Nash)
 
 * build: add CI for distcheck (Jameson Nash)
 
 * unix: remove busy loop from uv_async_send (Jameson Nash)
 
 * doc: document uv_fs_cb type (Tamás Bálint Misius)
 
 * build: Improve build by cmake for Cygwin (erw7)
 
 * build: add libuv:: namespace to libuvConfig.cmake (AJ Heller)
 
 * test: fix ThreadSanitizer thread leak warning (Ben Noordhuis)
 
 * test: fix ThreadSanitizer data race warning (Ben Noordhuis)
 
 * test: fix ThreadSanitizer data race warning (Ben Noordhuis)
 
 * test: fix ThreadSanitizer data race warning (Ben Noordhuis)
 
 * test: cond-skip fork_threadpool_queue_work_simple (Ben Noordhuis)
 
 * test: cond-skip signal_multiple_loops (Ben Noordhuis)
 
 * test: cond-skip tcp_writealot (Ben Noordhuis)
 
 * build: promote tsan ci to must-pass (Ben Noordhuis)
 
 * build: add CI for OpenBSD and FreeBSD (James McCoy)
 
 * build,test: fix distcheck errors (Jameson Nash)
 
 * test: remove bad tty window size assumption (Ben Noordhuis)
 
 * darwin,process: feed kevent the signal to reap children (Jameson Nash)
 
 * unix: abort on clock_gettime() error (Ben Noordhuis)
 
 * test: remove timing-sensitive check (Ben Noordhuis)
 
 * unix: DRY and fix tcp bind error path (Jameson Nash)
 
 * macos: fix fsevents thread race conditions (Ben Noordhuis)
 
 * win: fix leak in uv_chdir (Trevor Norris)
 
 * test: make valgrind happy (Trevor Norris)
 
 * barrier: wait for prior out before next in (Jameson Nash)
 
 * test: fix visual studio 2015 build error (Ben Noordhuis)
 
 * linux: fix ceph copy error truncating readonly files (Bruno Passeri)
 
 * test: silence more valgrind warnings (Trevor Norris)
 
 * doc: add entries to LINKS.md (Trevor Norris)
 
 * win,unix: change execution order of timers (Trevor Norris)
 
 * doc: add trevnorris to maintainers (Trevor Norris)
 
 * linux: remove epoll_pwait() emulation code path (Ben Noordhuis)
 
 * linux: replace unsafe macro with inline function (Ben Noordhuis)
 
 * linux: remove arm oabi support (Ben Noordhuis)
 
 * unix,sunos: SO_REUSEPORT not valid on all sockets (Stacey Marshall)
 
 * doc: consistent single backquote in misc.rst (Jason Zhang)
 
 * src: switch to use C11 atomics where available (Trevor Norris)
 
 * test: don't use static buffer for formatting (Ben Noordhuis)
 
 * linux: introduce io_uring support (Ben Noordhuis)
 
 * linux: fix academic valgrind warning (Ben Noordhuis)
 
 * test: disable signal test under ASan and MSan (Ben Noordhuis)
 
 * linux: add IORING_OP_OPENAT support (Ben Noordhuis)
 
 * linux: add IORING_OP_CLOSE support (Ben Noordhuis)
 
 * linux: remove bug workaround for obsolete kernels (Ben Noordhuis)
 
 * doc: update active maintainers list (Ben Noordhuis)
 
 * test: add ASSERT_OK (Trevor Norris)
 
 * src: fix events/events_waiting metrics counter (Trevor Norris)
 
 * unix,win: add uv_clock_gettime() (Ben Noordhuis)
 
 * build: remove freebsd and openbsd buildbots (Ben Noordhuis)
 
 * win: fix race condition in uv__init_console() (sivadeilra)
 
 * linux: fix logic bug in sqe ring space check (Ben Noordhuis)
 
 * linux: use io_uring to batch epoll_ctl calls (Ben Noordhuis)
 
 * macos: update minimum supported version (Santiago Gimeno)
 
 * docs: fix some typos (cui fliter)
 
 * unix: use memcpy() instead of type punning (Ben Noordhuis)
 
 * test: add additional assert (Mohammed Keyvanzadeh)
 
 * build: export compile_commands.json (Lewis Russell)
 
 * win,process: write minidumps when sending SIGQUIT (Elliot Saba)
 
 * unix: constrained_memory should return UINT64_MAX (Tim Besard)
 
 * unix: handle CQ overflow in iou ring (Santiago Gimeno)
 
 * unix: remove clang compiler warning pragmas (Ben Noordhuis)
 
 * win: fix mingw build (gengjiawen)
 
 * test: fix -Wbool-compare compiler warning (Ben Noordhuis)
 
 * win: define MiniDumpWithAvxXStateContext always (Santiago Gimeno)
 
 * freebsd: hard-code UV_ENODATA definition (Santiago Gimeno)
 
 * linux: work around EOWNERDEAD io_uring kernel bug (Ben Noordhuis)
 
 * linux: fix WRITEV with lots of bufs using io_uring (Santiago Gimeno)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAmRnW50ACgkQ8ow8jaM8
 A76noBAAiavsCBvAC554x4Naic+B3fEYjKnLe8OLTbdN4XQsS2uSkCEuP0TuwLE7
 Q93CHgDFcL//XmNAXwIKMIvZ7G25zga93qxrZdd7Hsuthg5oJwsrZb8faHG7CeKy
 Fq+SLCUdLcwOR9m9RDp1u3h/pIhoqQvLUlPcBvDKVaJOVhIngawKU/vC125z6ZJs
 CYaKMlPbU2WjIkkoQjNRYL8oolmWTs5T/8AhIVWntTCyc/+/n7uxmWwlfL2iR8Kj
 u5IT7Vhh6a7VC+dGh26k/FN0RGdAgJCZ1Jnrt+llHxRVuw0xEBnrTAyS3hOkA7Me
 s+8VUaCsreVi9p66hqE5b4IL5e9yUEB18A5dQBY+TFNeXaQETVg9BxPMXbhoh+XB
 2643LZn/kN1iilZBMSMl9kqB66qeUihv8cvjMnrTzq+nSxJvuc13XPfbH+zhMkVh
 CQaFMq3v5vc4Kyk2YrjcsfGCIkRxRGlhSmk5riz1Xf+erf4GuOl+o2fA6YvVDAnE
 rzlzpGoRSHgHYC23KirkBHo7qQVbWy+NeLWFRFSHfSN4+czttdusiFSjxERavfSh
 ezRKH6dNHI8C9fqT3oAitXOgFt6AsMiYMt7JpJwPm0SdAFjIEkgjAfhkSQADUHz7
 qezLtJoCL+bcUXE8tgRRuz+J6x4FhKBZVu5uA6fV1UuyWI74DBU=
 =YAOh
 -----END PGP SIGNATURE-----

Merge tag 'v1.45.0' into merge_1.45.0
2023-05-23 09:09:41 -04:00
Ben Noordhuis
c8a1e6132b
unix,win: add uv_clock_gettime() (#3971)
Fixes: https://github.com/libuv/libuv/issues/1674
2023-04-27 22:13:46 +02:00
Philip Prindeville
5047b34452
net: expose broadcast address on interfaces (#2033)
Not using the correct broadcast address in applications can cause
disasterous results. Rather than letting the programmer guess at the
broadcast address and try to derive it correctly, allow quering the
system instead for the correctly configured state.

This addresses compliance per Host Requirements, "Broadcasts"
(RFC-1122, Section 3.3.6).
2023-01-17 22:20:44 -06:00
Jameson Nash
2f110a50df
misc: extend getpw to take uid as an argument (#3523)
File system operations may return uid and gid values, which we may want
to pretty-print. We already have the code for getting information for
the current user, so just need to add a parameter to make it exposed for
every user. We expose information about groups in a similar manner also.
2023-01-17 21:51:28 -06:00
Zvicii
12b8c116a4
build: add define guard around UV_EXTERN (#3855)
Incidentally lets users control the definition of UV_EXTERN.
2023-01-03 22:03:37 +01:00
Tim Besard
988d225cf0
unix,win: add uv_get_available_memory() (#3754) 2022-11-24 22:09:32 +01:00
daomingq
64669fdd8d
thread: add uv_thread_getcpu() (#3803)
Add uv_thread_getcpu() api to get the cpu number on which the calling
thread is running.
2022-11-15 18:01:29 +01:00
Trevor Norris
e141586053
src: add new metrics APIs (#3749)
The following metrics are now always recorded and available via the new
uv_metrics_info() API.

* loop_count: Number of event loop iterations.
* events: Total number of events processed by the event handler.
* events_waiting: Total number of events waiting in the event queue when
  the event provider request was made.

Benchmarking has shown no noticeable impact recording these metrics.

PR-URL: https://github.com/libuv/libuv/pull/3749
2022-11-11 16:21:58 +01:00
Ben Noordhuis
c83b9bd9c6
include: map ENODATA error code (#3802)
Fixes: https://github.com/libuv/libuv/issues/3795
2022-10-25 13:00:45 +02:00
daomingq
e900006642
thread: add support for affinity (#3774)
Backported thread affinity feature and related dependency commits
from master. It will add support for those APIs: uv_cpumask_size,
uv_thread_setaffinity, uv_thread_getaffinity.
The supported platforms are Linux, Freebsd, and Windows.
Empty implementations (returning UV_ENOTSUP) on non-supported platforms
(such as OS X and AIX).
2022-10-21 09:18:10 -04:00
Ben Noordhuis
495ffca2c2
win: remove stdint-msvc2008.h (#3673)
Support for VS 2008 was removed two years ago in commit a779fccfd so
this file can safely be deleted.
2022-07-15 10:39:14 +02:00
Jameson Nash
88130e0515
win: cast UV_STDIN_FD to unsigned (#3538)
This value, officially, is (DWORD)-11, with the high bits cleared.
Though Windows does not care, wine sometimes does care.
2022-07-12 14:06:08 -04:00
Jameson Nash
cd7b33887f 2022.03.09, Version 1.44.1 (Stable)
Changes since version 1.44.0:
 
 * process: simplify uv__write_int calls (Jameson Nash)
 
 * macos: don't use thread-unsafe strtok() (Ben Noordhuis)
 
 * process: fix hang after NOTE_EXIT (Jameson Nash)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEz7ucqaW+r9cOKzxaeaZ8VaNnnIsFAmIo6e4ACgkQeaZ8VaNn
 nIubZRAAiD6sTkaYpvgXTDD0C9M3HMOms3bL9O23T2Ggtzwnzek1iwZys8KQlhn8
 mhTK+HIT610zcdqOgLE+YLYrtzspb61/8/QSDFoTX1m69rO4WXiW6fejOq6b8fu5
 cIBgqFUf2gVCulBcmqBJ83OL/EPJZmuH9fpEp6LVA74DxDQwlwGXVgTivDZtPEZQ
 thcElPuqlvpyTid42qMhug8DGAR37/qrCiQHUUGX1RWQJkSSMNPSVgXNBWaylO+g
 j3nTp3R5KrutXWa2wFpVx+KzdEP4eDanyL67A/fffHAcEIoSjmha2V+uOCInfDqU
 3Dn4jGTqS9Dc/mlxAxytqnhCFxiYPIPJcLlKJpkg5ygsmSOzx1cvkjkAyhG7A/XD
 44j9dn5rUK95r34anfmBdzCkJvX+vvODJTvgGJ2hjBU63BBeq5xtwtAf/8sLl4y/
 /HzmfVXgCHnWV5U6AHeaSsOOh5nLCV5Q0HpAVn10aIB7s+gaaR5Dfp/FJxdGoVeD
 6fgTkmeyLLXPAyhDZAXO3cE4AfPvlbeQfSAwBEB1m5Cbk5eZ1fj7hoIFwfF6RNQJ
 /hCUTKeNNVi0bx4b2xUAPfjmDABHVCzVTMkdb1xYRjOT2MkI5f1ycz9YZOkRLS/V
 WQEBCermlubQ8Pl1rByxW/GcQrs33PDnjk4KB+blr7+Y6kHplLA=
 =gJmZ
 -----END PGP SIGNATURE-----

Merge tag 'v1.44.1' into merge_1.44.1
2022-03-09 15:57:53 -05:00
Ben Noordhuis
f250c6c73e
unix,win: add uv_available_parallelism() (#3499)
Replacement for the usage pattern where people use uv_cpu_info() as an
imperfect heuristic for determining the amount of parallelism that is
available to their programs.

Fixes #3493.
2022-03-04 22:35:14 +01:00
Jameson Nash
f3e0bffcb1
core: change uv_get_password uid/gid to unsigned (#3476)
Added in https://github.com/libuv/libuv/pull/742, these values are
typically defined as unsigned (since Linux 2.4). Only -1 is special,
representing an invalid id (e.g. see setreuid).
2022-02-22 10:59:06 -05:00
Campbell He
c7843ecfbc
unix,win: add uv_ip_name to get name from sockaddr (#3368)
uv_ip_name is a kind of wrapper of uv_ip4_name and uv_ip6_name
which can be used after getaddrinfo to get the IP name directly
from addrinfo.ai_addr.
2021-11-25 10:05:15 +01:00
Stacey Marshall
e592ebe9d3
sunos: Oracle Developer Studio support (#3374)
Oracle Developer Studio requires public functions to be
defined as "__global" when "-fvisibility=hidden" used as
added by [#3005](https://github.com/libuv/libuv/pull/3005).
For documentation on `__global` see Reducing Symbol Scope in
Oracle Developer Studio C/C++ guide
https://www.oracle.com/solaris/technologies/symbol-scope.html.

fs_utime_round test failed as timespec.tv_nsec conversion to
double resulted in negative number.  Skip this test for
__SPRO_C builds.

Note that it was necessary to have C99 language features
enabled with Studio compiler (-xc99=all) as version v1.41.0
has other commits that have used C99 features.

Tested with:
- cc: Studio 12.6 Sun C 5.15 SunOS_sparc 152881-05 2019/10/30
- gcc (GCC) 11.2.0

Refs: https://github.com/libuv/libuv/pull/3364
2021-11-24 16:10:13 +01:00
Colin Ihrig
69b811f340
Revert "sunos: Oracle Developer Studio support (#3364)"
This reverts commit 96b26b1ee2.

The commit was reported to break libuv on Illumos systems.
2021-11-19 17:12:04 -05:00
Stacey Marshall
96b26b1ee2
sunos: Oracle Developer Studio support (#3364)
Oracle Solaris linker visibility support.  Option "-fvisibility=hidden"
requires public functions to be defined as "__global".

fs_utime_round test failed as timespec.tv_nsec conversion to double
resulted in negative number.  Skipped this test.

Note that it was necessary to compile with C99 language features.
2021-11-18 11:01:47 +01:00
Jameson Nash
4fe755bc5b 2021.07.21, Version 1.42.0 (Stable)
Changes since version 1.41.0:
 
 * doc: fix code highlighting (Darshan Sen)
 
 * test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros (tjarlama)
 
 * zos: build in ascii code page (Shuowang (Wayne) Zhang)
 
 * zos: don't use nanosecond timestamp fields (Shuowang (Wayne) Zhang)
 
 * zos: introduce zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use strnlen() from zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use nanosleep() from zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use __getargv() from zoslib to get exe path (Shuowang (Wayne) Zhang)
 
 * zos: treat __rfim_utok as binary (Shuowang (Wayne) Zhang)
 
 * zos: use execvpe() to set environ explictly (Shuowang (Wayne) Zhang)
 
 * zos: use custom proctitle implementation (Shuowang (Wayne) Zhang)
 
 * doc: add instructions for building on z/OS (Shuowang (Wayne) Zhang)
 
 * linux,udp: enable full ICMP error reporting (Ondřej Surý)
 
 * test: fix test-udp-send-unreachable (Ondřej Surý)
 
 * include: fix typo in documentation (Tobias Nießen)
 
 * chore: use for(;;) instead of while (Yash Ladha)
 
 * test: remove string + int warning on udp-pummel (Juan José Arboleda)
 
 * cmake: fix linker flags (Zhao Zhili)
 
 * test: fix stack-use-after-scope (Zhao Zhili)
 
 * unix: expose thread_stack_size() internally (Brandon Cheng)
 
 * darwin: use RLIMIT_STACK for fsevents pthread (Brandon Cheng)
 
 * darwin: abort on pthread_attr_init fail (Brandon Cheng)
 
 * benchmark: remove unreachable code (Matvii Hodovaniuk)
 
 * macos: fix memleaks in uv__get_cpu_speed (George Zhao)
 
 * Make Thread Sanitizer aware of file descriptor close in uv__close() (Ondřej
   Surý)
 
 * darwin: fix iOS compilation and functionality (Hayden)
 
 * linux: work around copy_file_range() cephfs bug (Ben Noordhuis)
 
 * zos: implement uv_get_constrained_memory() (Shuowang (Wayne) Zhang)
 
 * zos: fix uv_get_free_memory() (Shuowang (Wayne) Zhang)
 
 * zos: use CVTRLSTG to get total memory accurately (Shuowang (Wayne) Zhang)
 
 * ibmi: Handle interface names longer than 10 chars (Kevin Adler)
 
 * docs: update read-the-docs version of sphinx (Jameson Nash)
 
 * unix: refactor uv_try_write (twosee)
 
 * linux-core: add proper divide by zero assert (yiyuaner)
 
 * misc: remove unnecessary _GNU_SOURCE macros (Darshan Sen)
 
 * test: log to stdout to conform TAP spec (bbara)
 
 * win,fs: fix C4090 warning with MSVC (SeverinLeonhardt)
 
 * build: some systems provide dlopen() in libc (Andy Fiddaman)
 
 * include: add EOVERFLOW status code mapping (Darshan Sen)
 
 * unix,fs: use uv__load_relaxed and uv__store_relaxed (Darshan Sen)
 
 * win: fix string encoding issue of uv_os_gethostname (Eagle Liang)
 
 * unix,process: add uv__write_errno helper function (Ricky Zhou)
 
 * Re-merge "unix,stream: clear read/write states on close/eof" (Jameson Nash)
 
 * unix,core: fix errno handling in uv__getpwuid_r (Darshan Sen)
 
 * errors: map ESOCKTNOSUPPORT errno (Ryan Liptak)
 
 * doc: uv_read_stop always succeeds (Simon Kissane)
 
 * inet: fix inconsistent return value of inet_ntop6 (twosee)
 
 * darwin: fix -Wsometimes-uninitialized warning (twosee)
 
 * stream: introduce uv_try_write2 function (twosee)
 
 * poll,win: UV_PRIORITIZED option should not assert (twosee)
 
 * src: DragonFlyBSD has mmsghdr struct too (David Carlier)
 
 * cleanup,win: Remove _WIN32 guards on threadpool (James M Snell)
 
 * freebsd: fix an incompatible pointer type warning (Darshan Sen)
 
 * core: Correct the conditionals for {cloexec,nonblock}_ioctl (Ali Mohammad
   Pur)
 
 * win,tcp: make uv_close work more like unix (Jameson Nash)
 
 * doc: more accurate list of valid send_handle's (twosee)
 
 * win,tcp: translate system errors correctly (twosee)
 
 * unix: implement cpu_relax() on ppc64 (Ben Noordhuis)
 
 * docs: move list of project links under PR control (Jameson Nash)
 
 * test: wrong pointer arithmetic multiplier (Erkhes N)
 
 * doc: switch discussion forum to github (Jameson Nash)
 
 * idna: fix OOB read in punycode decoder (Ben Noordhuis)
 
 * build: make sure -fvisibility=hidden is set (Santiago Gimeno)
 
 * illumos: event ports to epoll (tjarlama)
 
 * illumos,tty: UV_TTY_MODE_IO waits for 4 bytes (Joshua M. Clulow)
 
 * doc: add vtjnash GPG ID (Jameson Nash)
 
 * linux: read CPU model information on ppc (Richard Lau)
 
 * darwin: fix uv_barrier race condition (Guilherme Íscaro)
 
 * unix,stream: fix loop hang after uv_shutdown (Jameson Nash)
 
 * doc,udp: note that suggested_size is 1 max-sized dgram (Ryan Liptak)
 
 * mingw: fix building for ARM/AArch64 (Martin Storsjö)
 
 * unix: strnlen is not available on Solaris 10 (Claes Nästén)
 
 * sunos: restore use of event ports (Andy Fiddaman)
 
 * sunos,cmake: use thread-safe errno (Andy Fiddaman)
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEErq0KS2hnZ3UaDkrvNKJfsSgkZRQFAmD2OHUSHHZ0am5hc2hA
 Z21haWwuY29tAAoJEDSiX7EoJGUU6XsQAJqkq5qV54EEFQAIf/AV9e4pt5uua2iF
 bTyExNGyty5TW4OCytSxakLWS/9lN5vQo6/bjeUEfhq8a1BmLzJq5Nnmc8ntlYM6
 n89vZSRjgLNwQ2WuRV9akCMTPYydeJc6RboEjTDVlWtSr4QDCwK+fKgaMil+9uow
 Y8biEme/vIcpJNOE3IdhivUoS1Hl1PJrVbhJapHBQ6j4xf8CIrFBwn9qF0IX+Ngp
 9xZVvJFXQkZzqLqkHeMasGCp+hmQDnAiXKO3vbUJbeVwoCukDYmVG8Pb3H3RIyo9
 yZkdBpOZ1GEmnPY766IkArThM+/WBWTgz6pTOl59Zx0Wa5Dmr8ASUiauE/EEARS4
 v/QUQA13MS8cgOBhmPjrLQ9Kv6HPvLuZSjshEJz4RdL8aSThoQ7Om+AlR679wnyK
 vlcfNLoh+Jw1zCWKWO6c5BiqcB/8J/JPT2N0vMmT6+RZ8AiqyjGpBw+t1HeBkdW5
 CPJX06CXk7vsvCKbw4w8i8Xl40zm9yws5tO7ukG/lkmB5EUKhMe1z/5pTAWoFJV/
 srs6S+g3xmJ1oBeytjjEra/iJji/6jQ/oLbYeA+mvBxV5+hu7Mtnpzl0vWKrN5M2
 ewxOvJJtggT1V2WcVqYLmHdZpug+pspG6Uwm6/TG/379IFot3O4OjPZ8wlrLgaNt
 PU0FlUDCxyvT
 =gkXG
 -----END PGP SIGNATURE-----

Merge tag 'v1.42.0' into merge_1.42.0

PR-URL: https://github.com/libuv/libuv/pull/3245
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2021-07-23 13:32:16 -04:00
twosee
bcc4f8fdde
stream: introduce uv_try_write2 function
`uv_try_write2(stream, bufs, nbufs, send_handle)` acts like 
`uv_try_write()` and extended write function for sending handles over a 
pipe like `uv_write2`. It always returns `UV_EAGAIN` instead of 
`UV_ENOSYS` on Windows so we can easily write cross-platform code 
without special treatment.

PR-URL: https://github.com/libuv/libuv/pull/3183
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
2021-05-28 10:57:59 -04:00
Ryan Liptak
46451737e6
errors: map ESOCKTNOSUPPORT errno
PR-URL: https://github.com/libuv/libuv/pull/3151
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2021-05-21 16:34:31 -04:00
Darshan Sen
9739400d41
include: add EOVERFLOW status code mapping
Refs: https://github.com/nodejs/node/pull/38159#discussion_r610288214
PR-URL: https://github.com/libuv/libuv/pull/3145
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
2021-05-13 11:01:14 -04:00
Tobias Nießen
59118e92ca
include: fix typo in documentation
PR-URL: https://github.com/libuv/libuv/pull/3130
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2021-04-04 17:13:41 +02:00
Ondřej Surý
c382d39a85
linux,udp: enable full ICMP error reporting
The Linux kernel suppresses some ICMP error messages by default for UDP
sockets. This commit sets IP_RECVERR/IPV6_RECVERR on the socket to
enable full ICMP error reporting, hopefully resulting in faster failover
to working name servers.

PR-URL: https://github.com/libuv/libuv/pull/2872
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2021-02-17 10:29:53 +01:00
Jameson Nash
4ddc292774
stream: add uv_pipe and uv_socketpair to the API
Equivalents of `pipe` and `socketpair` for cross-platform use.

PR-URL: https://github.com/libuv/libuv/pull/2953
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2020-11-09 21:50:09 -05:00
Ulrik Strid
2a1b880f54
unix,win: add uv_timer_get_due_in()
Co-authored-by: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Refs: https://github.com/nodejs/node-report/pull/73
Refs: https://github.com/libuv/libuv/pull/1255
Fixes: https://github.com/libuv/libuv/issues/2950
PR-URL: https://github.com/libuv/libuv/pull/2951
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2020-09-21 22:15:46 -04:00
Ryan Liptak
ea17e1cffb
udp: add UV_UDP_MMSG_FREE recv_cb flag
Refs: https://github.com/libuv/libuv/issues/2822
PR-URL: https://github.com/libuv/libuv/pull/2836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-09-02 20:21:07 -04:00