| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
This patch adds documentation for the introduced `uv_os_get_passwd2`,
`uv_os_get_group`, `uv_os_free_group` methods in
https://github.com/libuv/libuv/pull/3523
Fixes: https://github.com/libuv/libuv/issues/4007
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
| |
uv_udp_init() creates the UDP socket lazily but to set socket options
there must be, well, a socket to set the options on. Document how and
when that requirement is met.
Fixes: https://github.com/libuv/libuv/issues/4370
|
|
|
|
| |
Closes: https://github.com/libuv/libuv/pull/4350
Closes: https://github.com/libuv/libuv/issues/3487
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.)
|
|
|
| |
Refs: https://github.com/libuv/libuv/issues/4160
|
|
|
| |
Fixes: https://github.com/libuv/libuv/issues/1911
|
|
|
|
|
|
|
| |
`linkcheck` is printing the following error:
```
( guide/utilities: line 311) broken https://en.wikipedia.org/wiki/Shared_library#Shared_libraries - Anchor 'Shared_libraries' not found
```
|
| |
|
|
|
| |
add EUNATCH errno mapping
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Add two new APIs for binding and connecting to abstract UNIX sockets.
Fixes: https://github.com/libuv/libuv/issues/4028
|
|
|
|
|
|
|
|
|
|
|
| |
Document that we return UINT64_MAX if the cgroup limit is set to the
max. For cgroupv2, that happens if we encounter `max`, while cgroupv1
returns 9223372036854771712 when no limit is set (which according to
[this StackExchange discussion] is derived from LONG_MAX and
PAGE_SIZE). So make sure we also detect this case for cgroupv1.
[this StackExchange discussion]: https://unix.stackexchange.com/questions/420906/what-is-the-value-for-the-cgroups-limit-in-bytes-if-the-memory-is-not-restricte
Addresses: https://github.com/libuv/libuv/pull/3744/files#r974062912
|
| |
|
|
|
| |
Fixes: https://github.com/libuv/libuv/issues/1674
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add io_uring support for several asynchronous file operations:
- read, write
- fsync, fdatasync
- stat, fstat, lstat
io_uring is used when the kernel is new enough, otherwise libuv simply
falls back to the thread pool.
Performance looks great; an 8x increase in throughput has been observed.
This work was sponsored by ISC, the Internet Systems Consortium.
Fixes: https://github.com/libuv/libuv/issues/1947
|
|
|
| |
Fixes: https://github.com/libuv/libuv/issues/3928
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The maximum number of times timers should run when uv_run() is called
with UV_RUN_ONCE and UV_RUN_NOWAIT is 1. Do that by conditionally
calling timers before entering the while loop when called with
UV_RUN_DEFAULT.
The reason to always run timers at the end of the while loop, instead of
at the beginning, is to help enforce the conceptual event loop model.
Which starts when entering the event provider (e.g. calling poll).
Other than only allowing timers to be processed once per uv_run()
execution, the only other noticeable change this will show is if all the
following are true:
* uv_run() is called with UV_RUN_NOWAIT or UV_RUN_ONCE.
* An event is waiting to be received when poll is called.
* Execution time between the call to uv_timer_start() and entering the
while loop is longer than the timeout.
If all these are true, then timers that would have executed before
entering the event provider will now be executed afterward.
Fixes: https://github.com/libuv/libuv/issues/3686
Co-authored-by: Momtchil Momtchev <momtchil@momtchev.com>
|
| |
|
| |
|
|
|
|
| |
Add uv_thread_getcpu() api to get the cpu number on which the calling
thread is running.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
| |
Refs: https://github.com/libuv/libuv/discussions/3809
|
| |
|
|
|
|
| |
Our minimum requirements are Windows 8 now.
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
| |
Give the threads in the thread pool a stack size that is consistent
across platforms and architectures.
Fixes: https://github.com/libuv/libuv/issues/3786
|
| |
|
|
|
|
|
|
| |
Most platforms report it in kilobytes but macOS and Solaris report it in
bytes and pages respectively.
Fixes: https://github.com/nodejs/node/issues/44332
|
|
|
| |
Github -> GitHub
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
"check out" is a verb phrase, but "checkout" is a noun. Since it is
being used as a verb, the spelling "check out" is required.
|
|
|
| |
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
|
|
|
|
|
|
| |
Some systems return fractional seconds, some return full seconds.
On Windows uptime was artificially rounded down.
Fixes #3447.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add `Makefile` for example codes. (cherry-pick from old uvbook repo)
- Add a new example "Default loop" to "Basics of libuv"/"Default loop"
- Document review and update: `Introduction`, `Basics of libuv`, `Filesystem`
+ Update the referenced libuv code snippet
+ Link update: http->https
**Content Updates**:
- `filesystem.rst`#L291-L297: Add note for `uv_fs_event_start`
- `filesystem.rst`#L334: Add description of the callback function parameter `status`
The following examples have been tested manually in WSL2 (Ubuntu 20.04) with libuv 1.42.0:
- helloworld
- default-loop
- idle-basic
- uvcat
- uvtee
- onchange (test on macOS)
Co-authored-by: Nikhil Marathe <nsm.nikhil@gmail.com>
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
- pyuv is not actively maintained
- uvloop is downloaded 11M/mo, pyuv only 25k/mo
Refs: https://github.com/saghul/pyuv/issues/270#issuecomment-925106097
|
| |
|
|
|
|
|
|
| |
Fixes: https://github.com/libuv/libuv/issues/3252
PR-URL: https://github.com/libuv/libuv/pull/3253
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The intention here is to make working with recvmmsg more
straight-forward, since internally libuv expects buffers that are
multiples of UV__UDP_DGRAM_MAXSIZE, but previously the availability of
that value wasn't readily apparent to the caller.
Closes: https://github.com/libuv/libuv/issues/2822
Closes: https://github.com/libuv/libuv/issues/1025
Closes: https://github.com/libuv/libuv/pull/1114
PR-URL: https://github.com/libuv/libuv/pull/2986
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Freenode is gone (replaced by Libera.chat), but IRC was unused anyways.
Fixes: https://github.com/libuv/libuv/issues/3157
Fixes: https://github.com/libuv/libuv/issues/3208
PR-URL: https://github.com/libuv/libuv/pull/3214
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
|
|
|
|
|
|
|
|
| |
Copied from
https://github.com/libuv/libuv/wiki/Projects-that-use-libuv, since the
wiki was vulnerable to spam content.
PR-URL: https://github.com/libuv/libuv/pull/3204
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
|
|
|
|
| |
PR-URL: https://github.com/libuv/libuv/pull/3201
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
`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>
|
|
|
|
|
|
| |
Fixes: https://github.com/libuv/libuv/issues/3041
PR-URL: https://github.com/libuv/libuv/pull/3076
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
|