#
51a22f60 |
| 22-Dec-2023 |
Matheus Izvekov |
unix,win: fix busy loop with zero timeout timers (#4250) Calling `uv_timer_start(h, cb, 0, 0)` from a timer callback resulted in the timer running immediately because it was inserted at
unix,win: fix busy loop with zero timeout timers (#4250) Calling `uv_timer_start(h, cb, 0, 0)` from a timer callback resulted in the timer running immediately because it was inserted at the front of the timer heap. If the callback did that every time, libuv would effectively busy-loop in `uv__run_timers()` and never make forward progress. Work around that by collecting all expired timers into a queue and only running their callback afterwards. Fixes: https://github.com/libuv/libuv/issues/4245 Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
011a1ac1 |
| 06-Oct-2023 |
Pleuvens |
test: switch to new-style ASSERT_EQ macros (#4159) Switch from old-style ASSERT macro to new-style ASSERT_EQ,... macros. Using new-style macros makes it easier to debug test failure
test: switch to new-style ASSERT_EQ macros (#4159) Switch from old-style ASSERT macro to new-style ASSERT_EQ,... macros. Using new-style macros makes it easier to debug test failures Fixes: https://github.com/libuv/libuv/issues/2974
show more ...
|
#
24d1d080 |
| 14-Jun-2023 |
Trevor Norris |
src: don't run timers if loop is stopped/unref'd (#4048) The initial run of timers shouldn't happen if uv_stop() has been run before uv_run() was called, and for backwards compatibility
src: don't run timers if loop is stopped/unref'd (#4048) The initial run of timers shouldn't happen if uv_stop() has been run before uv_run() was called, and for backwards compatibility they also shouldn't run if they have been unref'd before calling uv_run().
show more ...
|
#
66009549 |
| 20-Mar-2023 |
Trevor Norris |
win,unix: change execution order of timers (#3927) 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
win,unix: change execution order of timers (#3927) 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>
show more ...
|
#
91a7e498 |
| 12-Mar-2023 |
Trevor Norris |
test: silence more valgrind warnings (#3917) Pass the loop to MAKE_VALGRIND_HAPPY() so it's explicit on which loop needs to be cleaned up. Since it asserts on uv_loop_close(), need to
test: silence more valgrind warnings (#3917) Pass the loop to MAKE_VALGRIND_HAPPY() so it's explicit on which loop needs to be cleaned up. Since it asserts on uv_loop_close(), need to remove a couple of those that were being done before the call. Cleanup where loop was assigned, so the entire test either uses loop or uv_default_loop(). Not both. Also take care of any reqs that may have been left uncleaned.
show more ...
|
#
b51e940d |
| 11-Apr-2022 |
Hannah Shi |
test: separate some static variables by test cases (#3567)
|
Revision tags: v1.41.0 |
|
#
270d0518 |
| 29-Dec-2020 |
tjarlama |
test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros Moving to new style test macros will make debugging easier in case of test failure and improve redability. This commit will repl
test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros Moving to new style test macros will make debugging easier in case of test failure and improve redability. This commit will replace all ASSERT macros matching the statement: `ASSERT(identifier (== or !=) value);` to: `ASSERT_(NOT_)NULL(identifier);` Refs: https://github.com/libuv/libuv/issues/2974 PR-URL: https://github.com/libuv/libuv/pull/3081 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
Revision tags: v1.40.0, v1.39.0, v1.38.1, v1.38.0, v1.37.0, v1.36.0, v1.35.0, v1.34.2, v1.34.1, v1.34.0, v1.33.1, v1.33.0, v1.32.0, v1.31.0, v1.30.1, v1.30.0, v1.29.1, v1.29.0, v1.28.0, 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 |
|
#
2a1b880f |
| 16-Mar-2017 |
Ulrik Strid |
unix,win: add uv_timer_get_due_in() Co-authored-by: Jeremiah Senkpiel <fishrock123@rocketmail.com> Refs: https://github.com/nodejs/node-report/pull/73 Refs: https://github.com/libuv/
unix,win: add uv_timer_get_due_in() Co-authored-by: Jeremiah Senkpiel <fishrock123@rocketmail.com> Refs: https://github.com/nodejs/node-report/pull/73 Refs: https://github.com/libuv/libuv/pull/1255 Fixes: https://github.com/libuv/libuv/issues/2950 PR-URL: https://github.com/libuv/libuv/pull/2951 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
show more ...
|
#
2ee2d462 |
| 13-Aug-2019 |
seny |
timer: fix uv_timer_start on closing timer Return `UV_EINVAL` in this case. Fixes: https://github.com/libuv/libuv/issues/2416 PR-URL: https://github.com/libuv/libuv/pull/2424
timer: fix uv_timer_start on closing timer Return `UV_EINVAL` in this case. Fixes: https://github.com/libuv/libuv/issues/2416 PR-URL: https://github.com/libuv/libuv/pull/2424 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
show more ...
|
Revision tags: 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 |
|
#
427e4c9d |
| 02-Jun-2015 |
João Reis |
win: wait for full timeout duration uv_poll should wait for at least the full timeout duration when there is nothing else to do. This was not happening because GetQueuedCompletionSta
win: wait for full timeout duration uv_poll should wait for at least the full timeout duration when there is nothing else to do. This was not happening because GetQueuedCompletionStatus can occasionally return up to 15ms early. The added test reproduces https://github.com/joyent/node/blob/d13d7f74d794340ac5e126cfb4ce507fe0f803d5/test/simple/test-timers-first-fire.js on libuv, being flaky before this fix. Fixes: https://github.com/joyent/node/issues/8960 PR-URL: https://github.com/libuv/libuv/pull/385 Reviewed-By: Alexis Campailla <alexis@janeasystems.com> Reviewed-by: Bert Belder <bertbelder@gmail.com>
show more ...
|
Revision tags: v1.5.0, v0.10.36, v1.4.2, v0.10.35, v1.4.1, v0.10.34, v1.4.0, v1.3.0, v0.10.33, v1.2.1, v1.2.0, v0.10.32, v1.1.0, v0.10.31, v1.0.2, v0.10.30, v1.0.1, v1.0.0, v0.10.29, v1.0.0-rc2, v1.0.0-rc1 |
|
#
7ff52b83 |
| 04-Sep-2014 |
Saúl Ibarra Corretgé |
unix, windows: don't allow a NULL callback on timers |
Revision tags: v0.11.29, v0.11.28, v0.11.27, v0.10.28, v0.11.26, v0.10.27, v0.11.25, v0.11.24, v0.11.23, v0.10.26, v0.11.22 |
|
#
db2a9072 |
| 10-Mar-2014 |
Saúl Ibarra Corretgé |
unix, windows: removed unused status parameter async, timer, prepare, idle and check handles don't need the status parameter. |
Revision tags: v0.11.21, v0.11.20, v0.10.25, v0.11.19, v0.10.24, v0.11.18, v0.10.23, v0.10.22, v0.11.17, v0.10.21, v0.11.16, v0.10.20, v0.11.15, v0.10.19, v0.11.14, v0.10.18, v0.10.17 |
|
#
d7115f06 |
| 12-Sep-2013 |
Ben Noordhuis |
unix, windows: make uv_is_*() always return 0 or 1 Ensure that the following API functions always return either 0 or 1: * uv_is_active() * uv_is_closing() * uv_is_read
unix, windows: make uv_is_*() always return 0 or 1 Ensure that the following API functions always return either 0 or 1: * uv_is_active() * uv_is_closing() * uv_is_readable() * uv_is_writable()
show more ...
|
Revision tags: v0.10.16, v0.11.13, v0.11.12, v0.11.11, v0.11.10, v0.10.15, v0.11.9, v0.10.14, v0.11.8, v0.11.7, v0.10.13, v0.11.6, v0.10.12, v0.11.5, v0.10.11, v0.10.10, v0.11.4, v0.10.9 |
|
#
f6d8ba3c |
| 25-May-2013 |
Ben Noordhuis |
unix, windows: run expired timers in run-once mode Before this commit, creating an event loop, starting a timer and calling uv_run(UV_RUN_ONCE) blocked in uv_run() until the timer ex
unix, windows: run expired timers in run-once mode Before this commit, creating an event loop, starting a timer and calling uv_run(UV_RUN_ONCE) blocked in uv_run() until the timer expired - but didn't actually run the timer.
show more ...
|
Revision tags: v0.10.8, v0.11.3, v0.10.7, v0.10.6, v0.11.2, v0.10.5, v0.10.4, v0.11.1, node-v0.11.0, v0.10.2 |
|
#
9b619396 |
| 21-Mar-2013 |
Ben Noordhuis |
unix: make timers handle large timeouts This commit fixes two closely related integer overflow bugs: * Timers with a timeout > INT_MAX cause uv__next_timeout() to return a neg
unix: make timers handle large timeouts This commit fixes two closely related integer overflow bugs: * Timers with a timeout > INT_MAX cause uv__next_timeout() to return a negative value. * Timers with very large timeouts (close or equal to ULLONG_MAX) run on the next tick. In both cases, clamp the values to prevent the overflow from happening. Fixes joyent/node#5101.
show more ...
|
Revision tags: node-v0.7.3, node-v0.7.7, node-v0.7.5, node-v0.5.3, node-v0.10.1, node-v0.10.0, node-v0.9.12 |
|
#
77cb29a7 |
| 05-Mar-2013 |
Brian Mazza |
unix: make uv_timer_init() initialize repeat uv_timer_get_repeat() should return 0 for timers that haven't been started. |
Revision tags: node-v0.9.11, node-v0.8.21 |
|
#
d6bfedb8 |
| 20-Feb-2013 |
Ben Noordhuis |
unix, windows: make uv_now() return uint64_t Using int64_t doesn't make sense here because the return value is never negative. |
#
fadfeaf6 |
| 07-Feb-2013 |
Shigeki Ohtsu |
unix,windows: fix timer order in case of same timeout Compare start_id of timer handles when they have the same timeout. start_id is allocated with loop->timer_counter in uv_timer_start. |
Revision tags: node-v0.8.19, node-v0.9.10, node-v0.9.7 |
|
#
4ba03ddd |
| 16-Jan-2013 |
Ben Noordhuis |
unix, windows: rename uv_run2 to uv_run This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode m
unix, windows: rename uv_run2 to uv_run This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode mode); Where `mode` is UV_RUN_DEFAULT, UV_RUN_ONCE or UV_RUN_NOWAIT. Fixes #683.
show more ...
|
Revision tags: node-v0.9.6, node-v0.9.4, node-v0.8.17 |
|
#
894a8523 |
| 02-Nov-2012 |
Ben Noordhuis |
test: fix signed/unsigned comparison warnings |
Revision tags: node-v0.8.15, node-v0.9.3 |
|
#
47eb0349 |
| 16-Oct-2012 |
Bert Belder |
test: move loop cleanup code to the individual tests |
Revision tags: node-v0.8.12, node-v0.8.10, node-v0.9.2, node-v0.8.9, node-v0.9.1, node-v0.8.8, node-v0.8.7, node-v0.8.6, node-v0.8.5, node-v0.6.21, node-v0.8.3, node-v0.9.0, node-v0.8.2, node-v0.8.1, node-v0.8.0, node-v0.7.12, node-v0.7.11, node-v0.7.10, node-v0.6.19, node-v0.7.9 |
|
#
028fef84 |
| 26-May-2012 |
Ben Noordhuis |
unix: update timer if already active uv_timer_start() no longer returns an error when the timer is already active, now it just updates the timer. Consistent with the uv-win implementatio
unix: update timer if already active uv_timer_start() no longer returns an error when the timer is already active, now it just updates the timer. Consistent with the uv-win implementation. Fixes #425.
show more ...
|
#
ae9d4c2a |
| 25-May-2012 |
Ben Noordhuis |
test: add 'is active?' checks to test-timer.c |
#
9efa8b35 |
| 17-May-2012 |
Ben Noordhuis |
unix, windows: rework reference counting scheme This commit changes how the event loop determines if it needs to stay alive. Previously, an internal counter was increased whenever a
unix, windows: rework reference counting scheme This commit changes how the event loop determines if it needs to stay alive. Previously, an internal counter was increased whenever a handle got created and decreased again when the handle was closed. While conceptually simple, it turned out hard to work with: you often want to keep the event loop alive only if the handle is actually doing something. Stopped or inactive handles were a frequent source of hanging event loops. That's why this commit changes the reference counting scheme to a model where a handle only references the event loop when it's active. 'Active' means different things for different handle types, e.g.: * timers: ticking * sockets: reading, writing or listening * processes: always active (for now, subject to change) * idle, check, prepare: only active when started This commit also changes how the uv_ref() and uv_unref() functions work: they now operate on the level of individual handles, not the whole event loop. The Windows implementation was done by Bert Belder.
show more ...
|
Revision tags: node-v0.6.18, node-v0.6.16, node-v0.6.17, node-v0.7.8, node-v0.6.15, node-v0.6.14, node-v0.6.13, node-v0.7.6, node-v0.6.12, node-v0.6.11, node-v0.7.4, node-v0.6.10, node-v0.7.2, node-v0.6.9, node-v0.7.1 |
|
#
dd7e6f01 |
| 18-Jan-2012 |
Ben Noordhuis |
test: don't use malloc/free in test-timer |