libuv 1.45.0, #include cleanup, probably something else.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4308 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-05-21 21:36:51 +00:00
parent 1ccb9183b4
commit f421606e21
299 changed files with 7167 additions and 4918 deletions

View File

@ -87,8 +87,34 @@ static void unblock_threadpool(void) {
}
static int known_broken(uv_req_t* req) {
if (req->type != UV_FS)
return 0;
#ifdef __linux__
/* TODO(bnoordhuis) make cancellation work with io_uring */
switch (((uv_fs_t*) req)->fs_type) {
case UV_FS_CLOSE:
case UV_FS_FDATASYNC:
case UV_FS_FSTAT:
case UV_FS_FSYNC:
case UV_FS_LSTAT:
case UV_FS_OPEN:
case UV_FS_READ:
case UV_FS_STAT:
case UV_FS_WRITE:
return 1;
default: /* Squelch -Wswitch warnings. */
break;
}
#endif
return 0;
}
static void fs_cb(uv_fs_t* req) {
ASSERT(req->result == UV_ECANCELED);
ASSERT(known_broken((uv_req_t*) req) || req->result == UV_ECANCELED);
uv_fs_req_cleanup(req);
fs_cb_called++;
}
@ -133,7 +159,7 @@ static void timer_cb(uv_timer_t* handle) {
for (i = 0; i < ci->nreqs; i++) {
req = (uv_req_t*) ((char*) ci->reqs + i * ci->stride);
ASSERT(0 == uv_cancel(req));
ASSERT(known_broken(req) || 0 == uv_cancel(req));
}
uv_close((uv_handle_t*) &ci->timer_handle, NULL);
@ -189,7 +215,7 @@ TEST_IMPL(threadpool_cancel_getaddrinfo) {
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
ASSERT(1 == timer_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}
@ -225,7 +251,7 @@ TEST_IMPL(threadpool_cancel_getnameinfo) {
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
ASSERT(1 == timer_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}
@ -248,7 +274,7 @@ TEST_IMPL(threadpool_cancel_random) {
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
ASSERT(1 == done_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}
@ -272,7 +298,7 @@ TEST_IMPL(threadpool_cancel_work) {
ASSERT(1 == timer_cb_called);
ASSERT(ARRAY_SIZE(reqs) == done2_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}
@ -305,7 +331,7 @@ TEST_IMPL(threadpool_cancel_fs) {
ASSERT(0 == uv_fs_lstat(loop, reqs + n++, "/", fs_cb));
ASSERT(0 == uv_fs_mkdir(loop, reqs + n++, "/", 0, fs_cb));
ASSERT(0 == uv_fs_open(loop, reqs + n++, "/", 0, 0, fs_cb));
ASSERT(0 == uv_fs_read(loop, reqs + n++, 0, &iov, 1, 0, fs_cb));
ASSERT(0 == uv_fs_read(loop, reqs + n++, -1, &iov, 1, 0, fs_cb));
ASSERT(0 == uv_fs_scandir(loop, reqs + n++, "/", 0, fs_cb));
ASSERT(0 == uv_fs_readlink(loop, reqs + n++, "/", fs_cb));
ASSERT(0 == uv_fs_realpath(loop, reqs + n++, "/", fs_cb));
@ -316,7 +342,7 @@ TEST_IMPL(threadpool_cancel_fs) {
ASSERT(0 == uv_fs_symlink(loop, reqs + n++, "/", "/", 0, fs_cb));
ASSERT(0 == uv_fs_unlink(loop, reqs + n++, "/", fs_cb));
ASSERT(0 == uv_fs_utime(loop, reqs + n++, "/", 0, 0, fs_cb));
ASSERT(0 == uv_fs_write(loop, reqs + n++, 0, &iov, 1, 0, fs_cb));
ASSERT(0 == uv_fs_write(loop, reqs + n++, -1, &iov, 1, 0, fs_cb));
ASSERT(n == ARRAY_SIZE(reqs));
ASSERT(0 == uv_timer_init(loop, &ci.timer_handle));
@ -326,7 +352,7 @@ TEST_IMPL(threadpool_cancel_fs) {
ASSERT(1 == timer_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}
@ -344,6 +370,6 @@ TEST_IMPL(threadpool_cancel_single) {
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
ASSERT(1 == done_cb_called);
MAKE_VALGRIND_HAPPY();
MAKE_VALGRIND_HAPPY(loop);
return 0;
}