Commit Graph

5647 Commits

Author SHA1 Message Date
Santiago Gimeno
a36131ddfb Add SHA to ChangeLog 2026-03-06 21:29:20 +01:00
Santiago Gimeno
1cfa32ff59 2026.03.06, Version 1.52.1 (Stable)
Changes since version 1.52.0:

* misc: add simple clang-tidy setup (Jameson Nash)

* unix: check RLIMIT_AS and RLIMIT_DATA in uv_get_constrained_memory
  (Jameson Nash)

* win: add fs-fd-hash-inl.h to tarball (tobil4sk)

* unix,win: support NULL loop for sync uv_getaddrinfo (Saúl Ibarra
  Corretgé)

* Fix const-correctness warning in linux.c (Quaylyn Rimer)

* build(deps): bump actions/upload-artifact from 6 to 7
  (dependabot[bot])

* build(deps): bump actions/download-artifact from 7 to 8
  (dependabot[bot])

* unix: fix compilation warnings with GCC 15 (Saúl Ibarra Corretgé)

* test: remove conditionals from `uv_thread_self` usage (Yasser
  Nascimento)

* unix: fix discard const (Rudi Heitbaum)

* unix: do not cast to char variables that are const char (Rudi
  Heitbaum)

* linux: fix crash if poll callback closes handle before `POLLERR` (Juan
  José Arboleda)
