Skip to content

Commit 6199e19

Browse files
santigimenoRafaelGSS
authored andcommitted
deps: upgrade to libuv 1.46.0
Notable changes - fs: use WTF-8 on Windows: libuv/libuv#2970 - linux: add some more iouring backed fs ops: libuv/libuv#4012 Important bugs fixed - linux: work around io_uring IORING_OP_CLOSE bug: libuv/libuv#4059 - src: don't run timers if loop is stopped/unref'd: libuv/libuv#4048 PR-URL: #48618 Fixes: #48512 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
1 parent 3df7368 commit 6199e19

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1531
-767
lines changed

deps/uv/.readthedocs.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ sphinx:
66
fail_on_warning: false
77

88
build:
9+
os: "ubuntu-22.04"
910
tools:
1011
python: "3.9"
1112

deps/uv/AUTHORS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,3 +542,9 @@ Lewis Russell <[email protected]>
542542
sivadeilra <[email protected]>
543543
cui fliter <[email protected]>
544544
Mohammed Keyvanzadeh <[email protected]>
545+
Niklas Mischkulnig <[email protected]>
546+
Stefan Karpinski <[email protected]>
547+
liuxiang88 <[email protected]>
548+
Jeffrey H. Johnson <[email protected]>
549+
Abdirahim Musse <[email protected]>
550+

deps/uv/ChangeLog

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,63 @@
1-
2023.05.19, Version 1.45.0 (Stable)
1+
2023.06.30, Version 1.46.0 (Stable)
2+
3+
Changes since version 1.45.0:
4+
5+
* Add SHA to ChangeLog (Santiago Gimeno)
6+
7+
* misc: update readthedocs config (Jameson Nash)
8+
9+
* test: remove erroneous RETURN_SKIP (Ben Noordhuis)
10+
11+
* android: disable io_uring support (Ben Noordhuis)
12+
13+
* linux: add some more iouring backed fs ops (Santiago Gimeno)
14+
15+
* build: add autoconf option for disable-maintainer-mode (Jameson Nash)
16+
17+
* fs: use WTF-8 on Windows (Stefan Karpinski)
18+
19+
* unix,win: replace QUEUE with struct uv__queue (Ben Noordhuis)
20+
21+
* linux: fs_read to use io_uring if iovcnt > IOV_MAX (Santiago Gimeno)
22+
23+
* ios: fix uv_getrusage() ru_maxrss calculation (Ben Noordhuis)
24+
25+
* include: update outdated code comment (Ben Noordhuis)
26+
27+
* linux: support abstract unix sockets (Ben Noordhuis)
28+
29+
* unix,win: add UV_PIPE_NO_TRUNCATE flag (Ben Noordhuis)
30+
31+
* unix: add loongarch support (liuxiang88)
32+
33+
* doc: add DPS8M to LINKS.md (Jeffrey H. Johnson)
34+
35+
* include: add EUNATCH errno mapping (Abdirahim Musse)
36+
37+
* src: don't run timers if loop is stopped/unref'd (Trevor Norris)
38+
39+
* win: fix -Wpointer-to-int-cast warning (Ben Noordhuis)
40+
41+
* test,win: fix -Wunused-variable warning (Ben Noordhuis)
42+
43+
* test,win: fix -Wformat warning (Ben Noordhuis)
44+
45+
* linux: work around io_uring IORING_OP_CLOSE bug (Ben Noordhuis)
46+
47+
* win: remove unused functions (Ben Noordhuis)
48+
49+
* bench: add bench to check uv_loop_alive (Trevor Norris)
50+
51+
* test: add uv_cancel test for threadpool (Trevor Norris)
52+
53+
* unix: skip prohibited syscalls on tvOS and watchOS (小明)
54+
55+
* unix,fs: make no_pwritev access thread-safe (Santiago Gimeno)
56+
57+
* unix: fix build for lower versions of Android (小明)
58+
59+
60+
2023.05.19, Version 1.45.0 (Stable), 96e05543f53b19d9642b4b0dd73b86ad3cea313e
261

362
Changes since version 1.44.2:
463

