version 1.1.1.1, 2020/05/24 19:26:40 |
version 1.1.1.2, 2022/09/22 21:20:41 |
Line 39 static const char* titles[] = { |
|
Line 39 static const char* titles[] = { |
|
}; |
}; |
|
|
static void getter_thread_body(void* arg) { |
static void getter_thread_body(void* arg) { |
|
uv_sem_t* getter_sem; |
char buffer[512]; |
char buffer[512]; |
size_t len; |
size_t len; |
|
|
for (;;) { |
getter_sem = arg; |
|
|
|
while (UV_EAGAIN == uv_sem_trywait(getter_sem)) { |
ASSERT(0 == uv_get_process_title(buffer, sizeof(buffer))); |
ASSERT(0 == uv_get_process_title(buffer, sizeof(buffer))); |
|
|
/* The maximum size of the process title on some platforms depends on |
/* The maximum size of the process title on some platforms depends on |
Line 78 static void setter_thread_body(void* arg |
|
Line 81 static void setter_thread_body(void* arg |
|
TEST_IMPL(process_title_threadsafe) { |
TEST_IMPL(process_title_threadsafe) { |
uv_thread_t setter_threads[4]; |
uv_thread_t setter_threads[4]; |
uv_thread_t getter_thread; |
uv_thread_t getter_thread; |
|
uv_sem_t getter_sem; |
int i; |
int i; |
|
|
#if defined(__sun) || defined(__CYGWIN__) || defined(__MSYS__) || \ |
#if defined(__sun) || defined(__CYGWIN__) || defined(__MSYS__) || \ |
Line 86 TEST_IMPL(process_title_threadsafe) { |
|
Line 90 TEST_IMPL(process_title_threadsafe) { |
|
#endif |
#endif |
|
|
ASSERT(0 == uv_set_process_title(titles[0])); |
ASSERT(0 == uv_set_process_title(titles[0])); |
ASSERT(0 == uv_thread_create(&getter_thread, getter_thread_body, NULL)); |
|
|
ASSERT_EQ(0, uv_sem_init(&getter_sem, 0)); |
|
ASSERT_EQ(0, |
|
uv_thread_create(&getter_thread, getter_thread_body, &getter_sem)); |
|
|
for (i = 0; i < (int) ARRAY_SIZE(setter_threads); i++) |
for (i = 0; i < (int) ARRAY_SIZE(setter_threads); i++) |
ASSERT(0 == uv_thread_create(&setter_threads[i], setter_thread_body, NULL)); |
ASSERT(0 == uv_thread_create(&setter_threads[i], setter_thread_body, NULL)); |
Line 94 TEST_IMPL(process_title_threadsafe) { |
|
Line 101 TEST_IMPL(process_title_threadsafe) { |
|
for (i = 0; i < (int) ARRAY_SIZE(setter_threads); i++) |
for (i = 0; i < (int) ARRAY_SIZE(setter_threads); i++) |
ASSERT(0 == uv_thread_join(&setter_threads[i])); |
ASSERT(0 == uv_thread_join(&setter_threads[i])); |
|
|
|
uv_sem_post(&getter_sem); |
|
ASSERT_EQ(0, uv_thread_join(&getter_thread)); |
|
uv_sem_destroy(&getter_sem); |
|
|
return 0; |
return 0; |
} |
} |