2026-03-06 21:29:19 +01:00
Juan José
b030b02a3e
linux: fix crash if poll callback closes handle before POLLERR (#5039)
Previously, `uv__udp_io` would proceed to call `uv__udp_recvmsg` for
the `POLLERR` event even if the handle was just closed by the `POLLIN`
callback.

This commit adds a guard to verify the handle is still active before
processing the error queue. It also adds a regression test that
mimics this recursive closure behavior.

Fixes: https://github.com/libuv/libuv/issues/5030

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2026-03-06 15:00:09 -05:00
Rudi Heitbaum
e62ccbf770 unix: do not cast to char variables that are const char
Fix the casting of const char varaibles with const char returns from
functions, when the data being returned is not being modified.  Includes
the part revert of "unix: fix compilation warnings with GCC 15"

This reverts commit 50ed2fd7bd.
2026-03-06 18:06:19 +01:00
Rudi Heitbaum
5243d19134 unix: fix discard const
Do not cast const char to char unnecessarily. Refactor function to use
char s only when slash is in the path.

Fixes:

[6/73] Building C object CMakeFiles/uv.dir/src/inet.c.o
../src/inet.c: In function 'uv_inet_pton':
../src/inet.c:157:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  157 |     p = strchr(src, '%');
      |       ^

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
2026-03-06 18:06:19 +01:00
Yasser Nascimento
568470a2ef test: remove conditionals from uv_thread_self usage
The Windows limitation was fixed in: https://github.com/libuv/libuv/pull/3357.
2026-03-06 09:44:50 +01:00
Saúl Ibarra Corretgé
50ed2fd7bd unix: fix compilation warnings with GCC 15
~~~
libuv/src/unix/internal.h: In function ‘uv__basename_r’:
libuv/src/unix/internal.h:480:12: warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  480 |   return s + 1;

libuv/src/unix/linux.c: In function ‘uv__cgroup1_find_cpu_controller’:
libuv/src/unix/linux.c:2377:22: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2377 |   char* cgroup_cpu = strstr(cgroup, ":cpu,");
      |                      ^~~~~~

libuv/src/unix/linux.c: In function ‘uv_cpu_info’:
libuv/src/unix/linux.c:1903:20: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1903 |       .model     = p + c->model * sizeof(*model),
      |                    ^
~~~
2026-03-02 15:56:50 +01:00
dependabot[bot]
f44e6be04d build(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 12:04:18 +01:00
dependabot[bot]
651e05e43c build(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 12:04:01 +01:00
Quaylyn Rimer
12d0dd48e3
Fix const-correctness warning in linux.c (#4843)
Fix #4814 by adding const annotation when assigning string literal
"unknown" to `char*` pointer.

This eliminates compiler warnings when building with strict
const-correctness flags like `-Wwrite-strings`.
2026-02-20 20:20:14 -05:00
Saúl Ibarra Corretgé
edfc95dbd7 unix,win: support NULL loop for sync uv_getaddrinfo
Brings symmetry with the uv_fs_xxx APIs.
2026-02-19 13:18:14 +01:00
tobil4sk
7e381d0da2
win: add fs-fd-hash-inl.h to tarball (#5031) 2026-02-16 23:07:13 +01:00
Jameson Nash
1eacb1386f
unix: check RLIMIT_AS and RLIMIT_DATA in uv_get_constrained_memory (#4899)
Add uv__get_rlimit_max_memory() helper that checks RLIMIT_AS and
RLIMIT_DATA resource limits across all Unix platforms. This helper
returns the minimum of these rlimits if set.

Update all Unix platform implementations of uv_get_constrained_memory()
to use this helper, ensuring consistent handling of resource limits:
- Linux: combine cgroup limits with rlimits
- z/OS: combine RLIMIT_MEMLIMIT with rlimits
- Other Unix platforms: use rlimits (previously returned 0)

This provides a more accurate view of available memory when processes
have rlimit constraints in addition to platform-specific limits.

Related: https://github.com/JuliaLang/julia/pull/51656
Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-13 20:54:29 -05:00
Jameson Nash
276f6acf27
misc: add simple clang-tidy setup (#4874)
clang-tidy can already read the compilation database from cmake to run
on any file. This sets up some cmake targets to make it easier to run
the check on all files applicable to the current platform. It also
disables a few analyses to reduce the number of warnings to a manageable
level. Actually making any fixes is left for later.
2026-02-13 20:52:21 -05:00
cjihrig
8fa343442c
Now working on version 1.52.1
Fixes: https://github.com/libuv/libuv/issues/5009
2026-02-10 21:00:35 -05:00
cjihrig
bcad447de5
Add SHA to ChangeLog 2026-02-10 20:57:18 -05:00
cjihrig
b556c0629d
2026.02.11, Version 1.52.0 (Stable)
Changes since version 1.51.0:

* src: remove unused include of <assert.h> in timer.c (Juan José
  Arboleda)

* test: skip `udp_multicast_join` if not system-wide available (Juan
  José Arboleda)

* test: remove unused include of <limits.h> in runner.h (Juan José
  Arboleda)

* doc: don't mention UV_LOOP_ENABLE_IO_URING_SQPOLL (Poul T Lomholt)

* unix: fix uv_thread_{get,set}priority error codes (Ryan Liptak)

* build: dedup sanitizer jobs using matrix strategy (Juan José Arboleda)

* doc: update ncurses link (Saúl Ibarra Corretgé)

* tcp: support customizing TCP_KEEPINTVL and TCP_KEEPCNT (Andy Pan)

* linux: fix -Wformat-truncation warning (Ben Noordhuis)

* src: fix nullptr dereference in uv__print_handles (jhnh204)

* build: make automake link libm on bsd-likes (Juan José Arboleda)

* include: remove unused macro undefs from uv.h (Juan José Arboleda)

* win: handle empty string in uv_get_process_title (Ben Noordhuis)

* win: use WSA_FLAG_NO_HANDLE_INHERIT in WSASocketW (chemodax)

* unix: handle possible `ENOMEM` in `uv__tcp_listen` (Juan José
  Arboleda)

* win: replace GetModuleHandleA with GetModuleHandleW (chemodax)

* qnx: add qnx 8 support (Deep C)

* mailmap: update email address for Richard Lau (Richard Lau)

* win: remove obsolete comment (Ben Noordhuis)

* unix: handle possible `ENOMEM` in `uv__pipe_listen` (Juan José
  Arboleda)

* unix: deduplicate uv_free_interface_addresses (Juan José Arboleda)

* test: pass correct string type to GetModuleHandleW (Ben Noordhuis)

* win: remove unnecessary inlining from fs.c (Ben Noordhuis)

* win: move uv__process_reqs to core.c (Ben Noordhuis)

* win: remove unnecessary inlining from header file (Ben Noordhuis)

* test: skip slow process title test on asan+macos (Ben Noordhuis)

* win: dissolve atomicops-inl.h (Ben Noordhuis)

* win: move uv__process_endgames to core.c (Ben Noordhuis)

* win: move uv__insert_pending_req to core.c (Ben Noordhuis)

* win: replace inline asm with compiler intrinsic (Ben Noordhuis)

* win,pipe: minimal fix to uv_read_cb->uv_read_start recursion bug
  (Jameson Nash)

* doc: make requirements work with newer python (Luca Saccarola)

* win: fix -Wcast-function-type warnings in winapi.c (Ben Noordhuis)

* win: fix -Wsign-compare warnings (Ben Noordhuis)

* test: simplify ASSERT_OK macro for static analysis (Jameson Nash)

* win: add arm64 machine type to uv_os_uname (wisemanny)

* win: use ProcessPrng (Ben Noordhuis)

* win: work around wine bug in uv_fs_{unlink,rmdir} (Keno Fischer)

* doc: fix return value for uv_pipe_connect2 (Sean Dewar)

* unix: fix udp sendmmsg fallback path (Ben Noordhuis)

* doc: add binding `C framework` uv_coroutine to LINKS.md (Lawrence
  Stubbs)

* linux: handle cgroups cpu.max with limit < period (Ben Noordhuis)

* doc: update link, repo name change to c-asio (Lawrence Stubbs)

* build(deps): bump actions/download-artifact from 4 to 5
  (dependabot[bot])

* doc: remove nodeuv from LINKS.md (Ben Noordhuis)

* test: use relative paths for pipes and unix sockets (Emily)

* build(deps): bump actions/checkout from 4 to 5 (dependabot[bot])

* unix: improve uv__cpu_relax() on arm (Anton Kirilov)

* win: fix compiler warnings (Savas Sahin)

* unix: replace uv__io_t callback pointer with enum (Ben Noordhuis)

* test,win: fix -Wunused-function warnings (Ben Noordhuis)

* test,win: fix -Wcast-function-type warnings (Ben Noordhuis)

* test,win: fix -Wattributes warnings (Ben Noordhuis)

* win: shrink fd hash table from 2592k to 162k (Ben Noordhuis)

* unix: fix build on the bsds (Ben Noordhuis)

* netbsd: fix thread affinity compilation error (Santiago Gimeno)

* unix: remove UV__SIGNAL_EVENT dispatch from uv__io_cb (Juan José
  Arboleda)

* build: add -Werror when testing -Wflags (Jameson Nash)

* win: fix path size calculation (Ben Noordhuis)

* doc: correct uv_cancel return value (m0cg)

* unix,win: look up UV_THREADPOOL_SIZE with uv_os_getenv (moe li)

* build(deps): bump actions/setup-python from 5 to 6 (dependabot[bot])

* unix: fix uv__signal_loop_cleanup call in init (Jameson Nash)

* aix: fix nullptr check in uv__skip_lines (Ben Noordhuis)

* unix: add neoverse-v2 cpu identifier (green-br)

* test: make `thread_priority` robust against system default nice levels

 (Juan José Arboleda)

* unix,win: implement `uv_udp_open_ex` (Juan José Arboleda)

* aix: add stub function to satisfy linker (Ben Noordhuis)

* linux: add MSG_ERRQUEUE ipv4/ipv6 udp support (Juan José Arboleda)

* ibmi: add stub function to satisfy linker (Ben Noordhuis)

* darwin: better heuristic for available memory (Christian Guinard)

* build(deps): bump actions/download-artifact from 5 to 6
  (dependabot[bot])

* build(deps): bump actions/upload-artifact from 4 to 5
  (dependabot[bot])

* unix: fix use of uninitialized variable (Ben Noordhuis)

* doc: fix documentation for uv_utf16_to_wtf8() function (Gang Zhuo)

* win: rename minimal_windows10_version1709() for libuv's convention
  (Andy Pan)

* build(deps): bump actions/checkout from 5 to 6 (dependabot[bot])

* win: fix race in uv_fs_event_start() (Ben Noordhuis)

* unix: support nanosecond resolution in uv__fs_to_timespec (Ayush
  Kumar)

* win: handle sshfs-win quirk in uv_fs_readdir() (Ben Noordhuis)

* unix,win: fix leak in uv_os_environ error path (Ambuj Vashistha)

* test: add macros to run fs tests with io_uring (Santiago Gimeno)

* linux: fix uv_fs_ftruncate io_uring implementation (Santiago Gimeno)

* Update OS X reference to macOS in README (Bart Louwers)

* ci: update macos runner images (Ben Noordhuis)

* doc: add example usage for uv_sleep (Kartik Puri)

* ci: add macos-15-intel to matrix (Ben Noordhuis)

* win: Optimize file/directory delete. (chemodax)

* build(deps): bump actions/download-artifact from 6 to 7
  (dependabot[bot])

* build(deps): bump actions/upload-artifact from 5 to 6
  (dependabot[bot])

* test: run more fs tests using io_uring too (Santiago Gimeno)

* doc: add handle and request usage guidelines (Ben Noordhuis)

* unix: remove handle from queue on uv_spawn() error (Oblivionsage)

* doc: remove hp-ux from supported platforms list (Ben Noordhuis)

* unix,win: add f_frsize field to uv_statfs_t (Ben Noordhuis)

* test: fix -Wuninitialized-const-pointer warning (Ben Noordhuis)

* test: fix -Wstringop-overread warning (Ben Noordhuis)

* test: make pty test work under asan (Ben Noordhuis)

* win: readlink support for IO_REPARSE_TAG_LX_SYMLINK (Cody Tapscott)

* unix: fix partial read handling after POLLHUP (Ben Noordhuis)

* unix: factor out common i/o poll code (Ben Noordhuis)

* test: disable udp_reuseport test under qemu (Ben Noordhuis)

* test: disable tcp_reuseport test under qemu (Ben Noordhuis)

* unix,win: check nbufs argument is reasonable (Ben Noordhuis)

* win: refactor to support large statfs blocks (Santiago Gimeno)

* unix: remove sunpro references (Ben Noordhuis)

* idna: fix assert in wtf8_to_utf16 conversion (tobil4sk)

* aix,ibmi: fix test suite build breakage (Ben Noordhuis)

* unix: implement cpu_relax() for riscv64 (Han Gao)

* doc: add setuid warning to uv_exepath (Ben Noordhuis)

* unix: make OpenBSD uv_exepath work (mischief)

* win: fix uv_get_process_title (StefanStojanovic)

* unix,udp: fix -Wgnu-folding-constant warning (Saúl Ibarra Corretgé)

* cmake: add libuvConfigVersion.cmake file (Przemysław Sobala)
2026-02-10 20:57:16 -05:00
Przemysław Sobala
0dc33b9f0f cmake: add libuvConfigVersion.cmake file 2026-02-09 10:50:54 +01:00
Saúl Ibarra Corretgé
26a97ad442 unix,udp: fix -Wgnu-folding-constant warning
~~~
/Users/saghul/src/libuv/src/unix/udp.c:1460:26: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1460 |   struct sockaddr* addrs[N];
      |                          ^
/Users/saghul/src/libuv/src/unix/udp.c:1461:22: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1461 |   unsigned int nbufs[N];
      |                      ^
/Users/saghul/src/libuv/src/unix/udp.c:1462:18: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1462 |   uv_buf_t* bufs[N];
      |                  ^
3 warnings generated.
/Users/saghul/src/libuv/src/unix/udp.c:1460:26: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1460 |   struct sockaddr* addrs[N];
      |                          ^
/Users/saghul/src/libuv/src/unix/udp.c:1461:22: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1461 |   unsigned int nbufs[N];
      |                      ^
/Users/saghul/src/libuv/src/unix/udp.c:1462:18: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
 1462 |   uv_buf_t* bufs[N];
      |                  ^
~~~
2026-02-05 20:11:10 +01:00
StefanStojanovic
01f4f89503 win: fix uv_get_process_title
Fixes: https://github.com/libuv/libuv/issues/2667
2026-02-05 11:54:22 +01:00
mischief
71801576eb unix: make OpenBSD uv_exepath work
some users of libuv rely on uv_exepath to be an actual path to a
program. unfortunately, the OpenBSD KERN_PROC_ARGV sysctl just returns
what is in argv[0], so if the program was executed by being looked up in
$PATH, uv_exepath would only return the basename and not an actual path.

to fix, this use the same approach as IBM i, OS/390 and AIX by searching
with uv__search_path. this is also the same approach the Zig language
has taken for the similar selfExePath function for OpenBSD.

the tests expect that uv_exepath still works after uv_set_process_title,
which on BSD is a call to setproctitle. the place setproctitle stores to
is the same place that KERN_PROC_ARGV reads from, so we need to stash
the original argv[0] in uv_setup_args to recover it later in uv_exepath.
2026-02-05 11:45:49 +01:00
Ben Noordhuis
0db25a91f0 doc: add setuid warning to uv_exepath 2026-02-05 11:44:11 +01:00
Han Gao
e50d4e672e
unix: implement cpu_relax() for riscv64 (#5019)
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
2026-02-04 22:46:14 +01:00
Ben Noordhuis
885613f1fe
aix,ibmi: fix test suite build breakage (#5020)
Apparently there is no openpty() on those platforms. Introduced in
commit 2e2114ed from last month.

Fixes: https://github.com/libuv/libuv/issues/5018
2026-02-04 22:45:38 +01:00
tobil4sk
73bfbb995f
idna: fix assert in wtf8_to_utf16 conversion (#5021)
0x10FFFF is the valid max unicode character, so the check should be
inclusive.

This assert gets triggered because uv__wtf8_decode1 (used by
uv_wtf8_length_as_utf16) has the correct code_point <= 0x10FFFF check,
so the sequence is treated as valid and it will be passed into
uv_wtf8_to_utf16, where the incorrect assert gets triggered:

src/idna.c:397: uv_wtf8_to_utf16: Assertion `code_point < 0x10FFFF' failed.
2026-02-04 21:55:43 +01:00
Ben Noordhuis
fc90bb9843
unix: remove sunpro references (#5017)
Sun Studio / Oracle Developer Studio hasn't had a release in almost
nine years. If Oracle doesn't feel like supporting it, then neither
do I.
2026-02-02 23:15:38 +01:00
Santiago Gimeno
c68ca444e7
win: refactor to support large statfs blocks (#5016)
Accomplish this by replacing `GetDiskFreeSpaceW()` with
`NtQueryVolumeInformationFile()` which allows us to represent blocks
larger than 2^32 - 1 via
`FILE_FS_FULL_SIZE_INFORMATION.TotalAllocationUnits`.

Expanded `fs_statfs` test to check that `uv_fs_statfs()` also works with
files, meaning https://github.com/libuv/libuv/issues/2683 remains fixed
without the need of https://github.com/libuv/libuv/pull/2695.
2026-02-02 10:04:36 +01:00
Ben Noordhuis
91dc2389cc
unix,win: check nbufs argument is reasonable (#5014)
Catch sign conversion bugs by introducing a bounds check that doubles
as a sanity check.

Fixes: https://github.com/libuv/libuv/issues/5012
2026-02-01 13:03:07 +01:00
Ben Noordhuis
4839e28d50
test: disable tcp_reuseport test under qemu (#5005)
The test is multi-threaded and expects both threads to receive at least
some of the incoming connections but there isn't always true parallelism
under QEMU's user-mode emulator.

Single-core systems are also susceptible to that so also add a check
that we have at least two cores to run on.

As mentioned in the change for the udp_reuseport test from a few days
ago, the test is not perfect (there being > 1 core doesn't guarantee
we actually get to run on them) but it's better than nothing.

Fixes: https://github.com/libuv/libuv/issues/5003
2026-01-23 11:07:15 +01:00
Ben Noordhuis
0405e1224f
test: disable udp_reuseport test under qemu (#5002)
The test is multi-threaded and expects both threads to receive at least
some of the incoming datagrams but there isn't always true parallelism
under QEMU's user-mode emulator.

Single-core systems are also susceptible to that so also add a check
that we have at least two cores to run on.

It's not perfect because a sufficiently dedicated test torturer could
probably concoct a containerized setup where the core count > 1 but the
available CPU slice is so small that the test effectively still runs
sequentially, but it's better than nothing.

Fixes: https://github.com/libuv/libuv/issues/4777
2026-01-21 22:34:30 +01:00
Ben Noordhuis
4cb6a2d33c
unix: factor out common i/o poll code (#5000) 2026-01-18 22:32:36 +01:00
Ben Noordhuis
2e2114ed89
unix: fix partial read handling after POLLHUP (#4997)
It was reported that PTYs on Linux sometimes report POLLHUP, return a
partial read, but still return more data on the next read.

Libuv contains an optimization where it assumes a partial read after
POLLHUP means the next read can be skipped because it's going to fail
with EOF anyway. That assumption was thought to be always true but,
alas, it isn't.

The fact the optimization has been present for 13 years and this is the
first bug report about it, indicates how rare this particular condition
is, but of course we can't skim on correctness.

The reworked optimization only uses POLLHUP as an input signal when
POLLIN is not also set. That means we no longer have to track partial
reads because we're going to try and read anyway as long as POLLIN is
set. It seems to cause no measurable regressions on the test suite or
the (lightly tested) benchmarks.

Fixes: https://github.com/libuv/libuv/issues/4992
2026-01-18 12:21:53 +01:00
Cody Tapscott
588ea9b913
win: readlink support for IO_REPARSE_TAG_LX_SYMLINK (#4994)
This adds support for "Linux"-style Windows symbolic links, reparse tag
0xA000001D (IO_REPARSE_TAG_LX_SYMLINK).
2026-01-16 10:38:18 +01:00
Ben Noordhuis
3908e54252
test: make pty test work under asan (#4996)
AddressSanitizer was right to complain about the test because it was
passing an uninitialized `struct winsize` to openpty().
2026-01-15 21:39:23 +01:00
Ben Noordhuis
d67f9d2fba
test: fix -Wstringop-overread warning (#4993)
Check the length before doing the compare like we do a few lines below,
not the other way around. It's a false positive because the length is
capped well below the maximum object size but it's an easy fix.

Fixes the following warning:

    test/test-poll-oob.c:94:19: warning: ‘strncmp’ specified bound
    [18446744071562067968, 18446744073709551615] exceeds maximum
    object size 9223372036854775807 [-Wstringop-overread]
2026-01-13 14:35:19 +01:00
Ben Noordhuis
f420c2bd57
test: fix -Wuninitialized-const-pointer warning (#4990)
Zero the struct. The compiler is not aware it's not actually used.
2026-01-07 23:24:28 +01:00
Ben Noordhuis
91ae02a63d
unix,win: add f_frsize field to uv_statfs_t (#4984)
Fixes: https://github.com/libuv/libuv/issues/4983
2026-01-01 22:33:44 +01:00
Ben Noordhuis
8b870dab3d
doc: remove hp-ux from supported platforms list (#4985)
As of January 1, 2026, HP-UX is well and truly dead. Remove it.
2026-01-01 21:34:36 +01:00
Oblivionsage
3e9ae1bca0
unix: remove handle from queue on uv_spawn() error (#4980)
If uv_spawn() fails after uv__handle_init() has been called, the handle
remains in loop->handle_queue. This causes use-after-free if the handle
is stack-allocated or freed, and a subsequent loop operation like
uv_walk() accesses it.

This follows the same pattern as uv_tcp_init_ex() which explicitly
removes the handle from the queue on error.
2025-12-26 16:53:42 +01:00
Ben Noordhuis
309b28bdbe
doc: add handle and request usage guidelines (#4978)
Refs: https://github.com/libuv/libuv/discussions/4977
2025-12-21 19:00:09 +01:00
Santiago Gimeno
9c876b2f3b
test: run more fs tests using io_uring too (#4970)
Fix `threadpool_cancel_fs_iouring` so it takes `UV_FS_FTRUNCATE` into
account.
2025-12-20 22:30:42 +01:00
dependabot[bot]
ec7ec98b70
build(deps): bump actions/upload-artifact from 5 to 6 (#4975)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 07:35:23 -05:00
dependabot[bot]
5c91d49561
build(deps): bump actions/download-artifact from 6 to 7 (#4974)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 07:34:09 -05:00
chemodax
ada5131840 win: Optimize file/directory delete.
Use GetFileInformationByHandleEx(FileBasicInfo) instead of GetFileInformationByHandle() because it's cheaper -- one syscall, instead of two [1]

[1]: https://blog.axiorema.com/engineering/hidden-cost-getfileinformationbyhandle/
2025-12-12 08:46:10 +01:00
Ben Noordhuis
ac591507f3
ci: add macos-15-intel to matrix (#4968)
And fix a stupid typo that made GHA skip running the tests 🤦
2025-12-10 20:43:08 +01:00
Kartik Puri
504887a339
doc: add example usage for uv_sleep (#4955) 2025-12-10 07:23:39 +01:00
Ben Noordhuis
4eefcbeb5c
ci: update macos runner images (#4967)
Add macos-15 runners. Remove the deprecated macos-13 runners.

Fixes: https://github.com/libuv/libuv/issues/4965
Refs: https://github.com/actions/runner-images/issues/10924
2025-12-09 17:36:57 +01:00
Bart Louwers
3c1e7013b3
Update OS X reference to macOS in README (#4964) 2025-12-08 19:02:08 -05:00
Santiago Gimeno
fd89e63f2f linux: fix uv_fs_ftruncate io_uring implementation (#4963 2/2)
The `offset` field should be assigned to ithe `io_uring_sqe.off` field.
2025-12-08 10:31:45 +01:00
Santiago Gimeno
e522b27da3 test: add macros to run fs tests with io_uring (#4963 1/2)
Added `TEST_FS_DECLARE`, `TEST_FS_ENTRY` and `TEST_FS_IMPL` so we can
run test-fs.c tests both using the threadpool and io_uring
implementations.
2025-12-08 10:31:45 +01:00