#
56fada47 |
| 03-Oct-2023 |
Ben Noordhuis |
src: default to stream=stderr in handle printer (#4161) Make printing handles from gdb a little easier because it doesn't always know how to locate the stdout or stderr globals from libc
src: default to stream=stderr in handle printer (#4161) Make printing handles from gdb a little easier because it doesn't always know how to locate the stdout or stderr globals from libc. With this commit `call uv_print_all_handles(0, 0)` prints the handles from the default loop to stderr.
show more ...
|
#
1b01b786 |
| 24-May-2023 |
Ben Noordhuis |
unix,win: replace QUEUE with struct uv__queue (#4022) Recent versions of gcc have started emitting warnings about the liberal type casting inside the QUEUE macros. Although the warnings
unix,win: replace QUEUE with struct uv__queue (#4022) Recent versions of gcc have started emitting warnings about the liberal type casting inside the QUEUE macros. Although the warnings are false positives, let's use them as the impetus to switch to a type-safer and arguably cleaner approach. Fixes: https://github.com/libuv/libuv/issues/4019
show more ...
|
#
2f33980a |
| 12-Apr-2023 |
Trevor Norris |
src: switch to use C11 atomics where available (#3950) Switch all code in unix/ to use C11 atomics directly. Change uv_library_shutdown() to use an exchange instead of load/store.
src: switch to use C11 atomics where available (#3950) Switch all code in unix/ to use C11 atomics directly. Change uv_library_shutdown() to use an exchange instead of load/store. Unfortunately MSVC only started supporting C11 atomics in VS2022 version 17.5 Preview 2 as experimental. So resort to using the Interlocked API. Ref: https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/ Fixes: https://github.com/libuv/libuv/issues/3948
show more ...
|
#
2f110a50 |
| 18-Jan-2023 |
Jameson Nash |
misc: extend getpw to take uid as an argument (#3523) File system operations may return uid and gid values, which we may want to pretty-print. We already have the code for getting inform
misc: extend getpw to take uid as an argument (#3523) File system operations may return uid and gid values, which we may want to pretty-print. We already have the code for getting information for the current user, so just need to add a parameter to make it exposed for every user. We expose information about groups in a similar manner also.
show more ...
|
#
434eb4b0 |
| 14-Jan-2023 |
Ben Noordhuis |
linux: handle cpu hotplugging in uv_cpu_info() (#3861) On Linux, CPUs can come online or go offline while uv_cpu_info() is busy gathering data. Change uv_cpu_info() in the following ways
linux: handle cpu hotplugging in uv_cpu_info() (#3861) On Linux, CPUs can come online or go offline while uv_cpu_info() is busy gathering data. Change uv_cpu_info() in the following ways: 1. Learn online CPUs from /proc/stat 2. Get the model name from /proc/cpuinfo when it has a matching CPU, or default to "unknown" 3. Get speed from /sys/devices/system/cpu/cpu%u/cpufreq/scaling_cur_freq when it exists, or default to 0 Before this commit, libuv read the speed from /proc/cpuinfo but that reports the base frequency, not the actual frequency. My system has two cores running permanently at 3.6 GHz but libuv thought all 12 ran at 2.2 GHz. Fixes: https://github.com/libuv/libuv/issues/2351 Fixes: https://github.com/libuv/libuv/issues/3858
show more ...
|
#
e1415860 |
| 11-Nov-2022 |
Trevor Norris |
src: add new metrics APIs (#3749) The following metrics are now always recorded and available via the new uv_metrics_info() API. * loop_count: Number of event loop iterations.
src: add new metrics APIs (#3749) 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
show more ...
|
#
b00d1bd2 |
| 22-Sep-2022 |
Ben Noordhuis |
unix,win: fix memory leak in uv_fs_scandir() (#3760) uv_fs_scandir() leaked an entry when you called it on a directory with a single entry _and_ you didn't run the iterator until UV_EOF.
unix,win: fix memory leak in uv_fs_scandir() (#3760) uv_fs_scandir() leaked an entry when you called it on a directory with a single entry _and_ you didn't run the iterator until UV_EOF. Fixes: https://github.com/libuv/libuv/issues/3748
show more ...
|
#
8bcd689c |
| 11-Jun-2022 |
theanarkh <2923878201@qq.com> |
tcp,pipe: fail `bind` or `listen` after `close` (#3641) Return `UV_EINVAL` in `bind` and `listen` when `handle` is `UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`. Fixes: https://gith
tcp,pipe: fail `bind` or `listen` after `close` (#3641) Return `UV_EINVAL` in `bind` and `listen` when `handle` is `UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`. Fixes: https://github.com/libuv/libuv/issues/3503
show more ...
|
#
0a47e4c7 |
| 03-Dec-2021 |
Wayne Zhang |
zos: use destructor for uv__threadpool_cleanup() (#3376) On z/OS, instead of calling the uv__threadpool_cleanup() function from inside uv_library_shutdown(), the destructor attribute mus
zos: use destructor for uv__threadpool_cleanup() (#3376) On z/OS, instead of calling the uv__threadpool_cleanup() function from inside uv_library_shutdown(), the destructor attribute must be used; otherwise, tests will fail with exit code 1 and no output. Additionally, post() does not need to be called when the destructor attribute is used. Also adds uv__os390_cleanup() function to clean System V message queue on z/OS. Co-authored-by: Igor Todorovski <itodorov@ca.ibm.com> Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
show more ...
|
#
c7843ecf |
| 25-Nov-2021 |
Campbell He |
unix,win: add uv_ip_name to get name from sockaddr (#3368) 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
unix,win: add uv_ip_name to get name from sockaddr (#3368) 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.
show more ...
|
#
a98839d7 |
| 28-May-2021 |
James M Snell |
cleanup,win: Remove _WIN32 guards on threadpool Fixes: https://github.com/libuv/libuv/issues/2980 Refs: https://github.com/nodejs/node/pull/35021 Reviewed-By: Ben Noordhuis <info@bno
cleanup,win: Remove _WIN32 guards on threadpool Fixes: https://github.com/libuv/libuv/issues/2980 Refs: https://github.com/nodejs/node/pull/35021 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
Revision tags: v1.41.0, v1.40.0, v1.39.0, v1.38.1 |
|
#
48cf8c82 |
| 08-Jun-2020 |
Ben Noordhuis |
unix,win: more uv_read_start() argument validation Return `UV_EINVAL` when one or more arguments are NULL. Fixes: https://github.com/libuv/help/issues/137 PR-URL: https://github
unix,win: more uv_read_start() argument validation Return `UV_EINVAL` when one or more arguments are NULL. Fixes: https://github.com/libuv/help/issues/137 PR-URL: https://github.com/libuv/libuv/pull/2795 Reviewed-By: Jameson Nash <vtjnash@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
show more ...
|
#
06b73174 |
| 08-Jun-2020 |
Ben Noordhuis |
unix,win: harmonize uv_read_start() error handling The behavior of `uv_read_start()` when the handle is closing or already busy reading wasn't consistent across platforms. Now it is.
unix,win: harmonize uv_read_start() error handling The behavior of `uv_read_start()` when the handle is closing or already busy reading wasn't consistent across platforms. Now it is. Fixes: https://github.com/libuv/help/issues/137 PR-URL: https://github.com/libuv/libuv/pull/2795 Reviewed-By: Jameson Nash <vtjnash@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
show more ...
|
Revision tags: v1.38.0, v1.37.0, v1.36.0 |
|
#
e8effd45 |
| 26-Mar-2020 |
Trevor Norris |
core: add API to measure event loop idle time The API addition `uv_metrics_idle_time()` is a thread safe call that allows the user to retrieve the amount of time the event loop has spent
core: add API to measure event loop idle time The API addition `uv_metrics_idle_time()` is a thread safe call that allows the user to retrieve the amount of time the event loop has spent in the kernel's event provider (i.e. poll). It was done this way to allow retrieving this value without needing to interrupt the execution of the event loop. This option can be enabled by passing `UV_METRICS_IDLE_TIME` to `uv_loop_configure()`. One important aspect of this change is, when enabled, to always first call the event provider with a `timeout == 0`. This allows libuv to know whether any events were waiting in the event queue when the event provider was called. The importance of this is because libuv is tracking the amount of "idle time", not "poll time". Thus the provider entry time is not recorded when `timeout == 0` (the event provider never idles in this case). While this does add a small amount of overhead, when enabled, but the overhead decreases when the event loop has a heavier load. This is because poll events will be waiting when the event provider is called. Thus never actually recording the provider entry time. Checking if `uv_loop_t` is configured with `UV_METRICS_IDLE_TIME` always happens in `uv__metrics_set_provider_entry_time()` and `uv__metrics_update_idle_time()`. Making the conditional logic wrapping each call simpler and allows for instrumentation to always hook into those two function calls. Rather than placing the fields directly on `uv__loop_internal_fields_t` add the struct `uv__loop_metrics_t` as a location for future metrics API additions. Tests and additional documentation has been included. PR-URL: https://github.com/libuv/libuv/pull/2725 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
c70dd705 |
| 16-Jun-2020 |
Ben Noordhuis |
unix: use relaxed loads/stores for feature checks Make ThreadSanitizer stop complaining about the static variables that libuv uses to record the presence (or lack) of system calls and ot
unix: use relaxed loads/stores for feature checks Make ThreadSanitizer stop complaining about the static variables that libuv uses to record the presence (or lack) of system calls and other kernel features. Fixes: https://github.com/libuv/libuv/issues/2884 PR-URL: https://github.com/libuv/libuv/pull/2886 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
aa7b62ef |
| 28-Apr-2020 |
Ben Noordhuis |
win: make uv_udp_init_ex() accept UV_UDP_RECVMMSG Commit 5736658b ("udp: add flag to enable recvmmsg(2) explicitly") added the flag but didn't update the validation logic in src/win/udp.
win: make uv_udp_init_ex() accept UV_UDP_RECVMMSG Commit 5736658b ("udp: add flag to enable recvmmsg(2) explicitly") added the flag but didn't update the validation logic in src/win/udp.c. This commit moves the validation logic to src/uv-common.c. The flag is now accepted as a no-op on Windows. Fixes: https://github.com/libuv/libuv/issues/2806 PR-URL: https://github.com/libuv/libuv/pull/2809 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
#
72fe3543 |
| 22-Apr-2020 |
Ben Noordhuis |
unix,win: add uv_library_shutdown() Make it possible to explicitly tell libuv to release any resources it's still holding onto (memory, threads, file descriptors, etc.) Before t
unix,win: add uv_library_shutdown() Make it possible to explicitly tell libuv to release any resources it's still holding onto (memory, threads, file descriptors, etc.) Before this commit, cleanup was performed in various destructors. This commit centralizes the cleanup logic, enabling the addition of `uv_library_shutdown()`, but maintains the current observable behavior of cleaning up when libuv is unloaded by means of `dlclose(3)`. Fixes: https://github.com/libuv/libuv/issues/2763 PR-URL: https://github.com/libuv/libuv/pull/2764 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
show more ...
|
Revision tags: v1.35.0 |
|
#
1bcfbfd0 |
| 10-Mar-2020 |
Ben Noordhuis |
src: add uv__reallocf() Modeled after FreeBSD's `reallocf(3)`: a version of `realloc(3)` that frees the memory when reallocation fails, simplifying error handling in many cases.
src: add uv__reallocf() Modeled after FreeBSD's `reallocf(3)`: a version of `realloc(3)` that frees the memory when reallocation fails, simplifying error handling in many cases. PR-URL: https://github.com/libuv/libuv/pull/2735 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
show more ...
|
Revision tags: v1.34.2, v1.34.1, v1.34.0, v1.33.1, v1.33.0 |
|
#
645be48a |
| 27-Sep-2019 |
Ouyang Yadong |
unix: set sin_len and sin6_len FreeBSD defines `sin_len` and `sin6_len` inside `sockaddr_in` and `sockaddr_in6`. `sockaddr`s come from `getsockname` and `uv_ip4_addr` will differ in
unix: set sin_len and sin6_len FreeBSD defines `sin_len` and `sin6_len` inside `sockaddr_in` and `sockaddr_in6`. `sockaddr`s come from `getsockname` and `uv_ip4_addr` will differ in the first byte if libuv doesn't set `sin_len` correctly. PR-URL: https://github.com/libuv/libuv/pull/2492 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>
show more ...
|
Revision tags: v1.32.0 |
|
#
040543ee |
| 17-Aug-2019 |
Santiago Gimeno |
src: move uv_free_cpu_info to uv-common.c PR-URL: https://github.com/libuv/libuv/pull/2433 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.co
src: move uv_free_cpu_info to uv-common.c PR-URL: https://github.com/libuv/libuv/pull/2433 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
show more ...
|
Revision tags: v1.31.0 |
|
#
2480b615 |
| 01-Aug-2019 |
Saúl Ibarra Corretgé |
unix,win: add ability to retrieve all env variables Fixes: https://github.com/libuv/libuv/issues/2400 PR-URL: https://github.com/libuv/libuv/pull/2404 Reviewed-By: Anna Hennings
unix,win: add ability to retrieve all env variables Fixes: https://github.com/libuv/libuv/issues/2400 PR-URL: https://github.com/libuv/libuv/pull/2404 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
Revision tags: v1.30.1, v1.30.0, v1.29.1, v1.29.0, v1.28.0 |
|
#
89a027d8 |
| 17-Mar-2019 |
Yury Selivanov |
unix: support sockaddr_un in uv_udp_send() PR-URL: https://github.com/libuv/libuv/pull/2220 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Colin Ihrig <cjihrig
unix: support sockaddr_un in uv_udp_send() PR-URL: https://github.com/libuv/libuv/pull/2220 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
Revision tags: v1.27.0, v1.26.0, v1.25.0, v1.24.1, v1.24.0, v1.23.2, v1.23.1, v1.23.0, v1.22.0, v1.21.0, v1.20.3, v1.20.2, v1.20.1, v1.20.0, v1.19.2, v1.19.1, v1.19.0, v1.18.0, v1.17.0, v1.16.1, v1.16.0, v1.15.0, v1.14.1, v1.14.0, v1.13.1, v1.13.0, v1.12.0, v1.11.0, v1.10.2, v1.10.1, v1.10.0, v0.10.37, v1.9.1, v1.9.0, v1.8.0, v1.7.5, v1.7.4, v1.7.3, v1.7.2, v1.7.1, v1.7.0, v1.6.1, v1.6.0, v1.5.0, v0.10.36, v1.4.2, v0.10.35, v1.4.1, v0.10.34, v1.4.0 |
|
#
99440bb6 |
| 30-Jan-2015 |
cjihrig |
unix,win: add uv_fs_{open,read,close}dir() Co-authored-by: Julien Gilli <jgilli@nodejs.org> Co-authored-by: Jeremy Whitlock <jwhitlock@apache.org> Reviewed-By: Ben Noordhuis <info@bn
unix,win: add uv_fs_{open,read,close}dir() Co-authored-by: Julien Gilli <jgilli@nodejs.org> Co-authored-by: Jeremy Whitlock <jwhitlock@apache.org> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> PR-URL: https://github.com/libuv/libuv/pull/2057 Refs: https://github.com/joyent/libuv/issues/1430 Refs: https://github.com/joyent/libuv/pull/1521 Refs: https://github.com/joyent/libuv/pull/1574 Refs: https://github.com/libuv/libuv/pull/175 Refs: https://github.com/nodejs/node/issues/583 Refs: https://github.com/libuv/libuv/pull/416 Refs: https://github.com/libuv/libuv/issues/170
show more ...
|
#
90415a33 |
| 20-Mar-2017 |
Santiago Gimeno |
udp: add support for UDP connected sockets Add two new methods: `uv_udp_connect()` to connect / disconnect an UDP handle. `uv_udp_getpeername()` to get the remote peer address o
udp: add support for UDP connected sockets Add two new methods: `uv_udp_connect()` to connect / disconnect an UDP handle. `uv_udp_getpeername()` to get the remote peer address of a connected UDP handle. Modify `uv_udp_send()` and `uv_udp_try_send()` to accept a `NULL` `addr` to send messages over an "UDP connection". Refs: https://github.com/libuv/leps/pull/10 PR-URL: https://github.com/libuv/libuv/pull/1872 Backport-PR-URL: https://github.com/libuv/libuv/pull/2217 Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
show more ...
|
#
98db1847 |
| 14-Feb-2019 |
Santiago Gimeno |
src: fill sockaddr_in6.sin6_len when it's defined As some calls in some platforms require. PR-URL: https://github.com/libuv/libuv/pull/2189 Reviewed-By: Saúl Ibarra Corretgé <sa
src: fill sockaddr_in6.sin6_len when it's defined As some calls in some platforms require. PR-URL: https://github.com/libuv/libuv/pull/2189 Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|