Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v15.9.0 proposal #37405

Closed
wants to merge 108 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
d2a487e
Revert "stream: fix .end() error propagation"
mcollina Jan 25, 2021
67c9a8e
doc: improve promise terminology
benjamingr Feb 2, 2021
9946c11
src: read exactly two tokens from Linux THP sysfs config
jayaddison Jan 25, 2021
13fe17c
test: split heap snapshot limit tests
Trott Feb 2, 2021
dc84c18
tls: add ability to get cert/peer cert as X509Certificate object
jasnell Jan 26, 2021
011910b
crypto: add keyObject.export() 'jwk' format option
panva Jan 26, 2021
e63b380
deps: upgrade npm to 7.5.2
ruyadorno Feb 2, 2021
1fea051
stream: improve Readable.from error handling
benjamingr Jan 31, 2021
ff02e5e
doc: fix 404 links in module.md
aduh95 Feb 3, 2021
3f815d9
doc: fix pr-url for DEP0148
aduh95 Feb 3, 2021
745aad7
tools: update ESLint to 7.19.0
cjihrig Jan 31, 2021
bfe0b46
src: simplify calls to BN_bin2bn in prime gen
tniessen Feb 1, 2021
4ebe38b
timers: introduce setInterval async iterator
Linkgoron Jan 30, 2021
5157525
test: remove flaky designation for test-http2-large-file
Trott Jan 31, 2021
b87c0d6
doc: fix typo in cli.md
0xkalvin Feb 3, 2021
4cdc5ea
http: fix ClientRequest unhandled errors
ronag Jan 16, 2021
48ce1eb
src: fix warning in string_search.h
RaisinTen Jan 30, 2021
eb08afd
doc: fix typo in globals.md
RaisinTen Feb 4, 2021
eb7ec1b
timers: remove flaky setInterval test
Feb 4, 2021
c377834
repl: refactor to avoid unsafe array iteration
aduh95 Feb 2, 2021
52c40c7
doc: fix CHANGELOG_ARCHIVE table of contents
aduh95 Feb 4, 2021
5906e85
doc: fix version number for DEP006
aduh95 Feb 4, 2021
acd087d
fs: add AbortSignal support to watch
benjamingr Feb 2, 2021
2a5f67b
src: refactor bookkeeping of bootstrap status
joyeecheung Jan 28, 2021
337b4e7
src: put (de)serialization code into node_snapshotable.h/cc
joyeecheung Jan 28, 2021
8a25405
doc: fix accommodate typos
cjihrig Feb 4, 2021
66a14d3
vm: add importModuleDynamically option to compileFunction
devsnek Sep 25, 2020
655d196
fs: use a default callback for fs.close()
jasnell Feb 1, 2021
0702d60
doc: fix webcrypto HMAC generateKey example
panva Feb 3, 2021
596bfb3
doc: mention CryptoKey in port.postMessage()
panva Feb 3, 2021
aebe532
doc: consistent webcrypto `node.keyObject` format
panva Feb 3, 2021
760f126
doc: mark Certificate methods as static, add missing KeyObject.from
panva Feb 3, 2021
3e2746f
crypto: remove webcrypto "DSA" JWK Key Type operations
panva Feb 3, 2021
48a634e
test: rename n-api to node-api
Feb 3, 2021
c302450
fs: allow passing negative zero fd
RaisinTen Jan 29, 2021
3fee5b2
repl: add auto‑completion for dynamic import calls
ExE-Boss Feb 2, 2021
dc38dd2
timers: fix unsafe array iteration
RaisinTen Feb 4, 2021
9dac99a
crypto: fix and simplify prime option validation
tniessen Feb 1, 2021
acabe08
lib: add weak event handlers
benjamingr Feb 4, 2021
354df9e
src: use make_shared for safe allocation
yashLadha Jan 30, 2021
a6053dc
src: add context for TODO comment in env.cc
yashLadha Jan 30, 2021
20c65b0
deps: V8: backport dfcf1e86fac0
targos Feb 7, 2021
eb0daae
tools: fix d8 macOS build
targos Feb 3, 2021
3079a78
src: avoid implicit type conversions
targos Jan 30, 2021
54d36b0
src: rename binding_data_name to type_name in BindingData
joyeecheung Jan 28, 2021
1a9bcdf
src: refactor v8 binding
joyeecheung Jan 28, 2021
d8d851a
tools: bump remark-present-lint-node from 2.0.0 to 2.0.1
Trott Feb 8, 2021
ebf3597
doc: rename N-API to Node-API
Feb 7, 2021
7c51cec
util: use assert for unreachable code
Trott Feb 6, 2021
7da1c9b
doc: use sentence case for headers in BUILDING.md
Trott Feb 6, 2021
47c4f1f
doc: use sentence case in README headers
Trott Feb 6, 2021
0e887ca
doc: fix typo in console.md
marsonya Feb 8, 2021
5a4288e
doc: fix typo in crypto.md
marsonya Feb 8, 2021
cd50e93
doc: warn about using strings as inputs in crypto
tniessen Feb 6, 2021
a693baa
module: use optional chaining in cjs/loader.js
RaisinTen Feb 5, 2021
55fd6b6
crypto: avoid infinite loops in prime generation
tniessen Feb 3, 2021
8483de4
test: only run prime test with supported OpenSSL
tniessen Feb 5, 2021
f6f9af6
lib: fix WebIDL `object` and dictionary type conversion
ExE-Boss Jan 24, 2021
6db5e79
tools: add GitHub Action linter for pr-url
aduh95 Feb 4, 2021
d1c1724
deps: upgrade npm to 7.5.3
ruyadorno Feb 8, 2021
85bed2e
doc: fix misnamed SHASUMS256.txt name in README.md
marsonya Feb 7, 2021
e28ea89
crypto: fix subtle.importKey JWK OKP public key import
panva Feb 6, 2021
42cc33c
src: add mutex to ManagedEVPPKey class
danbev Jan 7, 2021
061939d
node-api: allow retrieval of add-on file name
Feb 3, 2021
d63ac28
http: explain the unused argument in IncomingMessage._read
Ayase-252 Feb 8, 2021
f5d1bf9
http: explain the possibilty of refactor unused argument
Ayase-252 Feb 10, 2021
e28fa6c
src: fix return type of method in string_search.h
RaisinTen Feb 1, 2021
3464c9f
doc: discourage error event
benjamingr Feb 7, 2021
50e81ba
deps: V8: cherry-pick 0c8b6e415c30
matinzd Feb 8, 2021
facf3a5
doc: fix description of hasSubscribers
tniessen Feb 11, 2021
7d8fd3f
doc: refactor fs docs structure
jasnell Feb 1, 2021
d96a97a
module: make synthetic module evaluation steps return a Promise to su…
dandclark Feb 9, 2021
1ff375b
tools: avoid pending deprecation in doc generator
targos Feb 7, 2021
8487184
child_process: fix bad abort signal leak
Feb 6, 2021
15804e0
errors: align source-map stacks with spec
bcoe Feb 6, 2021
1fc8307
test: re-implement promises.setInterval() test robustly
Trott Feb 4, 2021
d0f1ff5
async_hooks: set unhandledRejection async context
Feb 7, 2021
fbcab10
url: move `URLSearchParams` method definitions
ExE-Boss Jan 6, 2021
676f696
url: fix definitions of `URL`/`SearchParams` methods and accessors
ExE-Boss Jan 5, 2021
a483c28
tools: fix lint-pr-url message
aduh95 Feb 10, 2021
cdd2fe5
doc: fix typo in /api/dns.md
marsonya Feb 10, 2021
804e7ae
doc: add version metadata for packages features
aduh95 Feb 9, 2021
f253cb9
doc: fix typo in buffer.md
marsonya Feb 7, 2021
85b1476
doc: fix typo in deprecations.md
marsonya Feb 8, 2021
c4faa39
perf_hooks: introduce createHistogram
jasnell Jan 30, 2021
610b29b
doc: fix performanceEntry.flags style format
chengcyber Feb 8, 2021
189ce39
doc: apply sentence case to release doc headers
Trott Feb 13, 2021
62b2648
doc: apply sentence-consistently in C++ style guide
Trott Feb 13, 2021
392c86d
doc: use sentence case in benchmark doc
Trott Feb 13, 2021
1e99175
doc: alphabetize crypto.* methods
Trott Feb 13, 2021
3db1b30
meta: update README releases section
Feb 11, 2021
e2a2bab
doc: link PACKAGE_EXPORTS_RESOLVE to ESM section
ugultopu Jan 30, 2021
f5e4625
doc: fix backticks in crypto API docs
tniessen Feb 8, 2021
c188466
doc: fix quotes in stream docs
tniessen Feb 8, 2021
dd054ca
doc: optimize HTML rendering
aduh95 Feb 9, 2021
c160d88
buffer: add @@toStringTag to Blob
cjihrig Feb 12, 2021
b2b6411
tools: update ESLint to 7.20.0
cjihrig Feb 12, 2021
88d3f74
fs: add fsPromises.watch()
jasnell Feb 1, 2021
799b2d5
policy: fix cascade getting scope
bmeck Feb 9, 2021
6d53e79
repl: refactor to avoid unsafe array iteration
aduh95 Feb 12, 2021
05a16e7
worker: refactor to avoid unsafe array iteration
aduh95 Feb 12, 2021
c0eadef
deps: upgrade to libuv 1.41.0
cjihrig Feb 13, 2021
b09d21b
test: enable no-restricted-syntax rule for test-timers-promisified
Trott Feb 13, 2021
d808db2
doc: add dmabupt to collaborators
dmabupt Feb 15, 2021
c6198fd
lib: simplify check in child_process
RaisinTen Feb 14, 2021
2e1f1c6
tools: refactor prefer-primordials
aduh95 Nov 7, 2020
b5692b4
test: fix test-doctool-html
aduh95 Feb 16, 2021
5133659
2021-02-16, Version 15.9.0 (Current)
danielleadams Feb 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
deps: upgrade to libuv 1.41.0
Notable changes:

