aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* doc: make requirements work with newer python (#4745)HEADv1.xmainLuca Saccarola4 days
|
* win,pipe: minimal fix to uv_read_cb->uv_read_start recursion bug (#4784)Jameson Nash5 days
| | | | | | | | | | | | | | | | | | Starting a new read after uv_read_cb returns causes memory corruption on the OVERLAPPED read_req if uv_read_stop+uv_read_start was called during the callback after the latest refactoring. This apparently also forces the kernel to deadlock us, since it apparently cannot cancel the second read while the first one is pending (reads apparently are not permitted to finish out of order). Avoid that simply by not issuing another read (set more=0) if there is already a read pending (from uv_read_start). There are probably better things we could do here (such as bring back `uv_active_tcp_streams_threshold`), but the current `alloc_cb` design may not currently permit that without making breaking changes. We could also detect in `uv_read_start` that we are inside of of the `read_cb` for that stream, and defer the actual zero-read until the read_cb returns, but that would likely be a larger change. Fix #4738
* win: replace inline asm with compiler intrinsic (#4829)Ben Noordhuis7 days
| | | | Switch to __sync_fetch_and_or on x86. Libuv already uses it on other architectures.
* win: move uv__insert_pending_req to core.c (#4828)Ben Noordhuis7 days
| | | | | | | | Large-ish functions with many call sites in different translation units should not be `static inline`, that just results in lots of code duplication which the linker may or may not deduplicate. When it does, the linker has to do extra work; when it doesn't, binaries get bigger. Refs: https://github.com/libuv/libuv/issues/4819
* win: move uv__process_endgames to core.c (#4827)Ben Noordhuis7 days
| | | Refs: https://github.com/libuv/libuv/issues/4819
* win: dissolve atomicops-inl.h (#4826)Ben Noordhuis7 days
| | | | | | | | | | | Commit 7fb43d3c from August 2012 moved uv__atomic_exchange_set from async.c into a header file but in all those years, nothing except async.c has ever used it. Move the function back again and remove the header file. I removed the superfluous uses of inline/INLINE but this is otherwise a non-functional change. Refs: https://github.com/libuv/libuv/issues/4819
* test: skip slow process title test on asan+macos (#4825)Ben Noordhuis9 days
| | | | | uv_set_process_title loads and unloads a bunch of dynamic libraries, and that's quite slow and prone to time out when running concurrently under AddressSanitizer.
* win: remove unnecessary inlining from header file (#4824)Ben Noordhuis9 days
| | | Refs: https://github.com/libuv/libuv/issues/4819
* win: move uv__process_reqs to core.c (#4821)Ben Noordhuis9 days
| | | Refs: https://github.com/libuv/libuv/issues/4819
* win: remove unnecessary inlining from fs.c (#4822)Ben Noordhuis9 days
| | | Refs: https://github.com/libuv/libuv/issues/4819
* test: pass correct string type to GetModuleHandleW (#4820)Ben Noordhuis9 days
| | | Introduced in commit 2545ffe74 from last month.
* unix: deduplicate uv_free_interface_addresses (#4818)Juan José10 days
| | | Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* unix: handle possible `ENOMEM` in `uv__pipe_listen` (#4817)Juan José11 days
| | | | Refs: https://github.com/libuv/libuv/issues/4755 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* win: remove obsolete comment (#4816)Ben Noordhuis13 days
| | | Refs: https://github.com/libuv/libuv/security/advisories/GHSA-qf6p-jg38-9f4x#advisory-comment-131127
* mailmap: update email address for Richard LauRichard Lau14 days
|
* qnx: add qnx 8 support (#4801)Deep C2025-06-30
| | | Fixes: https://github.com/libuv/libuv/issues/4710
* win: replace GetModuleHandleA with GetModuleHandleW (#4812)chemodax2025-06-29
|
* unix: handle possible `ENOMEM` in `uv__tcp_listen`Juan José Arboleda2025-06-24
| | | | | Refs: https://github.com/libuv/libuv/issues/4755 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* win: use WSA_FLAG_NO_HANDLE_INHERIT in WSASocketW (#4810)chemodax2025-06-22
| | | | Resolves a potential race condition when a child process has been created between WSASocketW() and SendHandleInformationW().
* win: handle empty string in uv_get_process_title (#4807)Ben Noordhuis2025-06-15
| | | | | | | | | | Distinguish between errors and "the console title is the empty string" when calling GetConsoleTitle. Both are signified by a return value of zero. No test because I couldn't think of a succinct way to programmatically create a new console window with an empty title. Fixes: https://github.com/nodejs/node/issues/58695
* include: remove unused macro undefs from uv.h (#4790)Juan José2025-06-14
| | | | | These macros are not defined in the public headers Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* build: make automake link libm on bsd-likes (#4795)Juan José2025-06-14
| | | | | | | This mirrors the behavior already fixed in the CMake build system. Fixes: https://github.com/libuv/libuv/issues/4794 Refs: https://github.com/libuv/libuv/commit/4681d5d5705be932f82e1e79eff72f17b5bf82e2 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* src: fix nullptr dereference in uv__print_handles (#4805)jhnh2042025-06-14
|
* linux: fix -Wformat-truncation warning (#4793)Ben Noordhuis2025-05-29
|
* tcp: support customizing TCP_KEEPINTVL and TCP_KEEPCNTAndy Pan2025-05-21
| | | | | Implement `uv_tcp_keepalive_ex` function that extends `uv_tcp_keepalive` to support `TCP_KEEPINTVL` and `TCP_KEEPCN` socket options in addition to TCP_KEEPIDLE.
* doc: update ncurses link (#4788)Saúl Ibarra Corretgé2025-05-16
| | | The link at gnu.org is a redirect now and the docs linter breaks some times.
* build: dedup sanitizer jobs using matrix strategy (#4776)Juan José2025-05-15
| | | Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* unix: fix uv_thread_{get,set}priority error codes (#4782)Ryan Liptak2025-05-15
| | | | | | | | | pthread_getschedparam and pthread_setschedparam do not use errno but instead return the error code directly. https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_getschedparam.html Also include a fix to return UV_ESRCH instead of UV_EBADF on Windows, like Unix systems do.
* doc: don't mention UV_LOOP_ENABLE_IO_URING_SQPOLL (#4786)Poul T Lomholt2025-05-15
| | | | | The documentation is referring to an internal name - UV_LOOP_ENABLE_IO_URING_SQPOLL - in several places. Fix this by using the public UV_LOOP_USE_IO_URING_SQPOLL name instead.
* test: remove unused include of <limits.h> in runner.h (#4780)Juan José2025-05-10
| | | Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* test: skip `udp_multicast_join` if not system-wide available (#4779)Juan José2025-05-08
| | | | | Fixes: https://github.com/libuv/libuv/issues/4778 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* src: remove unused include of <assert.h> in timer.c (#4774)Juan José2025-05-02
| | | Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* Now working on version 1.51.1Santiago Gimeno2025-04-25
|
* Add SHA to ChangeLogSantiago Gimeno2025-04-25
|
* 2025.04.25, Version 1.51.0 (Stable)v1.51.0Santiago Gimeno2025-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes since version 1.50.0: * win: fix leak in uv_os_tmpdir (Saúl Ibarra Corretgé) * docs: fix RTD build (Saúl Ibarra Corretgé) * win: lazy-load [GS]etThreadDescription symbols (Ben Noordhuis) * linux: try preadv64/pwritev64 before preadv/pwritev (Ben Noordhuis) * win: check cwd length before spawning a child process (Morten Engelhardt Olsen) * macos,bsd: handle missing /dev/null in chroot env (Andrey) * doc: fix README link text (Julio Jordán) * win: fix order of FILE_STAT_BASIC_INFORMATION struct fields (Hüseyin Açacak) * macos: increase child process stdio buffer size (Jinho Jang) * doc: add C3 bindings to LINKS.md (Velikiy Kirill) * unix: remove unnecessary errno.h include in poll.c (Juan José Arboleda) * win: fix the inconsistency in volume serial number (Hüseyin Açacak) * unix: add thread affinity support on openharmony (rainlow) * unix: enable getrusage for SunOS (Paolo Insogna) * unix,win: accept NAN/INFINITY as file timestamps (Ben Noordhuis) * win: add ENABLE_VIRTUAL_TERMINAL_INPUT raw tty mode (Anna Henningsen) * test: handle UV_ENOTSUP in platform_output (cjihrig) * doc: fix rendering of threading.html (Tobias Nießen) * unix,sunos: enable use of sendmmsg on Solaris and Illumos (Stacey Marshall) * unix: handle out of memory in iface name copy (Ben Noordhuis) * openbsd: do not error out if cpuspeed is not available (Robert Nagy) * test: skip thread_name_threadpool on AIX/IBMi (Abdirahim Musse) * aix,ibmi: fix undeclared identifiers (Richard Lau) * unix,sunos: prefer SO_REUSEPORT for load balancing (Stacey Marshall) * doc: free lib pointer before function return (mugitya03) * test: link with libm (Juan José Arboleda) * style: rename parameter to match definition (Mohammed Keyvanzadeh) * test: support partial output lines in test runner (cjihrig) * build: switch from c90 to c11 (Ben Noordhuis) * linux: allow nul bytes in abstract socket address (Itay Bookstein) * sunos: use pipe2 on solaris and illumos (Andy Pan) * unix: remove TOCTOU issues from uv_pipe_chmod (Ben Noordhuis) * unix: use pipe_fname if getsockname returns nothing (crupest) * haiku: use uint32 instead of uint32_t (AE1020) * doc: update thread pool stack size comment (Ben Noordhuis) * unix: improve uv_loop_init OOM handling (Ben Noordhuis) * test: merge uv_tcp_connect callbacks (Juan José Arboleda) * test: skip multievent tests on macOS with TSAN enabled (Juan José Arboleda) * linux: align CPU quota calculation with Rust (Juan José Arboleda) * kqueue: improve fs event watcher OOM handling (Juan José Arboleda) * sunos: improve fs event watcher OOM handling (Juan José Arboleda) * build: shorten instructions for cmake build (Juan José Arboleda)
* build: shorten instructions for cmake build (#4762)Juan José2025-04-24
| | | Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* sunos: improve fs event watcher OOM handling (#4759)Juan José2025-04-23
| | | | | Propagate errors from uv__io_init_start() back to the caller. Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* kqueue: improve fs event watcher OOM handling (#4758)Juan José2025-04-23
| | | | | Propagate errors from uv__io_init_start() back to the caller. Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* linux: align CPU quota calculation with Rust (#4746)Juan José2025-04-22
| | | | | | Align CPU quota calculation with Rust's cgroup heuristics. Fixes: https://github.com/libuv/libuv/issues/4740 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* test: skip multievent tests on macOS with TSAN enabled (#4763)Juan José2025-04-22
| | | | Fixes: https://github.com/libuv/libuv/issues/4659 Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* test: merge uv_tcp_connect callbacks (#4761)Juan José2025-04-20
| | | | | | Distinguish a callback for v4 and v6 connections is not relevant for this test. Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
* unix: improve uv_loop_init OOM handling (#4757)Ben Noordhuis2025-04-18
| | | | | | | | | | Handle out-of-memory conditions in uv_loop_init better, albeit still not perfect: bubble up the error instead of aborting. Also fixes a file descriptor leak on Linux (and likely other platforms) that the new test caught; the backend epoll fd was being leaked in the error path. Fixes: https://github.com/libuv/libuv/issues/4755
* doc: update thread pool stack size comment (#4756)Ben Noordhuis2025-04-17
| | | | | | | | | | I changed the default stack size in commit 73b0c1f94 from October 2022 and although I added a versionchanged note, I didn't update the blurb a few lines below. It wasn't accurate before that change either though, because even with musl libc's ~80kb thread stacks, 128 threads works out to 10 MB. Refs: https://github.com/nodejs/node/issues/57911
* haiku: use uint32 instead of uint32_t (#4754)AE10202025-04-16
| | | | | | | | | | | | Haiku has parallel types to stdint.h, and their APIs use these types. In the Haiku-specific haiku.h file, it is passing an address of a uint32_t to get_cpu_topology_info(), that expects the other uint32: https://github.com/haiku/haiku/blob/648fa5897c28d5a4c8a5b4992dbf9b9d410434c8/src/system/libroot/os/system_info.cpp#L187 You get an "incompatible-pointer-types" warning in gcc if the warnings are turned up. But if you pass the pointer to Haiku's notion of uint32, then the warning goes away.
* unix: use pipe_fname if getsockname returns nothing (#4748)crupest2025-04-08
| | | | | | On some platforms (like GNU/Hurd), `getsockname` returns an empty string for sockets in the UNIX domain. However, we do have stored the path info in `pipe_fname` of `uv_pipe_t`, so we can try with it if `getsockname` returns an empty string.
* unix: remove TOCTOU issues from uv_pipe_chmod (#4749)Ben Noordhuis2025-04-07
| | | | | | | | | Use fchmod() on platforms that support it on UNIX sockets. Only fall back to chmod() on platforms that don't (macOS and the BSDs.) Remove the stat + chmod dance from the fallback and just call chmod directly, because that's another source of TOCTOU issues. Fixes: https://github.com/libuv/libuv/issues/2040
* sunos: use pipe2 on solaris and illumos (#4747)Andy Pan2025-04-07
| | | | | | | | Solaris implemented pipe2 in 11.4 and illumos have had it since 2013. Ref: https://docs.oracle.com/cd/E88353_01/html/E37841/pipe2-2.html https://illumos.org/man/2/pipe2 https://www.illumos.org/issues/3714
* linux: allow nul bytes in abstract socket address (#4737)Itay Bookstein2025-03-27
| | | | | | | Documentation on Linux explains that nul bytes have no special significance in abstract namespace socket names. Avoid precluding such addresses. Signed-off-by: Itay Bookstein <ibookstein@gmail.com>
* build: switch from c90 to c11 (#4743)Ben Noordhuis2025-03-24
| | | | | | | | | After 14 years that should be fairly safe, right? Right!? Not safe enough for Windows Server 2016 apparently; there are build errors coming from system headers. The GHA images are slated for removal in a month anyway so upgrade them to Windows Server 2025. Fixes: https://github.com/libuv/libuv/issues/4742
* test: support partial output lines in test runner (#4744)Colin Ihrig2025-03-24
| | | | This commit updates the test runner's print_lines() logic to better handle partial lines.