libuv 1.47.0.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4615 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-11-07 17:30:39 +00:00
parent 889773c38d
commit ee9cb63327
226 changed files with 6648 additions and 6444 deletions

View File

@@ -66,14 +66,14 @@ static void increment_counter(int* counter) {
static void signal1_cb(uv_signal_t* handle, int signum) {
ASSERT(signum == SIGUSR1);
ASSERT_EQ(signum, SIGUSR1);
increment_counter(&signal1_cb_counter);
uv_signal_stop(handle);
}
static void signal2_cb(uv_signal_t* handle, int signum) {
ASSERT(signum == SIGUSR2);
ASSERT_EQ(signum, SIGUSR2);
increment_counter(&signal2_cb_counter);
uv_signal_stop(handle);
}
@@ -89,25 +89,25 @@ static void signal_handling_worker(void* context) {
action = (enum signal_action) (uintptr_t) context;
ASSERT(0 == uv_loop_init(&loop));
ASSERT_OK(uv_loop_init(&loop));
/* Setup the signal watchers and start them. */
if (action == ONLY_SIGUSR1 || action == SIGUSR1_AND_SIGUSR2) {
r = uv_signal_init(&loop, &signal1a);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_start(&signal1a, signal1_cb, SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_init(&loop, &signal1b);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_start(&signal1b, signal1_cb, SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
}
if (action == ONLY_SIGUSR2 || action == SIGUSR1_AND_SIGUSR2) {
r = uv_signal_init(&loop, &signal2);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_start(&signal2, signal2_cb, SIGUSR2);
ASSERT(r == 0);
ASSERT_OK(r);
}
/* Signal watchers are now set up. */
@@ -117,26 +117,26 @@ static void signal_handling_worker(void* context) {
* will return when all signal watchers caught a signal.
*/
r = uv_run(&loop, UV_RUN_DEFAULT);
ASSERT(r == 0);
ASSERT_OK(r);
/* Restart the signal watchers. */
if (action == ONLY_SIGUSR1 || action == SIGUSR1_AND_SIGUSR2) {
r = uv_signal_start(&signal1a, signal1_cb, SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_start(&signal1b, signal1_cb, SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
}
if (action == ONLY_SIGUSR2 || action == SIGUSR1_AND_SIGUSR2) {
r = uv_signal_start(&signal2, signal2_cb, SIGUSR2);
ASSERT(r == 0);
ASSERT_OK(r);
}
/* Wait for signals once more. */
uv_sem_post(&sem);
r = uv_run(&loop, UV_RUN_DEFAULT);
ASSERT(r == 0);
ASSERT_OK(r);
/* Close the watchers. */
if (action == ONLY_SIGUSR1 || action == SIGUSR1_AND_SIGUSR2) {
@@ -150,7 +150,7 @@ static void signal_handling_worker(void* context) {
/* Wait for the signal watchers to close. */
r = uv_run(&loop, UV_RUN_DEFAULT);
ASSERT(r == 0);
ASSERT_OK(r);
uv_loop_close(&loop);
}
@@ -173,18 +173,18 @@ static void loop_creating_worker(void* context) {
loop = malloc(sizeof(*loop));
ASSERT_NOT_NULL(loop);
ASSERT(0 == uv_loop_init(loop));
ASSERT_OK(uv_loop_init(loop));
r = uv_signal_init(loop, &signal);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_signal_start(&signal, signal_unexpected_cb, SIGTERM);
ASSERT(r == 0);
ASSERT_OK(r);
uv_close((uv_handle_t*) &signal, NULL);
r = uv_run(loop, UV_RUN_DEFAULT);
ASSERT(r == 0);
ASSERT_OK(r);
uv_loop_close(loop);
free(loop);
@@ -229,17 +229,17 @@ TEST_IMPL(signal_multiple_loops) {
int r;
r = uv_sem_init(&sem, 0);
ASSERT(r == 0);
ASSERT_OK(r);
r = uv_mutex_init(&lock);
ASSERT(r == 0);
ASSERT_OK(r);
/* Create a couple of threads that create a destroy loops continuously. */
for (i = 0; i < NUM_LOOP_CREATING_THREADS; i++) {
r = uv_thread_create(&loop_creating_threads[i],
loop_creating_worker,
NULL);
ASSERT(r == 0);
ASSERT_OK(r);
}
/* Create a couple of threads that actually handle signals. */
@@ -253,7 +253,7 @@ TEST_IMPL(signal_multiple_loops) {
r = uv_thread_create(&signal_handling_threads[i],
signal_handling_worker,
(void*) (uintptr_t) action);
ASSERT(r == 0);
ASSERT_OK(r);
}
/* Wait until all threads have started and set up their signal watchers. */
@@ -261,9 +261,9 @@ TEST_IMPL(signal_multiple_loops) {
uv_sem_wait(&sem);
r = kill(getpid(), SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
r = kill(getpid(), SIGUSR2);
ASSERT(r == 0);
ASSERT_OK(r);
/* Wait for all threads to handle these signals. */
for (i = 0; i < NUM_SIGNAL_HANDLING_THREADS; i++)
@@ -277,14 +277,14 @@ TEST_IMPL(signal_multiple_loops) {
pthread_sigmask(SIG_SETMASK, &sigset, NULL);
r = kill(getpid(), SIGUSR1);
ASSERT(r == 0);
ASSERT_OK(r);
r = kill(getpid(), SIGUSR2);
ASSERT(r == 0);
ASSERT_OK(r);
/* Wait for all signal handling threads to exit. */
for (i = 0; i < NUM_SIGNAL_HANDLING_THREADS; i++) {
r = uv_thread_join(&signal_handling_threads[i]);
ASSERT(r == 0);
ASSERT_OK(r);
}
/* Tell all loop creating threads to stop. */
@@ -295,7 +295,7 @@ TEST_IMPL(signal_multiple_loops) {
/* Wait for all loop creating threads to exit. */
for (i = 0; i < NUM_LOOP_CREATING_THREADS; i++) {
r = uv_thread_join(&loop_creating_threads[i]);
ASSERT(r == 0);
ASSERT_OK(r);
}
uv_sem_destroy(&sem);
@@ -306,13 +306,13 @@ TEST_IMPL(signal_multiple_loops) {
/* The division by three reflects the fact that we spawn three different
* thread groups of (NUM_SIGNAL_HANDLING_THREADS / 3) threads each.
*/
ASSERT(signal1_cb_counter == 8 * (NUM_SIGNAL_HANDLING_THREADS / 3));
ASSERT(signal2_cb_counter == 4 * (NUM_SIGNAL_HANDLING_THREADS / 3));
ASSERT_EQ(signal1_cb_counter, 8 * (NUM_SIGNAL_HANDLING_THREADS / 3));
ASSERT_EQ(signal2_cb_counter, 4 * (NUM_SIGNAL_HANDLING_THREADS / 3));
/* We don't know exactly how much loops will be created and destroyed, but at
* least there should be 1 for every loop creating thread.
*/
ASSERT(loop_creation_counter >= NUM_LOOP_CREATING_THREADS);
ASSERT_GE(loop_creation_counter, NUM_LOOP_CREATING_THREADS);
MAKE_VALGRIND_HAPPY(uv_default_loop());
return 0;