- The IBM i platform has been promoted to a Tier 2 platform.
- libuv is now built with `-fno-strict-aliasing`, and recommends
  that projects using libuv do the same.
- `uv_fs_mkdir()` now returns `UV_EINVAL` for invalid directory
  names on Windows.
- `uv_uptime()` now returns the correct value on OpenVZ containers.
- Windows 8 is the new minimum supported version of Windows.
- Bind errors are now reported from `uv_tcp_connect()`.
- The `uv_pipe()` function has been added.
- The `uv_socketpair()` function has been added.
- `uv_read_start()` error handling has been unified across
  Windows and Unix.

PR-URL: #37360
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
  • Loading branch information
cjihrig authored and danielleadams committed Feb 16, 2021
commit c0eadef495b8913546e6b296c33e564058dd4f67
2 changes: 2 additions & 0 deletions deps/uv/.mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Nicholas Vavilov <[email protected]>
Nick Logan <[email protected]> <[email protected]>
Rasmus Christian Pedersen <[email protected]>
Rasmus Christian Pedersen <[email protected]> <[email protected]>
Richard Lau <[email protected]> <[email protected]>
Robert Mustacchi <[email protected]> <[email protected]>
Ryan Dahl <[email protected]> <[email protected]>
Ryan Emery <[email protected]>
Expand All @@ -47,6 +48,7 @@ Timothy J. Fontaine <[email protected]>
Yasuhiro Matsumoto <[email protected]>
Yazhong Liu <[email protected]>
Yuki Okumura <[email protected]>
cjihrig <[email protected]>
gengjiawen <[email protected]>
jBarz <[email protected]> <[email protected]>
jBarz <[email protected]> <[email protected]>
Expand Down
13 changes: 12 additions & 1 deletion deps/uv/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ guworks <[email protected]>
RossBencina <[email protected]>
Roger A. Light <[email protected]>
chenttuuvv <[email protected]>
Richard Lau <[email protected].com>
Richard Lau <rlau@redhat.com>
ronkorving <[email protected]>
Corbin Simpson <[email protected]>
Zachary Hamm <[email protected]>
Expand Down Expand Up @@ -448,3 +448,14 @@ Aleksej Lebedev <[email protected]>
Nikolay Mitev <[email protected]>
Ulrik Strid <[email protected]>
Elad Lahav <[email protected]>
Elad Nachmias <[email protected]>
Darshan Sen <[email protected]>
Simon Kadisch <[email protected]>
Momtchil Momtchev <[email protected]>
Ethel Weston <[email protected]>
Drew DeVault <[email protected]>
Mark Klein <[email protected]>
schamberg97 <[email protected]>
Bob Weinand <[email protected]>
Issam E. Maghni <[email protected]>
Juan Pablo Canepa <[email protected]>
14 changes: 12 additions & 2 deletions deps/uv/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ if(QEMU)
add_definitions(-D__QEMU__=1)
endif()