deps/uv/LINKS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* [clearskies_core](https://github.com/larroy/clearskies_core): Clearskies file synchronization program. (C++11)
77
* [CMake](https://cmake.org) open-source, cross-platform family of tools designed to build, test and package software
88
* [Cocos-Engine](https://github.com/cocos/cocos-engine): The runtime framework for Cocos Creator editor.
9-
* [Coherence](https://github.com/liesware/coherence/): Cryptographic server for modern web apps.
9+
* [Coherence](https://github.com/liesware/coherence/): Cryptographic server for modern web apps.
10+
* [DPS8M](https://dps8m.gitlab.io): GE ∕ Honeywell ∕ Bull DPS‑8/M and 6180/L68 mainframe simulator.
1011
* [DPS-For-IoT](https://github.com/intel/dps-for-iot/wiki): Fully distributed publish/subscribe protocol.
1112
* [HashLink](https://github.com/HaxeFoundation/hashlink): Haxe run-time with libuv support included.
1213
* [Haywire](https://github.com/kellabyte/Haywire): Asynchronous HTTP server.

deps/uv/configure.ac

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1414

1515
AC_PREREQ(2.57)
16-
AC_INIT([libuv], [1.45.0], [https://github.com/libuv/libuv/issues])
16+
AC_INIT([libuv], [1.46.0], [https://github.com/libuv/libuv/issues])
1717
AC_CONFIG_MACRO_DIR([m4])
1818
m4_include([m4/libuv-extra-automake-flags.m4])
1919
m4_include([m4/as_case.m4])
2020
m4_include([m4/libuv-check-flags.m4])
2121
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects] UV_EXTRA_AUTOMAKE_FLAGS)
22+
AM_MAINTAINER_MODE([enable]) # pass --disable-maintainer-mode if autotools may be unavailable
2223
AC_CANONICAL_HOST
2324
AC_ENABLE_SHARED
2425
AC_ENABLE_STATIC

deps/uv/docs/src/errors.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,9 @@ Error constants
339339
340340
socket type not supported
341341

342+
.. c:macro:: UV_EUNATCH
343+
344+
protocol driver not attached
342345

343346
API
344347
---

deps/uv/docs/src/pipe.rst

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,61 @@ API
5555
5656
Bind the pipe to a file path (Unix) or a name (Windows).
5757
58+
Does not support Linux abstract namespace sockets,
59+
unlike :c:func:`uv_pipe_bind2`.
60+
61+
Alias for ``uv_pipe_bind2(handle, name, strlen(name), 0)``.
62+
63+
.. note::
64+
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes,
65+
typically between 92 and 108 bytes.
66+
67+
.. c:function:: int uv_pipe_bind2(uv_pipe_t* handle, const char* name, size_t namelen, unsigned int flags)
68+
69+
Bind the pipe to a file path (Unix) or a name (Windows).
70+
71+
``flags`` must be zero or ``UV_PIPE_NO_TRUNCATE``. Returns ``UV_EINVAL``
72+
for unsupported flags without performing the bind operation.
73+
74+
Supports Linux abstract namespace sockets. ``namelen`` must include
75+
the leading nul byte but not the trailing nul byte.
76+
77+
.. versionadded:: 1.46.0
78+
5879
.. note::
59-
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, typically between
60-
92 and 108 bytes.
80+
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes,
81+
typically between 92 and 108 bytes, unless the ``UV_PIPE_NO_TRUNCATE``
82+
flag is specified, in which case an ``UV_EINVAL`` error is returned.
6183
6284
.. c:function:: void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle, const char* name, uv_connect_cb cb)
6385
64-
Connect to the Unix domain socket or the named pipe.
86+
Connect to the Unix domain socket or the Windows named pipe.
87+
88+
Does not support Linux abstract namespace sockets,
89+
unlike :c:func:`uv_pipe_connect2`.
90+
91+
Alias for ``uv_pipe_connect2(req, handle, name, strlen(name), 0, cb)``.
92+
93+
.. note::
94+
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes,
95+
typically between 92 and 108 bytes.
96+
97+
.. c:function:: void uv_pipe_connect2(uv_connect_t* req, uv_pipe_t* handle, const char* name, size_t namelen, unsigned int flags, uv_connect_cb cb)
98+
99+
Connect to the Unix domain socket or the Windows named pipe.
100+
101+
``flags`` must be zero or ``UV_PIPE_NO_TRUNCATE``. Returns ``UV_EINVAL``
102+
for unsupported flags without performing the connect operation.
103+
104+
Supports Linux abstract namespace sockets. ``namelen`` must include
105+
the leading nul byte but not the trailing nul byte.
106+
107+
.. versionadded:: 1.46.0
65108
66109
.. note::
67-
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, typically between
68-
92 and 108 bytes.
110+
Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes,
111+
typically between 92 and 108 bytes, unless the ``UV_PIPE_NO_TRUNCATE``
112+
flag is specified, in which case an ``UV_EINVAL`` error is returned.
69113
70114
.. c:function:: int uv_pipe_getsockname(const uv_pipe_t* handle, char* buffer, size_t* size)
71115

deps/uv/include/uv.h

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ extern "C" {
5959
#include <stdio.h>
6060
#include <stdint.h>
6161

62+
/* Internal type, do not use. */
63+
struct uv__queue {
64+
struct uv__queue* next;
65+
struct uv__queue* prev;
66+
};
67+
6268
#if defined(_WIN32)
6369
# include "uv/win.h"
6470
#else
@@ -150,6 +156,7 @@ extern "C" {
150156
XX(EILSEQ, "illegal byte sequence") \
151157
XX(ESOCKTNOSUPPORT, "socket type not supported") \
152158
XX(ENODATA, "no data available") \
159+
XX(EUNATCH, "protocol driver not attached") \
153160

154161
#define UV_HANDLE_TYPE_MAP(XX) \
155162
XX(ASYNC, async) \
@@ -283,13 +290,13 @@ UV_EXTERN int uv_loop_init(uv_loop_t* loop);
283290
UV_EXTERN int uv_loop_close(uv_loop_t* loop);
284291
/*
285292
* NOTE:
286-
* This function is DEPRECATED (to be removed after 0.12), users should
293+
* This function is DEPRECATED, users should
287294
* allocate the loop manually and use uv_loop_init instead.
288295
*/
289296
UV_EXTERN uv_loop_t* uv_loop_new(void);
290297
/*
291298
* NOTE:
292-
* This function is DEPRECATED (to be removed after 0.12). Users should use
299+
* This function is DEPRECATED. Users should use
293300
* uv_loop_close and free the memory manually instead.
294301
*/
295302
UV_EXTERN void uv_loop_delete(uv_loop_t*);
@@ -459,7 +466,7 @@ struct uv_shutdown_s {
459466
uv_handle_type type; \
460467
/* private */ \
461468
uv_close_cb close_cb; \
462-
void* handle_queue[2]; \
469+
struct uv__queue handle_queue; \
463470
union { \
464471
int fd; \
465472
void* reserved[4]; \
@@ -801,6 +808,10 @@ inline int uv_tty_set_mode(uv_tty_t* handle, int mode) {
801808

802809
UV_EXTERN uv_handle_type uv_guess_handle(uv_file file);
803810

811+
enum {
812+
UV_PIPE_NO_TRUNCATE = 1u << 0
813+
};
814+
804815
/*
805816
* uv_pipe_t is a subclass of uv_stream_t.
806817
*
@@ -817,10 +828,20 @@ struct uv_pipe_s {
817828
UV_EXTERN int uv_pipe_init(uv_loop_t*, uv_pipe_t* handle, int ipc);
818829
UV_EXTERN int uv_pipe_open(uv_pipe_t*, uv_file file);
819830
UV_EXTERN int uv_pipe_bind(uv_pipe_t* handle, const char* name);
831+
UV_EXTERN int uv_pipe_bind2(uv_pipe_t* handle,
832+
const char* name,
833+
size_t namelen,
834+
unsigned int flags);
820835
UV_EXTERN void uv_pipe_connect(uv_connect_t* req,
821836
uv_pipe_t* handle,
822837
const char* name,
823838
uv_connect_cb cb);
839+
UV_EXTERN int uv_pipe_connect2(uv_connect_t* req,
840+
uv_pipe_t* handle,
841+
const char* name,
842+
size_t namelen,
843+
unsigned int flags,
844+
uv_connect_cb cb);
824845
UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t* handle,
825846
char* buffer,
826847
size_t* size);
@@ -1849,7 +1870,7 @@ struct uv_loop_s {
18491870
void* data;
18501871
/* Loop reference counting. */
18511872
unsigned int active_handles;
1852-
void* handle_queue[2];
1873+
struct uv__queue handle_queue;
18531874
union {
18541875
void* unused;
18551876
unsigned int count;

deps/uv/include/uv/darwin.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@
4040
void* cf_state; \
4141
uv_mutex_t cf_mutex; \
4242
uv_sem_t cf_sem; \
43-
void* cf_signals[2]; \
43+
struct uv__queue cf_signals; \
4444

4545
#define UV_PLATFORM_FS_EVENT_FIELDS \
4646
uv__io_t event_watcher; \
4747
char* realpath; \
4848
int realpath_len; \
4949
int cf_flags; \
5050
uv_async_t* cf_cb; \
51-
void* cf_events[2]; \
52-
void* cf_member[2]; \
51+
struct uv__queue cf_events; \
52+
struct uv__queue cf_member; \
5353
int cf_error; \
5454
uv_mutex_t cf_mutex; \
5555

deps/uv/include/uv/errno.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,4 +468,10 @@
468468
# define UV__ENODATA (-4024)
469469
#endif
470470

471+
#if defined(EUNATCH) && !defined(_WIN32)
472+
# define UV__EUNATCH UV__ERR(EUNATCH)
473+
#else
474+
# define UV__EUNATCH (-4023)
475+
#endif
476+
471477
#endif /* UV_ERRNO_H_ */

deps/uv/include/uv/linux.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
int inotify_fd; \
2929

3030
#define UV_PLATFORM_FS_EVENT_FIELDS \
31-
void* watchers[2]; \
31+
struct uv__queue watchers; \
3232
int wd; \
3333

3434
#endif /* UV_LINUX_H */

deps/uv/include/uv/threadpool.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ struct uv__work {
3131
void (*work)(struct uv__work *w);
3232
void (*done)(struct uv__work *w, int status);
3333
struct uv_loop_s* loop;
34-
void* wq[2];
34+
struct uv__queue wq;
3535
};
3636

3737
#endif /* UV_THREADPOOL_H_ */

0 commit comments

Comments
 (0)