#
66a3053e |
| 08-Sep-2021 |
Sylvain Corlay |
cmake: use standard installation layout always Fixes: https://github.com/libuv/libuv/issues/3074 PR-URL: https://github.com/libuv/libuv/pull/3084 Reviewed-By: Jameson Nash <vtjnash@g
cmake: use standard installation layout always Fixes: https://github.com/libuv/libuv/issues/3074 PR-URL: https://github.com/libuv/libuv/pull/3084 Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
7b18d0aa |
| 20-Jul-2021 |
Andy Fiddaman |
sunos,cmake: use thread-safe errno On illumos, the global errno variable is not thread-safe by default, requiring that the application be built with gcc's -pthread option, or that it
sunos,cmake: use thread-safe errno On illumos, the global errno variable is not thread-safe by default, requiring that the application be built with gcc's -pthread option, or that it defines -D_REENTRANT. This was done already for the autotools build, but not for CMake. PR-URL: https://github.com/libuv/libuv/pull/3243 Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
5fe59726 |
| 20-Jul-2021 |
Andy Fiddaman |
sunos: restore use of event ports The sunos platform currently covers at least the Solaris and illumos operating systems. Although these diverged 11 years ago they still share some c
sunos: restore use of event ports The sunos platform currently covers at least the Solaris and illumos operating systems. Although these diverged 11 years ago they still share some common features such as support for event ports. illumos also has a compatibility wrapper for epoll but this is not recommended for use over event ports. From the NOTES section of https://illumos.org/man/5/epoll: The epoll facility is implemented for purposes of offering compatibility to and portability of Linux-borne applications; native applications should continue to prefer using event ports... In particular, use of epoll in a multithreaded environment is fraught with peril... Restore the event ports code so that libuv can continue to be used on Solaris, and to avoid the problems that come with using epoll() on illumos. The separation of epoll into src/unix/epoll.c has been retained. Fixes: https://github.com/libuv/libuv/issues/3241 PR-URL: https://github.com/libuv/libuv/pull/3242 Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
03f1a697 |
| 13-Jul-2021 |
Jameson Nash |
unix,stream: fix loop hang after uv_shutdown While most users will likely typically call uv_close in their uv_shutdown callback, some callers (notable nodejs) do not always do so. Th
unix,stream: fix loop hang after uv_shutdown While most users will likely typically call uv_close in their uv_shutdown callback, some callers (notable nodejs) do not always do so. This can result in libuv keeping the loop active, even though there are no outstanding reqs left to handle. This bug was added in 80f2f826bf90b84e659321c0b7fd8af419acb85e, where the premise of that commit appears to have simply been incorrect, as demonstrated by the added test. Refs: https://github.com/libuv/libuv/issues/3202 PR-URL: https://github.com/libuv/libuv/pull/3233 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
#
caf22ddb |
| 02-Jul-2021 |
tjarlama |
illumos: event ports to epoll Sunos has added epoll wrappers to offer compatability for binaries build specifically for linux (https://illumos.org/man/5/epoll). With this, it's now p
illumos: event ports to epoll Sunos has added epoll wrappers to offer compatability for binaries build specifically for linux (https://illumos.org/man/5/epoll). With this, it's now possible to develop epoll as a generic interface and share between Linux and SUNOS, similar to kqueue. Fixes: https://github.com/libuv/libuv/issues/3008 PR-URL: https://github.com/libuv/libuv/pull/3046 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
ce15b840 |
| 21-May-2021 |
Jameson Nash |
Re-merge "unix,stream: clear read/write states on close/eof" This reverts commit 46f36e3df1a666620f6749427f15651cbc4b7001. PR-URL: https://github.com/libuv/libuv/pull/3006 Refs:
Re-merge "unix,stream: clear read/write states on close/eof" This reverts commit 46f36e3df1a666620f6749427f15651cbc4b7001. PR-URL: https://github.com/libuv/libuv/pull/3006 Refs: https://github.com/libuv/libuv/pull/2967 Refs: https://github.com/libuv/libuv/pull/2409 Refs: https://github.com/libuv/libuv/issues/2943 Refs: https://github.com/libuv/libuv/pull/2968 Refs: https://github.com/nodejs/node/pull/36111 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
#
ac5b21a2 |
| 14-May-2021 |
Jameson Nash |
Revert "win,build: Add cmake -DSTATIC_VCRT=ON option" This reverts commit b94934f01257d19814baddd175fae7477dfebb1a. The required version of cmake (3.15) is newer than we are current
Revert "win,build: Add cmake -DSTATIC_VCRT=ON option" This reverts commit b94934f01257d19814baddd175fae7477dfebb1a. The required version of cmake (3.15) is newer than we are currently using in Android CI (3.10). PR-URL: https://github.com/libuv/libuv/pull/3172 Refs: https://github.com/libuv/libuv/pull/3085
show more ...
|
#
b94934f0 |
| 13-May-2021 |
Romain Roffé |
win,build: Add cmake -DSTATIC_VCRT=ON option PR-URL: https://github.com/libuv/libuv/pull/3085 Reviewed-By: Jameson Nash <vtjnash@gmail.com> |
#
67994c68 |
| 23-Mar-2021 |
Zhao Zhili |
cmake: fix linker flags There is no CMAKE_LINKER_FLAGS_DEBUG. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com> PR-URL: https://github.com/libuv/libuv/pull/3137 Reviewed-By:
cmake: fix linker flags There is no CMAKE_LINKER_FLAGS_DEBUG. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com> PR-URL: https://github.com/libuv/libuv/pull/3137 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
Revision tags: v1.41.0 |
|
#
c2589424 |
| 02-Dec-2020 |
Shuowang (Wayne) Zhang |
zos: use custom proctitle implementation ZOSLIB uses `argv[0]` to determine the exepath. So it is necessary to use an implementation of proctitle that does not modify `argv[0]`. Since
zos: use custom proctitle implementation ZOSLIB uses `argv[0]` to determine the exepath. So it is necessary to use an implementation of proctitle that does not modify `argv[0]`. Since there is currently no support for process titles on z/OS, the custom proctitle implementation simply stores the desired title in memory. This resolves failure in tests `get_currentexe` and `process_title` on z/OS. PR-URL: https://github.com/libuv/libuv/pull/3060 Reviewed-By: Richard Lau <rlau@redhat.com>
show more ...
|
Revision tags: v1.40.0 |
|
#
bf1aea0d |
| 31-Aug-2020 |
Shuowang (Wayne) Zhang |
zos: introduce zoslib This commit introduces ZOSLIB for z/OS, which is a C/C++ library that implements additional POSIX APIs not available in the LE C Runtime Library, and provides A
zos: introduce zoslib This commit introduces ZOSLIB for z/OS, which is a C/C++ library that implements additional POSIX APIs not available in the LE C Runtime Library, and provides API for EBCDIC <-> ASCII conversion. This library requires the linker to be set to CXX when building for z/OS. ZOSLIB is designed to be installed separately, and then linked to libuv with the `-DZOSLIB_DIR` option. PR-URL: https://github.com/libuv/libuv/pull/3060 Reviewed-By: Richard Lau <rlau@redhat.com>
show more ...
|
#
1073ceae |
| 28-Aug-2020 |
Shuowang (Wayne) Zhang |
zos: build in ascii code page PR-URL: https://github.com/libuv/libuv/pull/3060 Reviewed-By: Richard Lau <rlau@redhat.com> |
#
c9406ba0 |
| 28-Dec-2020 |
Bob Weinand |
poll,unix: ensure safety of rapid fd reuse Consider the following scenario: uv_poll_init(loop, poll, fd); uv_poll_start(poll, UV_READABLE, cb); // the cb gets invoked etc.
poll,unix: ensure safety of rapid fd reuse Consider the following scenario: uv_poll_init(loop, poll, fd); uv_poll_start(poll, UV_READABLE, cb); // the cb gets invoked etc. uv_poll_stop(poll); close(fd); fd = allocate_new_socket(); // allocate_new_socket() is assigned the same fd by "bad luck" from the OS // some time later: uv_poll_init(loop, otherpoll, fd); uv_poll_start(otherpoll, UV_READABLE, cb); uv_close(poll); // uv__io_stop: Assertion `loop->watchers[w->fd] == w' failed. According to documentation, "however the fd can be safely closed immediately after a call to uv_poll_stop() or uv_close()." Though, in this scenario, we close()'d our file descriptor, and by bad luck we got the same file descriptor again and register a new handle for it and start polling. Previously that would lead to an assertion failure, if we were to properly free the original handle via uv_close(). This commit fixes that by moving the check whether a only a single poll handle is active to uv_poll_start() instead of the stopping routines. Fixes: https://github.com/libuv/libuv/issues/1172 Fixes: https://github.com/bwoebi/php-uv/issues/81 Fixes: https://github.com/b2wdigital/aiologger/issues/82 Fixes: https://github.com/invenia/LibPQ.jl/issues/140 PR-URL: https://github.com/libuv/libuv/pull/2686 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
Revision tags: v1.39.0, v1.38.1, v1.38.0 |
|
#
a779fccf |
| 28-Apr-2020 |
Ben Noordhuis |
win: bump minimum supported version to windows 8 * Windows 7 went out of support earlier this year. * As did Python 2.7. We no longer have to worry about MSVC 2008. Python 3.5
win: bump minimum supported version to windows 8 * Windows 7 went out of support earlier this year. * As did Python 2.7. We no longer have to worry about MSVC 2008. Python 3.5 and up use VS 2015. PR-URL: https://github.com/libuv/libuv/pull/2821 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Jameson Nash <vtjnash@gmail.com> Reviewed-By: Joao Reis <reis@janeasystems.com>
show more ...
|
#
cbcd0cfc |
| 06-Nov-2020 |
Ben Noordhuis |
build: turn on -fno-strict-aliasing Turn on `-fno-strict-aliasing` in libuv and add a note in the README for downstream projects. Fixes: https://github.com/libuv/libuv/issues/12
build: turn on -fno-strict-aliasing Turn on `-fno-strict-aliasing` in libuv and add a note in the README for downstream projects. Fixes: https://github.com/libuv/libuv/issues/1230 PR-URL: https://github.com/libuv/libuv/pull/2588 Reviewed-By: Jameson Nash <vtjnash@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
show more ...
|
#
97a90330 |
| 20-Sep-2020 |
gengjiawen |
build: add asan checks Fixes: https://github.com/libuv/libuv/issues/2999 PR-URL: https://github.com/libuv/libuv/pull/2998 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed
build: add asan checks Fixes: https://github.com/libuv/libuv/issues/2999 PR-URL: https://github.com/libuv/libuv/pull/2998 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
show more ...
|
#
ed5b42d5 |
| 22-Sep-2020 |
Elad Lahav |
build,unix: add QNX support Refs: https://github.com/libuv/libuv/pull/2881 PR-URL: https://github.com/libuv/libuv/pull/2991 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Review
build,unix: add QNX support Refs: https://github.com/libuv/libuv/pull/2881 PR-URL: https://github.com/libuv/libuv/pull/2991 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
show more ...
|
#
3ee60fa7 |
| 09-Sep-2020 |
Nikolay Mitev |
build: add libuv-static pkg-config file Fixes: https://github.com/libuv/libuv/issues/2988 PR-URL: https://github.com/libuv/libuv/pull/2993 Reviewed-By: Ben Noordhuis <info@bnoordhuis
build: add libuv-static pkg-config file Fixes: https://github.com/libuv/libuv/issues/2988 PR-URL: https://github.com/libuv/libuv/pull/2993 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
a7b3b0d0 |
| 13-Sep-2020 |
David Carlier |
build: fix the Haiku cmake build PR-URL: https://github.com/libuv/libuv/pull/2994 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> |
#
46f36e3d |
| 24-Aug-2020 |
cjihrig |
Revert "unix,stream: clear read/write states on close/eof" This reverts commit 12be29f185261b8a7e6ada596fd805919cb2b133. The commit in question was introducing failures in the Node.
Revert "unix,stream: clear read/write states on close/eof" This reverts commit 12be29f185261b8a7e6ada596fd805919cb2b133. The commit in question was introducing failures in the Node.js test suite. Refs: https://github.com/libuv/libuv/issues/2943 Refs: https://github.com/libuv/libuv/pull/2967 Refs: https://github.com/libuv/libuv/pull/2409 PR-URL: https://github.com/libuv/libuv/pull/2968 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
904b1c9b |
| 12-Aug-2020 |
tjarlama <59913901+tjarlama@users.noreply.github.com> |
test: avoid double evaluation in ASSERT_BASE macro Passing expression as an argument to a function-like macro will replace all occurrence of the arguments with expressions during preproc
test: avoid double evaluation in ASSERT_BASE macro Passing expression as an argument to a function-like macro will replace all occurrence of the arguments with expressions during preprocessing. This result in multiple evaluation of the same expression and can slow-down the program or even change program state. Here ASSERT_BASE macro gets an expression involving a and b as first argument and macro definition has a print statement with a and b, which means there is double evaluation of a and b when the expression evaluates to false. To avoid double evaluation temporary variables are created to store results of a and b. Since the expression argument is dropped from ASSERT_BASE, the macro no longer works for string assertions. So a new macro, ASSERT_BASE_STR, is introduced to deal with strings. ASSERT_BASE can still work with pointers. Fixes: https://github.com/libuv/libuv/issues/2916 PR-URL: https://github.com/libuv/libuv/pull/2926 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
3fc580ec |
| 12-Aug-2020 |
司徒玟琅 |
cmake: fix compile error C2001 on Chinese Windows Fixes: https://github.com/libuv/libuv/issues/2887 PR-URL: https://github.com/libuv/libuv/pull/2889 Reviewed-By: Jameson Nash <vtjnas
cmake: fix compile error C2001 on Chinese Windows Fixes: https://github.com/libuv/libuv/issues/2887 PR-URL: https://github.com/libuv/libuv/pull/2889 Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
Revision tags: v1.37.0, v1.36.0, v1.35.0 |
|
#
ea92e9c7 |
| 07-Feb-2020 |
Richard Lau |
aix: protect uv_exepath() from uv_set_process_title() Store a copy of the original argv[0] to protect `uv_exepath()` against `uv_set_process_title()` changing the value of argv[0].
aix: protect uv_exepath() from uv_set_process_title() Store a copy of the original argv[0] to protect `uv_exepath()` against `uv_set_process_title()` changing the value of argv[0]. Extract common code for finding a program on the current PATH. Fixes: https://github.com/libuv/libuv/issues/2674 PR-URL: https://github.com/libuv/libuv/pull/2677 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Jameson Nash <vtjnash@gmail.com>
show more ...
|
#
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 ...
|
#
540d723f |
| 29-Jul-2020 |
Ryan Liptak |
test: add udp-mmsg test PR-URL: https://github.com/libuv/libuv/pull/2818 Reviewed-By: Jameson Nash <vtjnash@gmail.com> |