option(ASAN "Enable AddressSanitizer (ASan)" OFF)
if(ASAN AND CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang")
add_definitions(-D__ASAN__=1)
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
endif()

# Compiler check
string(CONCAT is-msvc $<OR:
$<C_COMPILER_ID:MSVC>,
Expand Down Expand Up @@ -95,6 +102,9 @@ list(APPEND uv_cflags ${lint-no-conditional-assignment-msvc})
list(APPEND uv_cflags ${lint-no-unsafe-msvc})
list(APPEND uv_cflags ${lint-utf8-msvc} )

check_c_compiler_flag(-fno-strict-aliasing UV_F_STRICT_ALIASING)
list(APPEND uv_cflags $<$<BOOL:${UV_F_STRICT_ALIASING}>:-fno-strict-aliasing>)

set(uv_sources
src/fs-poll.c
src/idna.c
Expand All @@ -108,7 +118,7 @@ set(uv_sources
src/version.c)

if(WIN32)
list(APPEND uv_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0600)
list(APPEND uv_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0602)
list(APPEND uv_libraries
psapi
user32
Expand Down Expand Up @@ -318,7 +328,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX")
src/unix/bsd-ifaddrs.c
src/unix/no-proctitle.c
src/unix/no-fsevents.c)
list(APPEND uv_cflags -fno-strict-aliasing)
list(APPEND uv_libraries socket)
endif()

Expand Down Expand Up @@ -466,6 +475,7 @@ if(LIBUV_BUILD_TESTS)
test/test-poll-close-doesnt-corrupt-stack.c
test/test-poll-close.c
test/test-poll-closesocket.c
test/test-poll-multiple-handles.c
test/test-poll-oob.c
test/test-poll.c
test/test-process-priority.c
Expand Down
79 changes: 79 additions & 0 deletions deps/uv/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,82 @@
2021.02.14, Version 1.41.0 (Stable), 1dff88e5161cba5c59276d2070d2e304e4dcb242

Changes since version 1.40.0:

* mailmap: update contact information for richardlau (Richard Lau)

* build: add asan checks (gengjiawen)

* unix: report bind error in uv_tcp_connect() (Ben Noordhuis)

* doc: uv_tcp_bind() never returns UV_EADDRINUSE (Ben Noordhuis)

* test: fix pump and tcp_write_batch benchmarks (Santiago Gimeno)

* doc: mark IBM i as Tier 2 support (Jesse Gorzinski)

* doc,poll: add notes (repeated cb & cancel pending cb) (Elad Nachmias)

* linux: fix -Wincompatible-pointer-types warning (Ben Noordhuis)

* linux: fix -Wsign-compare warning (Ben Noordhuis)

* android: add system call api guards (Ben Noordhuis)

* unix,win: harmonize uv_read_start() error handling (Ben Noordhuis)

* unix,win: more uv_read_start() argument validation (Ben Noordhuis)

* build: turn on -fno-strict-aliasing (Ben Noordhuis)

* stream: add uv_pipe and uv_socketpair to the API (Jameson Nash)

* unix,win: initialize timer `timeout` field (Ben Noordhuis)

* bsd-ifaddrs: improve comments (Darshan Sen)

* test: remove unnecessary uv_fs_stat() calls (Ben Noordhuis)

* fs: fix utime/futime timestamp rounding errors (Ben Noordhuis)

* test: ensure reliable floating point comparison (Jameson Nash)

* unix,fs: fix uv_fs_sendfile() (Santiago Gimeno)

* unix: fix uv_fs_stat when using statx (Simon Kadisch)

* linux,macos: fix uv_set_process_title regression (Momtchil Momtchev)

* doc: clarify UDP errors and recvmmsg (Ethel Weston)

* test-getaddrinfo: use example.invalid (Drew DeVault)

* Revert "build: fix android autotools build" (Bernardo Ramos)

* unix,fs: on DVS fs, statx returns EOPNOTSUPP (Mark Klein)

* win, fs: mkdir really return UV_EINVAL for invalid names (Nicholas Vavilov)

* tools: migrate tools/make_dist_html.py to python3 (Dominique Dumont)

* unix: fix uv_uptime() on linux (schamberg97)

* unix: check for partial copy_file_range support (Momtchil Momtchev)

* win: bump minimum supported version to windows 8 (Ben Noordhuis)

* poll,unix: ensure safety of rapid fd reuse (Bob Weinand)

* test: fix some warnings (Issam E. Maghni)

* unix: fix uv_uptime() regression (Santiago Gimeno)

* doc: fix versionadded metadata (cjihrig)

* test: fix 'incompatible pointer types' warnings (cjihrig)

* unix: check for EXDEV in uv__fs_sendfile() (Darshan Sen)


2020.09.26, Version 1.40.0 (Stable), 4e69e333252693bd82d6338d6124f0416538dbfc

Changes since version 1.39.0:
Expand Down
7 changes: 2 additions & 5 deletions deps/uv/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ if WINNT
uvinclude_HEADERS += include/uv/win.h include/uv/tree.h
AM_CPPFLAGS += -I$(top_srcdir)/src/win \
-DWIN32_LEAN_AND_MEAN \
-D_WIN32_WINNT=0x0600
-D_WIN32_WINNT=0x0602
libuv_la_SOURCES += src/win/async.c \
src/win/atomicops-inl.h \
src/win/core.c \
Expand Down Expand Up @@ -225,6 +225,7 @@ test_run_tests_SOURCES = test/blackhole-server.c \
test/test-poll-close.c \
test/test-poll-close-doesnt-corrupt-stack.c \
test/test-poll-closesocket.c \
test/test-poll-multiple-handles.c \
test/test-poll-oob.c \
test/test-process-priority.c \
test/test-process-title.c \
Expand Down Expand Up @@ -385,10 +386,6 @@ if ANDROID
uvinclude_HEADERS += include/uv/android-ifaddrs.h
libuv_la_CFLAGS += -D_GNU_SOURCE
libuv_la_SOURCES += src/unix/android-ifaddrs.c \
src/unix/linux-core.c \
src/unix/linux-inotify.c \
src/unix/linux-syscalls.c \
src/unix/procfs-exepath.c \
src/unix/pthread-fixes.c \
src/unix/random-getrandom.c \
src/unix/random-sysctl-linux.c
Expand Down
10 changes: 10 additions & 0 deletions deps/uv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,16 @@ listed in `test/benchmark-list.h`.

Check the [SUPPORTED_PLATFORMS file](SUPPORTED_PLATFORMS.md).

### `-fno-strict-aliasing`

It is recommended to turn on the `-fno-strict-aliasing` compiler flag in
projects that use libuv. The use of ad hoc "inheritance" in the libuv API
may not be safe in the presence of compiler optimizations that depend on
strict aliasing.

MSVC does not have an equivalent flag but it also does not appear to need it
at the time of writing (December 2019.)

### AIX Notes

AIX compilation using IBM XL C/C++ requires version 12.1 or greater.
Expand Down
4 changes: 2 additions & 2 deletions deps/uv/SUPPORTED_PLATFORMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
|---|---|---|---|
| GNU/Linux | Tier 1 | Linux >= 2.6.32 with glibc >= 2.12 | |
| macOS | Tier 1 | macOS >= 10.7 | |
| Windows | Tier 1 | >= Windows 7 | MSVC 2008 and later are supported |
| Windows | Tier 1 | >= Windows 8 | VS 2015 and later are supported |
| FreeBSD | Tier 1 | >= 10 | |
| AIX | Tier 2 | >= 6 | Maintainers: @libuv/aix |
| IBM i | Tier 2 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
| z/OS | Tier 2 | >= V2R2 | Maintainers: @libuv/zos |
| Linux with musl | Tier 2 | musl >= 1.0 | |
| SmartOS | Tier 2 | >= 14.4 | Maintainers: @libuv/smartos |
| Android | Tier 3 | NDK >= r15b | |
| IBM i | Tier 3 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
| MinGW | Tier 3 | MinGW32 and MinGW-w64 | |
| SunOS | Tier 3 | Solaris 121 and later | |
| Other | Tier 3 | N/A | |
Expand Down
3 changes: 2 additions & 1 deletion deps/uv/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

AC_PREREQ(2.57)
AC_INIT([libuv], [1.40.0], [https://github.com/libuv/libuv/issues])
AC_INIT([libuv], [1.41.0], [https://github.com/libuv/libuv/issues])
AC_CONFIG_MACRO_DIR([m4])
m4_include([m4/libuv-extra-automake-flags.m4])
m4_include([m4/as_case.m4])
Expand All @@ -25,6 +25,7 @@ AC_ENABLE_STATIC
AC_PROG_CC
AM_PROG_CC_C_O
CC_FLAG_VISIBILITY #[-fvisibility=hidden]
CC_CHECK_CFLAGS_APPEND([-fno-strict-aliasing])
CC_CHECK_CFLAGS_APPEND([-g])
CC_CHECK_CFLAGS_APPEND([-std=gnu89])
CC_CHECK_CFLAGS_APPEND([-Wall])
Expand Down
18 changes: 18 additions & 0 deletions deps/uv/docs/src/pipe.rst
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,21 @@ API
function is blocking.

.. versionadded:: 1.16.0

.. c:function:: int uv_pipe(uv_file fds[2], int read_flags, int write_flags)

Create a pair of connected pipe handles.
Data may be written to `fds[1]` and read from `fds[0]`.
The resulting handles can be passed to `uv_pipe_open`, used with `uv_spawn`,
or for any other purpose.

Valid values for `flags` are:

- UV_NONBLOCK_PIPE: Opens the specified socket handle for `OVERLAPPED`
or `FIONBIO`/`O_NONBLOCK` I/O usage.
This is recommended for handles that will be used by libuv,
and not usually recommended otherwise.

Equivalent to :man:`pipe(2)` with the `O_CLOEXEC` flag set.

.. versionadded:: 1.41.0
61 changes: 44 additions & 17 deletions deps/uv/docs/src/poll.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,36 +86,63 @@ API
.. c:function:: int uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb)

Starts polling the file descriptor. `events` is a bitmask made up of
UV_READABLE, UV_WRITABLE, UV_PRIORITIZED and UV_DISCONNECT. As soon as an
event is detected the callback will be called with `status` set to 0, and the
detected events set on the `events` field.
`UV_READABLE`, `UV_WRITABLE`, `UV_PRIORITIZED` and `UV_DISCONNECT`. As soon
as an event is detected the callback will be called with `status` set to 0,
and the detected events set on the `events` field.

The UV_PRIORITIZED event is used to watch for sysfs interrupts or TCP out-of-band
messages.
The `UV_PRIORITIZED` event is used to watch for sysfs interrupts or TCP
out-of-band messages.

The UV_DISCONNECT event is optional in the sense that it may not be
reported and the user is free to ignore it, but it can help optimize the shutdown
path because an extra read or write call might be avoided.
The `UV_DISCONNECT` event is optional in the sense that it may not be
reported and the user is free to ignore it, but it can help optimize the
shutdown path because an extra read or write call might be avoided.

If an error happens while polling, `status` will be < 0 and corresponds
with one of the UV_E* error codes (see :ref:`errors`). The user should
with one of the `UV_E*` error codes (see :ref:`errors`). The user should
not close the socket while the handle is active. If the user does that
anyway, the callback *may* be called reporting an error status, but this
is **not** guaranteed.
anyway, the callback *may* be called reporting an error status, but this is
**not** guaranteed.

.. note::
Calling :c:func:`uv_poll_start` on a handle that is already active is fine. Doing so
will update the events mask that is being watched for.
Calling :c:func:`uv_poll_start` on a handle that is already active is
fine. Doing so will update the events mask that is being watched for.

.. note::
Though UV_DISCONNECT can be set, it is unsupported on AIX and as such will not be set
on the `events` field in the callback.
Though `UV_DISCONNECT` can be set, it is unsupported on AIX and as such
will not be set on the `events` field in the callback.

.. versionchanged:: 1.9.0 Added the UV_DISCONNECT event.
.. versionchanged:: 1.14.0 Added the UV_PRIORITIZED event.
.. note::
If one of the events `UV_READABLE` or `UV_WRITABLE` are set, the
callback will be called again, as long as the given fd/socket remains
readable or writable accordingly. Particularly in each of the following
scenarios:

* The callback has been called because the socket became
readable/writable and the callback did not conduct a read/write on
this socket at all.
* The callback committed a read on the socket, and has not read all the
available data (when `UV_READABLE` is set).
* The callback committed a write on the socket, but it remained
writable afterwards (when `UV_WRITABLE` is set).
* The socket has already became readable/writable before calling
:c:func:`uv_poll_start` on a poll handle associated with this socket,
and since then the state of the socket did not changed.

In all of the above listed scenarios, the socket remains readable or
writable and hence the callback will be called again (depending on the
events set in the bitmask). This behaviour is known as level
triggering.

.. versionchanged:: 1.9.0 Added the `UV_DISCONNECT` event.
.. versionchanged:: 1.14.0 Added the `UV_PRIORITIZED` event.

.. c:function:: int uv_poll_stop(uv_poll_t* poll)

Stop polling the file descriptor, the callback will no longer be called.

.. note::
Calling :c:func:`uv_poll_stop` is effective immediately: any pending
callback is also canceled, even if the socket state change notification
was already pending.

.. seealso:: The :c:type:`uv_handle_t` API functions also apply.
12 changes: 7 additions & 5 deletions deps/uv/docs/src/process.rst
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,14 @@ Data types
* flags may be specified to create a duplex data stream.
*/
UV_READABLE_PIPE = 0x10,
UV_WRITABLE_PIPE = 0x20
UV_WRITABLE_PIPE = 0x20,
/*
* Open the child pipe handle in overlapped mode on Windows.
* On Unix it is silently ignored.
*/
UV_OVERLAPPED_PIPE = 0x40
* When UV_CREATE_PIPE is specified, specifying UV_NONBLOCK_PIPE opens the
* handle in non-blocking mode in the child. This may cause loss of data,
* if the child is not designed to handle to encounter this mode,
* but can also be significantly more efficient.
*/
UV_NONBLOCK_PIPE = 0x40
} uv_stdio_flags;


Expand Down
5 changes: 5 additions & 0 deletions deps/uv/docs/src/stream.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ API
be made several times until there is no more data to read or
:c:func:`uv_read_stop` is called.

.. versionchanged:: 1.38.0 :c:func:`uv_read_start()` now consistently
returns `UV_EALREADY` when called twice, and `UV_EINVAL` when the
stream is closing. With older libuv versions, it returns `UV_EALREADY`
on Windows but not UNIX, and `UV_EINVAL` on UNIX but not Windows.

.. c:function:: int uv_read_stop(uv_stream_t*)

Stop reading data from the stream. The :c:type:`uv_read_cb` callback will
Expand Down
Loading